AutoPagerize の SITEINFO を書いてみた。
どこから手をつければ良いのか分からず途方にくれたので、やったことをメモしておきます。
最初に自分の手元でテスト
Greasemonkey の「ユーザースクリプトの管理」から AutoPagerize を選んで「編集」します。そして var SITEINFO の中身を編集します。(notepad.exe では編集不可能ですので、改行コード LF を扱えるエディタを使用する必要があります)
http://wedata.net/items/1510 の内容なら、
var SITEINFO = [ { url: 'http://wiredvision\.jp/(gallery|news)/[0-9]+/[0-9]+.html', nextLink: '//div[contains(@class, "galleryContent")]//ul[contains(@class, "navigation")]/li/a', pageElement: '//div[contains(@class, "galleryContent")]', insertBefore: '//div[contains(@class, "gallery")]/ul[contains(@class, "menu")]', exampleUrl: 'http://wiredvision.jp/news/200805/2008051923.html', }, ]
こんな感じになります。nextLink, pageElement, insertBefore は XPath で記述します。記述すべき XPath を知るには Firebug を使うのが便利です。
- 参考:http://autopagerize.jottit.com/how_to_write_siteinfo_(ja)
- 参考:データベース連携からシステム統合まで、企業システムの「つなぐ」を実現 | インフォテリア株式会社
編集しセーブした後は Firefox で該当ページをリロードするだけで反映されます。
うまく動作しない場合は、編集ミスを見つけるために JavaScript コンソールを表示しておきます(ツール ⇒ コンソール)。コンソールに何も役に立つことが出ていないようなら、以下のような手段を使ってデバッグします。
- 要所要所に GM_log() を挿入してどこで問題が起こるか見極めます。
- 他人の設定を無視するために launchAutoPager(〜) をほぼ全てコメントアウトします (launchAutoPager(SITEINFO) だけは残しておきます)
うまく動作するようになったら var SITEINFO の中身をどこかにメモしておいて、AutoPagerize をアンインストールし、http://userscripts.org/scripts/show/8551 からインストールしなおします(自分が行った編集が原因で AutoPagerize が誤動作しないように、オリジナルを入れなおすのです)。
Firebug が有効になっているとユーザースクリプトをうまくインストールできないことがよくあるので、必要な時以外は Firebug は無効にしておくと良いと思います。
Wedata へ登録
SITEINFO は Item - データベース: AutoPagerize - wedata へ追加することでみんなが幸せになれます。Wedata へ追加するためにはまずログインする必要があるのですが、そのためには OpenID が必要です。
はてなダイアリーの利用者の場合は、はてなが OpenID を提供してくれているのでそれを使うのが楽かもしれません。私のアカウントならば http://www.hatena.ne.jp/ganaware/ が OpenID です。最後の / は必須です(おかげでうまくいかなくてしばらく悩みました)。
SITEINFO の追加が終わったら、AutoPagerize のユーザースクリプトコマンド (右下の Greasemonkey のアイコンを右クリックして出てくるメニューの中にあります) から AutoPagerize - clear cache を実行しておきます。
できた!
これで自分の好きなページが便利に見られるようになりました。
しかし幾つか疑問もわいてきます:
- もっとスマートなやり方はないのでしょうか?
- 他人が書いた SITEINFO の url と被っている場合、どうなるのでしょうか?
- その場合、他人の SITEINFO を編集して、自分のものと被らないように修正すべきでしょうか?