2011/02/14 にタイムスリップ Fork

  • /*
     * @title 2011/02/14 にタイムスリップ
     * @description スターがハートになります。
     * @include *
     * @license MIT License
     * @javascript_url
     */
    
    // http://d.hatena.ne.jp/hatenastar/20110214/1297662727
     
    (() => {
    
    	if (typeof(Hatena) == 'undefined' || !Hatena.Star) return;
    
    	const v = ['', '-green', '-red', '-blue', '-purple', '-temp'];
    
    	// はてなブックマークはいきなりデフォルト値参照してたからデフォルト値変えざるを得ない
    	if (Hatena.Bookmark) {
    
    		const p = Hatena.Star.Star.ColorPallet;
    
    		v.forEach(
    			r => p[r = r ? r.substr(1) : 'yellow'].ImgSrc = p[r].ImgSrc.replace(/star/, 'valentine-star')
    		);
    
    		Hatena.Star.Button.sels = {};
    
    	}
    
    	const c = document.querySelector('head').appendChild(document.createElement('style'));
    	c.setAttribute('type', 'text/css');
    
    	v.forEach(
    		r => c.sheet.insertRule(`.hatena-star${r}-star-image {background-image: url('http:\u002F\u002Fs.hatena.ne.jp/images/valentine-star${r}.gif') !important}`, 0)
    	);
    
    	Hatena.Star.Star.gotImage = {};
    
    	Hatena.Star.EntryLoader.entries.forEach(e => {
    
    		// http://var.blog.jp/archives/55466071.html
    		// e.flushStars() はスター情報まで空になる
    		e.star_container.innerHTML = '';
    
    		e.stars.forEach(
    			(s, i, a) => a[i] = (s.showInnerStars && (s.showInnerStars() || 1)) ? s : new Hatena.Star.Star(Object.assign(s, { img: null }))
    		);
    
    		e.addAddButton();
    		e.showStars();
    
    	});
    
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。