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に登録する。というステップを踏めばいい。