初めてのグリモン

といっても入門編とかを書くのではなく、初めてグリモンのコードをいじったということです。


参考というか、土台はこちらのスクリプト。ありがたいです。
はてなスターの星をプロフィールアイコンに置き換えるGreasemonkey Scriptメンテナンス更新 - 0x集積蔵
でも、Firefox3の人は上のやつではうまく動かないので、こちらのをコピペっとすれば動く。
GreasemonkeyをBookmarklet的に実行してみる - 0x集積蔵

で、さらにハイクキーワードのGreasemonkeyでのこの投稿を参考にしました。


変更点は

  • すべてのアイコンに枠をつけて、幅は1pxに
  • 自分のアイコンは違う色にした

自分のアイコンの枠の色はUserの欄に表示されるアイコンに付く枠のこの色にして、それ以外の枠の色はスターをつけるボタンと同じこの色にしました。
こんなかんじになります。

コードはこんな感じです。自分が触ったのはわずか2行でございます。これを機になにか作ってみようかな。なんて。
その前に卒業研究だけどね。

// ==UserScript==
// @name           replace star by profile icon
// @namespace      http://ss-o.net/
// @include        http://*.hatena.ne.jp/*
// @checkurl       http://ss-o.net/userjs/replaceStarByProfileIcon.user.js
// @version        1.1
// ==/UserScript==

location.href = 'javascript:(' + function(){
(function(unsafeWindow){
  if (unsafeWindow && unsafeWindow.Hatena && unsafeWindow.Hatena.Star){
    var bindStarEntry = unsafeWindow.Hatena.Star.Entry.prototype.bindStarEntry;
    var myid = unsafeWindow.Hatena.Visitor.name;
    unsafeWindow.Hatena.Star.Entry.prototype.bindStarEntry = function(se){
      var self = this, stars = [];
      for (var i = 0,len = se.stars.length; i < len; i++) {
        var star = se.stars[i];
        if (star.name) {
          var img = unsafeWindow.Hatena.User.getProfileIcon(star.name);
          //img.src = img.src.replace(/\/profile_s/,'/profile');img.width = img.height = 64;
          img.style.border = "solid 1px #BDD9D8";
          img.alt = star.name;
          if(star.name == myid){
            img.style.border = "solid 1px #E1BEBC";
          }
          if (!star.img) star.img = img;
        }
        stars.push(star);
      }
      se.stars = stars;
      bindStarEntry.call(self, se);
    }
    var showName = unsafeWindow.Hatena.Star.Star.prototype.showName;
    unsafeWindow.Hatena.Star.Star.prototype.showName = function(e){
      this.screen_name = this.name;
      showName.call(this,e);
    };
  }
})(this.unsafeWindow||window);
}.toString() + ')()';