SITEINFOとは?

AutoPagerizeが自動的に次のページを先読みする際に使用する、サイトの必要最低限の構造をまとめたデータ。こんな感じ。

var SITEINFO = [
    /* sample
    {
        url:          'http://(.*).google.+/(search).+',
        nextLink:     'id("navbar")//td[last()]/a',
        pageElement:  '//div[@id="res"]/div',
        exampleUrl:   'http://www.google.com/search?q=nsIObserver',
    },
    */
    /* template
    {
        url:          '',
        nextLink:     '',
        pageElement:  '',
        exampleUrl:   '',
    },
    */
]

この例はAutoPagerize内の記述。サンプルとして出ているのはGoogle検索に対応している部分。urlは正規表現、nextLinkとpageElementはXPath式。exampleUrlは読んだままにAutoPagerizeを実行可能な実際のURLを示している。テンプレートが用意されていることからわかるように、 [ と ] の間に直接書き込んでもSITEINFOは機能する。
JavaScriptに明るい人ならもうお気付きだろうが、変数SITEINFOの中身はすべてコメントアウトされていて空っぽだ。テンプレ通りに書いて追加すればちゃんと機能するが、現在ではSITEINFOはAutoPagerize内に記述されていない。wedataというデータベースにまとめられており、基本的に外部からSITEINFOを読み込むことでAutoPagerizeが動作するようになっている。

var SITEINFO_IMPORT_URLS = [
    'http://wedata.net/databases/AutoPagerize/items.json',
]

の部分にSITEINFOを提供する他のサイトを記述することで、wedata以外からSITEINFOを読み込むことも可能だ。過去にwedataのサーバーがダウンした際に、代替的にSITEINFOを提供可能なAPIを持つサイトを記述する方法でAutoPagerizeを動作させるという解決手段が取られたことがある*1

SITEINFOの特殊なものとしてはMICROFOTMATがある(という理解をしているが、実態はもう少し違うようだ。AutoPagerizeに関する部分しか必要ないならこの理解で構わないと思う)。あらかじめサイトのHTML内に以下の条件に適合する記述があれば、SITEINFOやwedataのデータベースに一致するものがなくても、AutoPagerizeが動作する。

var MICROFORMAT = {
    url:          '.*',
    nextLink:     '//a[@rel="next"] | //link[@rel="next"]',
    insertBefore: '//*[contains(@class, "autopagerize_insert_before")]',
    pageElement:  '//*[contains(@class, "autopagerize_page_element")]',
}

重要なことは、SITEINFOを書いておけばAutoPagerizeが使えて便利になるということ。wedataにSITEINFOを登録すれば他の人もそのサイトでAutoPagerizeが使えるようになってもっと便利ということ。
まずAutoPagerize内に直接書き込んでSITEINFOが有効であることを確かめる。OKならwedataに登録する。というステップを踏めばいい。

*1:id:os0x:20081224:1230075228 参照