oAutoPagerize

AutoPatchWorkOperaChromeSafariそれぞれの拡張機能として利用できるようになったので、oAutoPagerizeの更新は停止しました。ご了承ください。

id:swdyh氏のAutoPagerize for GreasemonkeyOperaSafari,Google Chromeなどで動作するように移植*1しました。

for Opera

必須ファイルは0AutoPagerize.SITEINFO.jsと、oAutoPagerize.jsの2つです。0AutoPagerize.Settings.jsはオプションです。以下説明。

SITEINFO ファイル:0AutoPagerize.SITEINFO.js

wedataのSITEINFOをまとめたファイルです。OperaのUserjsはファイル名順に実行されるので、ファイル名を0で始めています。このSITEINFOがないとほとんど動作しないので、実質このSITEINFOファイルのインストールは必須です。なお、このファイル自体は1時間おき*2にアップデートされますが、一度ローカルに保存されたファイルは自動ではアップデートされません。定期的に右上のアイコンからUPDATE SITEINFOを右クリックしてファイルを保存しなおしてあげてください。面倒ですが、今のところこれしか。。Safari(GreaseKit)の方は普通にクリックすればインストールダイアログがでるので、そこで上書きするだけでOKです。
Windowsをお使いの方は、Windows用 oAutoPagerize, xLDRizeのSITEINFOの更新バッチ - 0xFFなどで自動化をオススメします。

本体ファイル: oAutoPagerize.js

新しいバージョンが出た際はこちらを更新してください。また、動作がおかしいときはまずこちらを入れ替えてみてください。

設定ファイル:0AutoPagerize.Settings.js

oAutoPagerize ver 0.4 - 0xFFでも書いたように、設定関連は別ファイルで管理できるようになっていますが、その機能を少し強化しました。具体的には、実行禁止ページを正規表現で指定できるようになっています。また、AutoPagerize の右上のアイコンを変えてみたも設定ファイルだけでできるようにしてみました。こちらはオプションスクリプトなので、インストールしなくても動作します。

for GreaseKit, Google Chrome/Chromium User Scripts

Opera版と中身は基本同じですが、ファイル名が.user.jsで終わる点に注意してください。(Chrome4以降では、oAutoPagerizeは動きません。Extensions版のAutoPagerizeか、AutoPatchWork必須です)

本体ファイル(必須): http://ss-o.net/userjs/oAutoPagerize.user.js
設定ファイル: http://ss-o.net/userjs/0AutoPagerize.Settings.user.js

また、非日本語圏向けに oAutoPagerize for Greasemonkey も用意しています。

ver1.0までの更新(これ以降の更新は[oAutoPagerize] - 0xFFからチェックしてください)

  • 2008/04/27 13:54 wedataに対応した、ver1.0公開
  • 2008/02/13 00:35 Safari用がバグっていたので、修正しました。すみません。。
  • AutoPagerize0.0.22 - SWDYHにあわせて、documentFilters*3などを実装。SITEINFOのマッチングをさらに高速化*4
  • 2008/01/30 17:39 右上のアイコンの表示切り替えを調整
  • 2008/01/22 12:47 詳細はoAutoPagerizeメンテ更新 - 0xFF
  • 2007/12/20 14:21 SITEINFOが定期的に更新されるようにしました*5oAutoPagerizeの自動更新始めました - 0xFF
  • 2007/12/03 17:21 http://d.hatena.ne.jp/quaa/20070607#p1 にある、FIRST_ORDERED_NODE_TYPEだとバグる件の対応を忘れていたので修正。
  • 2007/12/05 19:58 SITEINFOのマッチングを高速化
  • 2007/12/09 0:25 読み込み用のインラインフレームに対する処理が誤動作していた問題を修正

Opera用にカスタムした部分

インラインフレームに読み込むと、画像が全て読み込まれ、JavaScriptも全て実行されるため、次のページの読み込みが非常に遅くなる傾向がありました。
そこで、display:none;になっている要素内の画像はロードしないというOperaの特徴と、ページのJavascriptを全て無効化するUserjsを参考にJavaScriptの実行を止めることでインラインフレームのロードを高速化しています。

余談

jAutoPagerizeに刺激されて、全部書き直して公開しようかとも思ったのですが、冷静になってやめました...

謝辞

OperaXPathに関するバグを詳細に調査してくださったid:quaaさんにお礼申し上げます。
インラインフレームで何とかできるという発想もOpera用のAutoPagerizeでXPath式にid()を使えるようにする試みがきっかけでした。本当に助かりましたm(_ _)m。
そして、My opera 用の SITEINFO 書いた - opera:hige - チーム俺等してくれたid:higeorangeにもお礼を。ちょっと遅くなったけど、採用済みです。

*1:正確には[http://d.hatena.ne.jp/gnarl/20070603/1180820465:title]の改良版です

*2:更新に失敗していることもあります

*3:nextLinkなどの取得前にかけられるフィルタ。コレを使えば、base要素への対応、インクリメントなどもう少しスマートに出来そうです。

*4:Opera9.25で、Googleにて計測したところ500msを300msに短縮

*5:上記ファイルが更新されるだけで、ローカルのファイルが更新されるわけではありません。あしからず。