2009-01-23
はてスタの引用をまとめる Greasemonkey を書きました。
このように
引用機能を使って伝えたいことを表現するときってありますよね><
でも、いちいちマウスを横に動かしてくのがプルプルするんです!プルプルするんです!
というわけで
以下のようにまとめてくれるグリモン書いた
ご自由にお使いください
// ==UserScript== // @name Quote Matome // @namespace http://d.hatena.ne.jp/amachang/ // @include http://* // ==/UserScript== (function(f) { // Greasemonkey から prototype をいじるトリック unsafeWindow.location.href = 'javascript:(' + f + ')();void(0);' })(function() { // はてスタ使ってないページ if (!window.Hatena || !Hatena.Star) return; // uri から Hatena.Star.Entry のインスタンスを取得するための辞書 Hatena.Star._entryMap = {}; // Hatena.Star.Star の quote プロパティを _quote プロパティに変える Hatena.Star.EntryLoader.entries.forEach(function(e) { // ついでに辞書に登録 Hatena.Star._entryMap[e.uri] = e; e.stars.forEach(function(s) { s._quote = s.quote; delete s.quote; }); }); // Hatena.Star.Star に quote セッターを作る Hatena.Star.Star.prototype.__defineSetter__('quote', function(quote) { return this._quote = quote; }); // Hatena.Star.Star にゲッターを作る Hatena.Star.Star.prototype.__defineGetter__('quote', function() { // 自分自身が所属する Hatena.Star.Entry を取得する return Hatena.Star._entryMap[this.entry.uri]. // スターを取得 stars. // 同じ名前のスターだけ抽出 filter(function(s) { return s.screen_name == this.screen_name }, this). // 引用を持っているスターを抽出 filter(function(s) { return s._quote }). // 引用文字の抽出 map(function(s) { return s._quote }). // 結合 join(' '); }); });
カラオケ行ってきた
てなことを言っていたら、 id:mizzusano が企画してくれて、 id:lovecall と id:wadap も来て楽しかった!
なんか、あまりにも世代が合いすぎておもしろかった。ロマンスの神様も聞けたし。
「大塚愛のさくらんぼとかめちゃめちゃ新曲だよねー。」とか言えちゃうくらいの 90 年代っぷり。
意外と「A・RA・SHI」が難しかったなー。ちょっと新曲過ぎたかな。
個人的には、 id:mizzusano & id:wadap のチャゲアスが良かった。
非生産的っていいな。
$ karaoke > /dev/null
そのあと、居酒屋で「本当はあれ歌いたかったんだけど、空気探ってたんだよねー」てな話が出て、「俺も俺も」みたいな感じで意気投合。










