by edvakf

in my.opera

AutoPagerize - Don't Click "Next Page" Any More

AutoPagerize is the revolution of User Interface.

Imagine when you search something on Google, Yahoo, MSN, you name it. The most annoying thing is that you have to click "Next" again and again and again...

You click, wait for the next page to load, scroll, click, wait to load, scroll, click, wait again, and then "Oh, what was written just two pages ago." Now you go back and back. I don't know how much time we are wasting there.

AutoPagerize is a User Script that was written to optimize the web experience, by cutting this stress. Not just redusing it, but by making it absolutely zero.

The script automatically fetches the "next page" and inserts it into the current page as you scroll. No need for clicking. Simple as that. Because it adds the next page while reading the current page, the waiting time is almost zero! (I'd say completely zero but sometimes there is network delay and so on, huh?)

If you want to go back, simply scroll up. Or do in-page search. No more waiting.



What? "90% of the links clicked on Google search results are on the top 3 result pages?" Just forget it already. It's yesterday's web. Now you can search as much as you want.

Good thing is that the script is not only for the search results. But for columns, blogs, etc. At the moment the coverage is limited to only A FEW THOUSAND websites. But you can contribute to increase it. All you need to do is edit SITEINFO.



So where is the script?

It's AutoPagerize for Firefox/Greasemonkey, and oAutoPagerize for Opera, Google Chrome, Safari/GreaseKit.

The Greasemonkey version is easy to install if you know how to use Greasemonkey. There is even painless AutoPager add-on for Firefox too.

oAutoPagerize can be a little bit complecated to use. That's why I was editing this wiki page. I hope I made everything clear for all of you.

Also if you are using the Firefox version and wondered what SITEINFO is, take a look at the wiki.

Pixel-wise Manipulation of Canvas on OperaRipple effect by Canvas

Comments

deadHarlequin Saturday, April 25, 2009 6:24:00 PM

Opera has Fast Forward!p

Most of therse scripts do more harm than good imho.

edvakf Saturday, April 25, 2009 6:35:20 PM

Yes Opera has Fast Forward. I love that too.

I wouldn't say everyone must use that script. But it's very well written, I've read the source, it's actively maintained, and so on. This script is by far the most recomendable one, in my opinion.

Anyway, if you understand the harm, you understand the power of it too, don't you? I would like you to try it as well.

deadHarlequin Saturday, April 25, 2009 11:21:21 PM

most sites that paging matters offer pagination settings, plus opera's FF is pretty good, using just a mouse gesture to go to next page.

This was my first thought but using it for a while now I have to admit that it is indeed very well written.bigsmile

I will leave it on for now... One minor issue is that you cant reach the bottom of the page and thats why i think the status button should go to page bottom, making it easier to reach andt urn the script off.(or even turning itself off at 100% scroll)

One last thing though, isn't really a security issue to autoupdate from sth that everyone can edit, thus injecting you any js he likes?

dapxin Saturday, April 25, 2009 11:31:52 PM

good idea.

but you gotta seriously look into this

One last thing though, isn't really a security issue to autoupdate from sth that everyone can edit, thus injecting you any js he likes?

edvakf Sunday, April 26, 2009 1:40:46 AM

I haven't thought about that the security of wedata. The data we input seem to be properly escaped so that it only makes sense as JSON, but I'm gonna check that.

z@h3kZAHEK Sunday, April 26, 2009 10:12:01 AM

This is really usefull thanks.
Can we use in spesific sites.like zahek.com?
For exmp. this is being used in google,live.com or in opera community blog but not like in zahek.com (wordpress).
Is it convinient to use in this kind of site or can we add in java file?

edvakf Sunday, April 26, 2009 5:12:07 PM

@ZAHEK

To add a custom site in your SITEINFO, you need to know a bit of XPath and RegExp. If you have 0AutoPagerize.SITEINFO.js installed, you can add your SITEINFO directly to it.

If that works well, and the site is sufficiently public, you can add that to wedata.net.

All that is written in the wiki page I've given above.


@deadHarlequin, @dapxin
I'm no way a professional XSS advisor, but it seems like the user-input data seem to be properly escaped. " and \ especially.

dapxin Monday, April 27, 2009 12:51:53 AM

by the way, whats the mouse gesture for fast forward anyone ?

edvakf Monday, April 27, 2009 2:11:19 PM

GestureRight

or

FlipForward

dapxin Thursday, April 30, 2009 9:44:53 AM

This is terrific.

I would like to make it work on these sites, can you help me achieve that ?

--------
http://www.nigeriavillagesquare.com/
and
http://www.myp2pforum.eu/
--------

thx

edvakf Friday, May 1, 2009 4:53:58 AM

if you have installed 0AutoPagerize.Settings.js, insert the following in the TOP_SITEINFO,

  {
    "pageElement" : "id(\"inlinemodform\")/table|id(\"posts\")",
    "url" : "^http://www\\.myp2pforum\\.eu/.+",
    "nextLink" : "//a[@rel=\"next\"]"
  }
  ,{
    "pageElement" : "//table[@class=\"contentpaneopen\"]",
    "url" : "^http://www\\.nigeriavillagesquare\\.com/",
    "nextLink" : "//a[@class=\"pagenav\" and @title=\"Next\"]"
  }


or you can add them in the 0AutoPagerize.SITEINFO.js.

(I'm not sure for the second one, why the style will be messed up...)

dapxin Friday, May 1, 2009 9:19:15 AM

thank you so much. applying them now. Thx!

the 2nd one doesn't work. Thanks anyways. It would be nice if you make a guideline, how to setup this for other sites, without bothring you.

edvakf Friday, May 1, 2009 5:04:55 PM

The best way for it is to learn XPath, but not everyone can do it easily. That's why the SITEINFO is gathered in wedata.

Anyway, I'll add more about this to the wiki sometime.

dapxin Monday, May 4, 2009 11:00:51 AM

If you dont mind, I'd appreciate an update to make this to work on ebuyer.com and facebook too smile thx.

edvakf Wednesday, May 6, 2009 11:46:21 AM

I can't find any page where there is a "next" in ebuyer.com.

Facebook, that's important. I'll take a look.

edvakf Wednesday, May 6, 2009 12:51:05 PM

I updated facebook's SITEINFO. It should work on search results, photos and inbox.

It does not work on the home page, nor at friends list, since the next link on those pages are JavaScript links.

Even on those pages that AutoPagerize is working, sometimes it does not work. That's because Facebook is using a trick so the pages are loaded by JavaScript, hence user script's can't start. If you see it's not working where it should be, just reload the page and that should start the AutoPagerize.

dapxin Thursday, May 7, 2009 5:34:44 AM

Thanks. You can see next/prev on here http://www.ebuyer.com/search?limit=20&q=backpack&sort=pricelow&page=1

- would it be possible to organise the siteInfo file, such that it is easier to track changes of releases ? as it gets updated over time. I think commenting new sites would be most useful.


great work!

edvakf Thursday, May 7, 2009 6:05:37 AM

For ebuyer.com the piece of SITEINFO would be something like
{
"url"	:	"^http://www\.ebuyer\.com/search\?",
"nextLink"	:	"//li[@class=\"currentPage\"]/following-sibling::li[1]/a",
"pageElement"	:	"//div[@class=\"lineListings\"]"
}

I've edited wedata. http://wedata.net/items/28385


If you are using Windows, you can auto update SITEINFO by the following batch file.

rem=0;/*
cscript -E:JScript %0
exit
*/
var path = "C:\\[[your path to]]\0AutoPagerize.SITEINFO.js";
var url = "http://ss-o.net/userjs/0AutoPagerize.SITEINFO.js";

WScript.Echo("updating oAutoPagerize SITEINFO");
var status = "_____ok";
var xmlHttp = new ActiveXObject("MSXML2.XMLHttp");
xmlHttp.open("GET", url ,false);
xmlHttp.onreadystatechange = function(){
	WScript.Echo(status.substring(0,xmlHttp.readyState));
	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		try {
			var fso = new ActiveXObject('Scripting.FileSystemObject');
			var stream = fso.createTextFile(path, true);
			stream.write(xmlHttp.responseText);
			stream.close();
			WScript.Echo(status);
		} catch (e) {
			WScript.Echo(e.message);
		}
	} else if (xmlHttp.readyState == 4 && xmlHttp.status > 200){
		WScript.Echo(xmlHttp.status + " " + xmlHttp.statusText);
	}
}
xmlHttp.send();


Taken from here.
http://d.hatena.ne.jp/os0x/20081007/1223378959

There is no release period for SITEINFO, since it's a wiki. On wedata, you can see edition history of each item.

dapxin Thursday, May 7, 2009 6:28:54 AM

fuck me! works f uckign good on ebuyer. U fucking rock bigsmile

dapxin Thursday, May 7, 2009 9:18:12 AM

Hey, I just noticed why it didnt work for nigeriavillagesquare as you tried to fix.

I wanted it on the embedded vBulletin forum as you will see here http://www.nigeriavillagesquare.com/forum/main-square/31813-ayo-omotade-not-guilty.html not on the main page smile thx.

edvakf Friday, May 8, 2009 4:18:29 AM

It'd be
  ,{
    "pageElement" : "//table[@class=\"contentpaneopen\"]|id(\"posts\")",
    "url" : "^http://www\\.nigeriavillagesquare\\.com/",
    "nextLink" : "//a[@class=\"pagenav\" and @title=\"Next\"]|//a[@rel=\"next\"]"
  }

dapxin Sunday, May 10, 2009 5:06:57 PM

A google site that doesn't work http://www.google.com/reader/m/view/

edvakf Sunday, May 10, 2009 8:29:00 PM

dapxin Sunday, May 10, 2009 8:43:08 PM

I get "permission denied" errors on running the wmi script...although I can debug that for myself, thought to let you know.

dapxin Sunday, May 10, 2009 8:45:08 PM

Just got it. The path declaration should get 2 slashes (\\)

PS: in userjs folders that are of type C:\\folder1\\userjs smile

dapxin Sunday, May 10, 2009 10:04:24 PM

Also, the wmi script over-writes the .siteInfo file. Hows best to append this ?

dapxin Sunday, May 10, 2009 11:55:31 PM

It doesnt work on live.com search too. some folks use it (me+) smile

edvakf Monday, May 11, 2009 2:09:43 PM

what's wmi?

dapxin Monday, May 11, 2009 3:04:29 PM

The batch file you provided here for updating the .SITEINFO file uses WMI calls

Is there a hack for www.live.com ?smile

edvakf Tuesday, May 12, 2009 12:57:48 PM

The best practice will be to download the 0AutoPagerize.Settings.js, write all your customized SITEINFO there, and leave the 0AutoPagerize.SITEINFO.js to update automatically.


I've updated wedata. http://wedata.net/items/501

It was just the matter of URL matching.

It's now working for me now, but live.com seems to have several search urls. If this change doesn't work for you, maybe yours is something yet new.

dapxin Tuesday, May 12, 2009 7:43:52 PM

Thanks!

call me lazy, but where do I paste in on the .Settings.js file ? smile

Here is the live http://search.live.com/results.aspx?q=google&go=&form=QBLH&filt=all that didnt work for me.

edvakf Wednesday, May 13, 2009 12:24:32 AM

OK, first, open .Settings.js and find where there is

 TOP_SITEINFO : []
,BOTTOM_SITEINFO : []


Then go to http://wedata.net/items/501 and click "JSON". This will start downloading a small text file.

Open that file and you'll see the lines

  "data": {
    "pageElement": "id(\"results\")\/ul[@class=\"sb_results\"]",
    "url": "^http:\/\/(?:cnweb\\.)?search\\.(?:msn|live)\\.(?:[^.]+\\.)?[^.\/]+\/results\\.aspx",
    "nextLink": "id(\"results_area\")\/\/a[contains(concat(\" \",@class,\" \"),\" sb_pagN \")]",
    "exampleUrl": "http:\/\/search.live.com\/results.aspx?q=wii&go=Search&mkt=en-us&scope=&FORM=LIVSOP"
  },


Copy and paste FROM

{


UNTIL

}


into either the TOP_SITEINFO or BOTTOM_SITEINFO array, so it will look like this.

 TOP_SITEINFO : [{
    "pageElement": "id(\"results\")\/ul[@class=\"sb_results\"]",
    "url": "^http:\/\/(?:cnweb\\.)?search\\.(?:msn|live)\\.(?:[^.]+\\.)?[^.\/]+\/results\\.aspx",
    "nextLink": "id(\"results_area\")\/\/a[contains(concat(\" \",@class,\" \"),\" sb_pagN \")]",
    "exampleUrl": "http:\/\/search.live.com\/results.aspx?q=wii&go=Search&mkt=en-us&scope=&FORM=LIVSOP"
  }]
,BOTTOM_SITEINFO : []



By the way, I have edited Wedata already so you don't even need to do it. Just update .SITEINFO.js and override the old one. I tested on your URL and it worked. If you hover mouse onto the little AutoPagerize icon on the top-right, you'll see "UPDATE SITEINFO".

dapxin Wednesday, May 13, 2009 12:43:57 AM

gr8. I got it working well now by editing .settings.js

But It appears to break the script here http://files.myopera.com/NekohDot/files/2google-preview-1.0.js as edited on this thread http://my.opera.com/community/forums/topic.dml?id=257506

Basically, the script above works well with googlethumbnails on the first page but fails once autopagerize works.

btw, am I the only using this smile

edvakf Wednesday, May 13, 2009 3:40:41 AM

You can adopt an existing script to work with AutoPagerize. There are APIs for it. It's written in the Wiki page. (but of course you need some JavaScript knowledge)

Try
http://files.myopera.com/edvakf/files/2google-preview-1.0.1.js

dapxin Wednesday, May 13, 2009 10:48:48 AM


Originally posted by edvakf:

You can adopt an existing script to work with AutoPagerize. There are APIs for it. It's written in the Wiki page. (but of course you need some JavaScript knowledge)

Try
http://files.myopera.com/edvakf/files/2google-preview-1.0.1.js




gr8. I presume you modified that ?

Also, I suggest you add ARGOS. This is a UK store that should, I think be in the webdata for folks
http://www.argos.co.uk/webapp/wcs/stores/servlet/Search?storeId=10001&catalogId=1500001151&langId=-1&searchTerms=PHONE&Submit=GO+%3E

edvakf Wednesday, May 13, 2009 7:27:36 PM

How about this?

{
    "pageElement" : 'id("switchview")',
    "nextLink" : '//div[@class="paginglinks"]/span[contains(@class, "active")]/following-sibling::a[1]',
    "url" : '^http://(?:www\.)?argos\.co\.uk/(?:webapp/wcs/stores/servlet/Search\?|static/Browse/)'
  }


I used to shop at argos when I was in the uk.

Wedata is currently down..

dapxin Thursday, May 14, 2009 2:34:03 PM

thx. would it be possible to fix one for the mobile interface as below ?

http://uk.m.yahoo.com/p/mail?
http://m.flickr.com/
http://mobile.live.com/hm/
http://m.gmail.com

-----------------------

I think they will also be gr8 on webdata. thx!

Also, the amazon reviews e.g http://www.amazon.com/Canon-ZR800-MiniDV-Camcorder-Optical/product-reviews/B000M4MT58/ref=cm_cr_pr_link_next_2?ie=UTF8&showViewpoints=0&pageNumber=2 smile

edvakf Thursday, May 14, 2009 5:28:31 PM

Gmail mobile
http://wedata.net/items/28915

Amazon
http://wedata.net/items/27473

mobile flickr is a bit difficult, it loads next pages by JavaScript and doesn't have page transition, ie no chance for AutoPagerize to be loaded.

I'm very sorry but I don't have an account for yahoo.com and live.com so I can't open them.

dapxin Friday, May 22, 2009 2:21:37 PM

Hi, I have dusted up on my javascript and moving on to xPath now;

Can I have one for this http://www.nairaland.com/nigeria/topic-4234.0.html ?

thx.

edvakf Friday, May 22, 2009 10:28:21 PM

something like
{
url:'^http://www\.nairaland\.com/',
nextLink : 'id("bodyarea")/div/table[@class="tborder"]//td[@class="catbg"]//td/b/following-sibling::a[1]',
pageElement : 'id("bodyarea")/div/table[@class="bordercolor"]'
  }


it's a crazy html code.

dapxin Monday, June 1, 2009 4:22:45 PM

Yo.the code doesnt seem to work on m.facebook.com - this is crucial...smile

edvakf Monday, June 1, 2009 7:51:18 PM

http://wedata.net/items/29073

I tested it on Inbox and Search pages. It doesn't work on Top Stories, it's too complecated there...

edvakf Tuesday, June 2, 2009 9:15:03 AM

http://wedata.net/items/29074

Should work on the "Stories" pages too, ie. photos, notes, etc.

dapxin Tuesday, June 2, 2009 10:05:15 PM

it appears broken for the new bing.com - take a look.

edvakf Wednesday, June 3, 2009 10:03:12 AM

Actually, I was the one who made the bing.com SITEINFO.

It gives me a chinese page... Even if I change it to English, the second page and above are Chinese. (But it's their problem)

I don't see where it's broken though?

dapxin Sunday, June 21, 2009 8:31:29 AM

can we have a siteInfo update for this http://freebooksource.com/ too.

edvakf Sunday, June 21, 2009 2:44:53 PM

It's not difficult. The nextLink is of type

id("foo")/following-sibling::a[1]


and the pageElement is of type

div[@class="foobar"]

dapxin Tuesday, July 7, 2009 8:22:59 AM

Yo, I just thought of a feature which would make this even great.

I notice that on some sites where there comments, oAutoPagerize(oap) kicks in a bit too early against your intentions.

Would it be possible to add a keyboard shortcut to toggle ON/OFF on the script.

What do you think ?

edvakf Tuesday, July 7, 2009 2:21:58 PM

Have you tried to hover on the little icon? There is an on/off button.

If you want a keyboard shortcut, you can assign the below bookmarklet to any key you like.

javascript:window.AutoPagerize.AutoPagerObject.toggle();

dapxin Tuesday, July 7, 2009 3:34:07 PM

That will be within Opera right ?

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies