// ==UserScript== // @name Replace star icon anywhere for Hatena Star // @namespace http://www.trashsuite.org/ // @include http://* // @include https://* // @see http://d.hatena.ne.jp/trashsuite/20081125/1227637917 // @see http://d.hatena.ne.jp/os0x/20080730/1217393400 // @version 1.0.6 // ==/UserScript== location.href = 'javascript:(' + (function() { var COLOR = false, count = 0; var t = setInterval(function(){ if(window.Hatena && Hatena.Star && Hatena.Star.Entry) { clearInterval(t); var stars = document.getElementsByClassName('hatena-star-star'); var i = stars.length,s,c; while(i --> 0) { if(/^[a-zA-Z][-\w]{1,30}[a-zA-Z\d]$/.test((s=stars[i]).alt)) { if (COLOR && (c = (/star-(\w+)\.gif/.exec(s.src)||[])[1])) s.style.border = '2px solid ' + c; s.src = Hatena.User.getProfileIcon(s.alt).src; } } var show_name = Hatena.Star.Star.prototype.showName; var pushStars = Hatena.Star.Entry.prototype.pushStars; Hatena.Star.Star.prototype.showName = function(e) { this.screen_name = this.name; show_name.call(this, e); }; Hatena.Star.Entry.prototype.pushStars = function(stars, color) { stars = stars.map(function(star) { var image = Hatena.User.getProfileIcon(star.name); image.alt = star.name; if (COLOR && color) image.style.outline = '2px solid ' + color; star.img = image; return star; }); pushStars.call(this, stars, color); }; } if(++count == 10) clearInterval(t); }, 30); }).toString() + ')()';