Fork me on GitHub

2009/04/03

はてな
こうすればいいのか...
デザイン設定画面のスタイルシートに
.hatena-star-star-image { background-image: url('http://mattn.kaoriya.net/images/unko.gif'); }
こんな感じになります。
Posted at 09:00 in web | WriteBacks (0)
Tagged as: うんこ, はてな, はてなスター, ウンコ
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip | add to buzzurl add to buzzurl | add to fc2bookmark add to fc2bookmark | add to Yahoo Bookmark add to Yahoo Bookmark | add to Pookmark add to Pookmark

2008/06/16

はてな
はてなダイアリーモバイルでも、はてなスターが付けられる様になった様です。
モバイル版はてなダイアリーではてなスターに対応しました - はてなダイアリー日記

本日、モバイル版はてなダイアリーではてなスターを見たり付けたりできるようになりました。

これまでモバイル版ではてなスターに対応していたサービスははてなハイクだけでしたが、はてなダイアリーでも同様に☆を閲覧したり追加したりできるようになりました。

http://d.hatena.ne.jp/hatenadiary/20080613/1213342619
モバイル端末で試した所、確かにスターが付けられます。「もしや...」と思って自分のサイトでもやってみたら...
できちゃいました。
スターを付けるURLは
http://s.hatena.ne.jp/star.add?sid={SID}&rks={RKS}&uri={記事URL}&location={元の場所}
の様なのですがモバイル端末ではログインし直す事もある為、リンク先には「ログイン」や「かんたんログイン」へのリンクが張られています。
これがあれば外部ドメインでもスターが付けられるって事ですね。
先日、blosxomでモバイル様にはてなスターを表示する為のプラグインを書いたのですが、その際に修正したフレーバに以下のリンクも付け足しました。
<a href="http://s.hatena.ne.jp/star.add?sid=&rks=&uri=$url$path/$fn.htm&location=$url$path/$fn.htm"><img src="http://s.hatena.com/images/add_bl.gif" border="0"/></a>$hatenastar_mobile::stars<br />
おそらく一度かんたんログイン等でログインすれば、はてなドメイン上のクッキーは少しの間は使える筈なので、二三個付ける場合でも再度ログインする事は無いと思います。
Posted at 14:07 in web::はてな | WriteBacks (1)
Tagged as: はてな, はてなスター
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip | add to buzzurl add to buzzurl | add to fc2bookmark add to fc2bookmark | add to Yahoo Bookmark add to Yahoo Bookmark | add to Pookmark add to Pookmark

2008/06/06

はてな
このサーバではJSON::Syck::Load(YAML::Syck::LoadJSON)が動かなかった(おそらくXSコンパイルされてない)のでJSON::PPを使ってますが、使える人はJSON::Syck::Loadを使うという事で
hatenastar_mobile
# Blosxom Plugin: hatenastar mobile
# Author(s): mattn
# Version: Fri, 06 Jun 2008

package hatenastar_mobile;

use strict;
use warnings;
use vars qw($stars);
use LWP::UserAgent;
use URI::Escape;
use HTTP::Request;
use JSON::PP;

$stars = '';

my $permalink_flavour = 'htm';
my @mobile_ua = qw(UP\.Browser KDDI PDXGW DoCoMo J-PHONE L-mode Vodafone SoftBank);

sub start {
    return 1 if map { $ENV{'HTTP_USER_AGENT'} =~ /$_/ } @mobile_ua;
}

sub story {
    my($pkg, $path, $fn, $story_ref, $title_ref, $body_ref) = @_;
    return 0 if $ENV{'PATH_INFO'} !~ /\.$permalink_flavour$/;

    eval {
        my $uri = 'http://s.hatena.ne.jp/entries.json?uri=' . URI::Escape::uri_escape("$blosxom::url$path/$fn.$permalink_flavour");
        my $ua = LWP::UserAgent->new;
        my $req = HTTP::Request->new(GET => $uri);
        my $res = $ua->request($req);
        $res->is_success or return 0;
        my $json = decode_json( $res->content );
        my @sts = @{$json->{entries}->[0]->{stars}};
        for my $st (@sts) {
            $stars .= '<img src="http://s.hatena.ne.jp/images/star.gif" title="' . $st->{name} . '" />'
        }
    };
    1;
}
パーマリンクとなるflavour名をpermalink_flavourに指定し、flavourに"$hatenastar_mobile::stars"を入れると表示されます。

2008/01/17

はてな
まぁ、ただそれだけなんですが...
はてなスターに連射ボタンをつけるBookmarklet - 0x集積蔵
tyoro.exe はてなスターに連射ボタンをつけるBookmarklet 改造版
Operaは...しらん。
はてスタ連射
コード
(function(){
var SPEED=2000;
var d=document;
function r(b,m){
    b.onclick=function(){
        var t=setInterval(function(){
            var e;
            if(d.all){
              e=d.createEventObject();
              e.target=m;
              m.fireEvent("onclick",e);
            }else{
              e=d.createEvent("MouseEvents");
              e.initMouseEvent("click",true,true,window,1,10,50,10,50,0,0,0,0,1,m);
              m.dispatchEvent(e);
            }
        },SPEED);
        b.innerHTML='[STOP!]';
        b.onclick=function(){
            clearInterval(t);
            b.innerHTML='[&#36899;&#23556;!]';
            r(b,m);
        }
    }
}
var im=d.images;
for(var i=0,l=im.length;i<l;i++){
    var m=im[i];
    if(m.className=='hatena-star-add-button'){
        var b=m.parentNode.appendChild(d.createElement('b'));
        b.innerHTML='[&#36899;&#23556;!]';
        r(b,m);
    }
}
})();