モバイルはてなスター

はてなハイクを携帯から見ているという人は結構多くて、そういう自分も電車で移動しているときなどはついつい見てしまう。それで、今回はてなハイクは最初からモバイル版も結構力を入れて作っているんだけど、どうしても足りないのがはてなスターだった。はてなスターjavascriptで動いているので、javascriptが動作しない携帯電話には簡単には搭載できない。それで二の足を踏んでいたわけだけど、最近のモバイルユーザーの増加の様子を見るにやっぱりここはやらないとなあと思ってモバイルハイクでもスターを使えるようにした。一度作ってしまえばあとは使いまわしもきくので、ダイアリーやブックマークでも使えるようになる日も近いだろう。
ところで昨日はちょっとしたいきさつで、ある家庭で子供二人、お母さん一人という家庭の環境で仕事をさせてもらうことになって(どんないきさつだ!w)、最初行く前は子供とかが居るとやっぱり作業するの難しいかなと思っていたんだけど、いざやってみると結構はかどって楽しかった。小学校の頃は家の台所で毎日妹と宿題をやっていたんだけど、なんとなくその頃を思い出して少し懐かしかった。それから、やっぱりいろいろな立場の人と接すると学ばせてもらう事がある。学校の授業参観のお知らせは未だにわら半紙で配られているとか、そういうちょっとしたことが新しいアイデアに繋がるかもしれない。いろんな環境に身を置いてみるものだなと改めて思った。

Hatena::Star::Mobileを考える

ということで、他でも使えるHatena::Star::Mobileのインターフェース仕様を考えてみよう。

use Hatena::Star::Mobile;

my $entries = [
    {uri => 'http://d.hatena.ne.jp/jkondo/20080123/1201040123'},
    {uri => 'http://d.hatena.ne.jp/jkondo/20080122/1200947996'},
    {uri => 'http://d.hatena.ne.jp/jkondo/20080121/1200906620'},
];

my $star_entries = Hatena::Star::Mobile->get_star_entries(
    entries => $entries,
    location => 'http://d.hatena.ne.jp/jkondo/mobile', # add starした時の戻り先
    color => 'gr', # starボタンの色
    user => $user, # isa Hatena::User(って、外部では使えないなあ)
);

for my $se (@$star_entries) {
    print $se->{star_html}; # addボタンと☆のhtml
    print $se->{uri}; # entryのuri
}

こういう感じかなあ。よく考えると外部サイトから認証系の情報が取れないので、着いた☆は見れても、☆を付けるのは難しいかも。

作ってみました

作ってCPANにアップしました。認証はmobile_session_idなど、はてな内でしか取得できない情報での認証にしか対応していませんが、ひとまずinitial versionということで。