AutoPagerize の SITEINFO を書いてみた。

http://wedata.net/items/1510

どこから手をつければ良いのか分からず途方にくれたので、やったことをメモしておきます。

最初に自分の手元でテスト

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 を使うのが便利です。

編集しセーブした後は 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 を編集して、自分のものと被らないように修正すべきでしょうか?