はてなスターのリンクをダイアリーに換えるgreasemonkeyの正当なやり方

はてなスターのリンクをダイアリーに換えるgreasemonkeyの自己添削エントリー。

目的

はてなスターについているリンクのアドレスをttp://s.hatena.ne.jp/userID/ → ttp://d.hatena.ne.jp/userID/のようにダイアリーへ書き換えるスクリプトをつくる。今回はそれの正当なやりかたを考える。

どうやるのかわからない

headの最後にTen.JSONP.callbackてのがあることに気づいたが、どうやって取り出すのかわからなかった。
そこで、はてなスターに関するグリモンをあたってみた。

関数の二次利用はこうやるのかー

はてなスターの星をプロフィールアイコンに置き換えるGreasemonkey Scriptメンテナンス更新 - 0x集積蔵
ここを参考にHatenaStar.jsとにらめっこ。

HatenaStar.jsからどうやって情報をかすめとるか大変参考になりました。id:os0xさんありがとうございます。

できたコードがこれ。

ソースコード

// ==UserScript==
// @name           hatena_star_link_diary2
// @namespace      http://d.hatena.ne.jp/Cherenkov
// @include        http://*.hatena.ne.jp/*
// ==/UserScript==

if (unsafeWindow.Hatena && unsafeWindow.Hatena.Star){
    unsafeWindow.Hatena.Star.User.prototype.userPage = function(){
        return 'http://d.hatena.ne.jp/' + this.name + '/';
    }
}

簡易的にブックマークレット

*この方法はブックマークレットで手軽に再現してほしかっただけです。greasemonkey版はクリックすることなくリンクが書き換わります。

ブックマークレットで再現するには、まず上の画像のようにスターがたくさんついてるエントリーを見つけてください。つぎに下のコードをアドレスバーにコピペしてエンター押して実行したら、上の画像の数字の部分をクリックしてください。出てきたスターのリンクはダイアリーになっているはずです。

javascript:(function(){Hatena.Star.User.prototype.userPage=function(){return'http://d.hatena.ne.jp/'+this.name+'/';}})();

インストール

hatena_star_link_diary2.user.js

感想

  • やり方としては、たぶん正当なものができた。
  • amazonのASINのように簡単に取得できるとおもってた。