Rugg = Rugby + Digg + Twitter
ちょっとしたサブサイトを作ってみました。
簡単に言えば「Twitter上で話題になる度に自動的に投票されるラグビー関連Digg」です。イマイチよくわからない方は、簡単にですがこちらに説明を書いておきました。
ちょっと時間がある時に「どんなニュースが今、巷で話題なのかな?」と眺めるのに良いのではないかと。
これ以上特に書くことは無いのですが、折角なので技術的なことを少し、いかに簡単に作ったかを紹介しておきます。
Diggクローン
手っ取り早く Pligg を用いました。PHP+MySQLでDiggクローンが簡単に作れます。今回初めて触ったのですが、特にハマるところもなく手軽でした。
導入当初からやや重いのが残念なのと、日本語に限らずドキュメント類が乏しいので、本格的にいじりはじめると、それなりに大変かもしれません。
Twitter bot
単にDiggクローンを今更作ったところで記事が集まらないので、ここはTwitterから収集することに。Pligg本体にあわせてPHPを使うのが早そうですし、自作の Tuibotter で、こちらも手軽く。
ただ、検索機能を従来つけていなかったので、ライブラリにこれを追加しました。そうなると、Twitter本体のAPI仕様の関係で、どうしても結果をXMLで取得することが出来ません。JSON形式で取得するしか無いのですが、そのために今まで避けていた json_decode を使うことにしてしまいました。PHP5.2以前の人には使えませんが、もし希望があれば外部ライブラリに置き換えられるように調整することにします。
Twitter → Pligg
ここが一番時間のかかったところです。Pliggのコードを追いかけながら、cliで記事の投稿や投票が行える新たなエントリポイントを作成しています。
あとは、Tweetへのリンク作成や bit.ly などのURL短縮サービスにより同一リンク先でありながら異なったURLに見えてしまう点を、HTTPヘッダを追跡して元々のURLと置き換えるようにしたり、文字コード判定の不具合にパッチをあてたり、幾つかゴニョゴニョと調整を。
Pligg → Twitter
これは前記の作成した新たなコマンドがイベントを拾って標準出力へTweet IDを返すようにし、Tuibotterの機能でRTすれば簡単です。
作業時間はトータルで正味6時間くらいでしょうか。しかし実際にテスト的に廻しながら機能を調整していったので、着手してからの日時は結構経っています。
不具合や要望等あれば、こちらにコメントいただいても良いですし、メールやTwitterなどでも。
Related posts:
-- Posted by nao58








