oAutoPagerize ver 0.3.1

本家 AutoPagerize0.0.22 - SWDYHにあわせてこちらもアップデート。

2008/02/13 00:27
Safariなどで動作しないバグがあったので修正しました。Operaの方には影響ありません。

更新はoAutoPagerize - 0xFFからどうぞ。


documentFiltersというnextLinkなどの取得前にかけられるフィルタが追加されています。
具体的には、stock.xchngのSITEINFO - 0xFFのようなケースに使えます。

// ==UserScript==
// @name           stock.xchng basefix
// @namespace      http://ss-o.net/
// @include        http://www.sxc.hu/category/*
// ==/UserScript==
setTimeout(function(){
	if (!window.AutoPagerize) return;
	window.AutoPagerize.addDocumentFilter(function(htmlDoc, requestURL, info){
		var next = getFirstElementByXPath(info.nextLink,htmlDoc);
		next.setAttribute('href',document.baseURI + next.getAttribute('href') );
	});
	function getFirstElementByXPath(xpath, node) {
		var node = node || document;
		var doc = node.ownerDocument ? node.ownerDocument : node;
		var result = doc.evaluate(xpath, node, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
		return result.singleNodeValue ? result.singleNodeValue : null;
	}
},0);

こんな感じ(上記はFirefox用)でnextLinkを書き換えてしまえば、割と自由に次のページを指定できます。(初回は成功していないと駄目ですが。)

後、ちょこちょこと高速化のための修正などをしてたりします。

更新したらSafariで動かなくなったという報告をみつけました。同様の方がいたら報告いただけると助かります。あ、Twitter / iyoda: http://d.hatena.ne.jp/os0x ...も見つけた。。
修正できた。と思います。すみませんでした。。

oAutoPagerizeメンテ更新

// @checkurl    http://ss-o.net/userjs/oAutoPagerize.js
  • Opera用のSITEINFOにもexampleUrlを追加。
  • Infogami側で対応されたものをOpera用から削除。

(誰かがInfogamiのほうにポートしてくれたようだ。Infogamiの権限がないので助かります。)

*1:lastupdateは不要っぽいので消した

Safari3 * GreaseKit1.4 でoAutoPagerize

GreaseKit 1.4でセキュリティの問題からGM関数が削除されました。GreaseKit および Creammonkey の GM 関数に関する脆弱性
そのため、jAutoPagerizeなど多くのScriptが動作しなくなっています。*1

そこで、同じくGM関数がない前提で作成しているoAutoPagerizeを動かしてみました。

インストールはoAutoPagerize - 0xFFからどうぞ。

  • Opera用は.jsでしたが、こちらは.user.jsに
  • 例によって数時間おきにSITEINFOが更新されています
  • Safariだとheadタグ内のlinkが消えてしまうようで、はてなダイアリーなどで3ページ目を取得できません
    • はてなダイアリーのSITEINFOを本体に持つようにしたので、ダイアリーでも動作するようになりました

jAutoPagerizeを参考にして、とりあえず動くようにしたレベルなので、バグがあったりしてすぐに修正が入るかもしれません。ご了承を。


なお、今まで書いたいくつかのUserjsもSafari3対応を進めているので、順次公開していく予定です。

セットで OperaとSafariでLDRizeとMinibuffer もどうぞー
はてなハイクについてははてなハイク用GreasemonkeyをSafari3対応に - 0xFFもどうぞ

*1:自己責任で旧バージョンを使うことを止めはしませんが、とてもオススメはできません