XREA.COM Logo XREA.COM Ad

作ったもの

12l ★:2006/11/09(木) 00:24:14 ID:???
・Sleipnir用GooglePageRank表示

GoogleToolBarに付いているページランク取得の奴をSleipnirから使えるようにしてみることに。
前にもページランク取得のしくみを調べようとしたことがあるが、サーバにURLと共に送信するチェックサムのようなものを求めるしくみが分からずに挫折していた。
なにやらサードパーティ製のページランククライアントがいくつかでまわっているようなので、ソースコードを探してみたら、どこかの偉い人がWWW::Google::PageRankというPerlモジュールを作成していた。
http://72.14.235.104/search?q=cache:A9LJPeSrplQJ:www.drk7.jp/MT/archives/000486.html www::google::pagerank.pm&hl=ja&ct=clnk&cd=1&lr=lang_ja

リクエストを送っている部分は簡単なのだが、チェックサムを求めるコードがやたらとややこしい。
どうやら、GoogleToolBarのプログラムをデバッガか何かで解析して、ネイティブコードをそのままPerlスクリプトに置き換えたものらしい。ご苦労なことだ。
それを更にJavaScriptに置き換えることに。
ビット演算の符号の扱いの違いとかに苦しめられたが、とりあえずオリジナルと同じ動作をするようになった。
リクエストを行う部分は適当にXMLHTTPの奴で再現した。
とりあえず、Rankがどうのというテキストが返ってきたので、一応動作しているのだろう。

次に、Sleipnirで表示しているページのランクを取得して表示したい。
とりあえず、ページを読み込むときに自動実行されるSeaHorseスクリプトにしてみる。
ページの読み込みが完了するのを待って、表示中のページのランクを取得する。
表示の方法が問題である。
とりあえずsleipnir.Statusに文字列を代入し、ステータスバーに表示させてみたが、タブバーをマウスでポイントするだけで消えてしまって役に立たない。
いちいちEchoでアウトプット欄に表示するのも鬱陶しい。
仕方ないので、ページのタイトルの先頭に付加してみる。

なにやら、ページによってはSeaHorseスクリプトが多重に呼び出されていることが明らかになる。
画像やCSSを読み込むときにもいちいち実行されるのか、IFRAMEとかが仕込まれていると多重実行されるのかは不明。プラグインのドキュメントが糞ほどの役にしか立たないのが忌々しい。
いずれにせよ、多重に実行することは避けられないようなので、既にタイトルにページランクが付加されていたら実行を中止するように。
とりあえず、タイトルにページランクが表示されるようになった。
しかし、タブにもいちいちランクが表示されるのが鬱陶しい。一覧できるのは面白いかもしれないが。

とりあえず完成したので少し使ってみたが、ページランクなんて見て何がうれしいのだろうか。
投稿ファイル名: GooglePageRank.zip
http://lukewarm.s151.xrea.com/b/file/1149783578_12.zip
サイズ: 1413
28KB
名前: E-mail:
ファイル:
0ch BBS 2005-10-08