b+s.hatena on world
@@ -1,31 +1,44 @@
/*
- * @title b.hatena on adventar
- * @description adventar 投稿リンクのはてなブックマーク数を表示
- * @include http://www.adventar.org/calendars/*
+ * @title b+s.hatena on world
+ * @description append HatenaBookmark and HatenaStar images to links
+ * @include http://*
+ * @contributor taizooo http://let.hatelabo.jp/taizooo/let/hLHU1vmoqpsi (Fork of)
+ * @orig-license Unknown (as-is)
+ * @license TBD (as-is)
+ * @javascript_url
*/
-// for www.adventar.org
-// example http://gyazo.com/e60c5ade0b259e852a7b4eecfa52398e.png via http://www.adventar.org/calendars/76
-
-// cf http://blog.webcreativepark.net/2007/06/10-234711.html
-// cf http://d.hatena.ne.jp/Hamachiya2/20090910/bookmarklet
-// add hatena star cf http://let.hatelabo.jp/taizooo/let/gYC-yv6JlpXGeA
+// e.g. http://ssig33.com/text
+// http://f.hatena.ne.jp/noromanba/20141008032606
+// XXX - main content detection
+// - limit try; exec -> 10loop -> stop -> exec -> 10loop -> stop -> ...
+// - insecure on secureing secret site
(function () {
- //var anchors = document.getElementsByTagName("a");
- var anchors = document.querySelectorAll(".mod-entryList-url a, .mod-recentEntries-body h3 a");
- for (var i = 0; i < anchors.length; i++) {
- var anc = anchors[i];
- var banc = document.createElement("a");
- var bimg = document.createElement("img");
- var simg = document.createElement("img");
- banc.href = "http://b.hatena.ne.jp/entry/" + anc.href.replace(/#/g, '\u002523').replace(/^http(s{0,1}):\/\//, function (a, b) {
- return b ? 's/' : ''
- });
- bimg.src = "http://b.hatena.ne.jp/entry/image/" + anc.href.replace(/#/g, '\u002523');
- banc.appendChild(bimg);
- anc.parentNode.insertBefore(banc, anc.nextSibling);
- simg.src = "http://s.st-hatena.com/entry.count.image?uri=" + encodeURIComponent(anc);
- banc.parentNode.insertBefore(simg, banc.nextSibling);
- };
-})()
+ var each = Array.prototype.forEach;
+ var blacklist = [
+ '[href^="http://b.hatena.ne.jp/entry/"]',
+ '[data-let-hatena-parts]'
+ ].map(function (sel) { return ':not(' + sel + ')'; }).join('');
+
+ each.call(document.querySelectorAll('a' + blacklist), function (anc, idx) {
+ setTimeout(function () {
+ // c.f. http://wayback.archive.org/web/20090510113506/http://blog.webcreativepark.net/2007/06/10-234711.html
+ // http://d.hatena.ne.jp/Hamachiya2/20090910/bookmarklet
+ var banc = document.createElement('a');
+ banc.href = 'http://b.hatena.ne.jp/entry/' + anc.href.replace(/#/g, '\u002523').replace(/^http(s{0,1}):\/\//, function (_, b) { return b ? 's/' : ''; });
+
+ var bimg = document.createElement('img');
+ bimg.src = 'http://b.hatena.ne.jp/entry/image/' + anc.href.replace(/#/g, '\u002523');
+ banc.appendChild(bimg);
+ anc.parentNode.insertBefore(banc, anc.nextSibling);
+
+ // c.f. http://let.hatelabo.jp/taizooo/let/gYC-yv6JlpXGeA
+ var simg = document.createElement('img');
+ simg.src = 'http://s.st-hatena.com/entry.count.image?uri=' + encodeURIComponent(anc);
+ banc.parentNode.insertBefore(simg, banc.nextSibling);
+
+ anc.dataset.letHatenaParts = 'added';
+ }, 500 * (idx + 1));
+ });
+})();
/*
* @title b+s.hatena on world
* @description append HatenaBookmark and HatenaStar images to links
* @include http://*
* @contributor taizooo http://let.hatelabo.jp/taizooo/let/hLHU1vmoqpsi (Fork of)
* @orig-license Unknown (as-is)
* @license TBD (as-is)
* @javascript_url
*/
// e.g. http://ssig33.com/text
// http://f.hatena.ne.jp/noromanba/20141008032606
// XXX - main content detection
// - limit try; exec -> 10loop -> stop -> exec -> 10loop -> stop -> ...
// - insecure on secureing secret site
(function () {
var each = Array.prototype.forEach;
var blacklist = [
'[href^="http://b.hatena.ne.jp/entry/"]',
'[data-let-hatena-parts]'
].map(function (sel) { return ':not(' + sel + ')'; }).join('');
each.call(document.querySelectorAll('a' + blacklist), function (anc, idx) {
setTimeout(function () {
// c.f. http://wayback.archive.org/web/20090510113506/http://blog.webcreativepark.net/2007/06/10-234711.html
// http://d.hatena.ne.jp/Hamachiya2/20090910/bookmarklet
var banc = document.createElement('a');
banc.href = 'http://b.hatena.ne.jp/entry/' + anc.href.replace(/#/g, '\u002523').replace(/^http(s{0,1}):\/\//, function (_, b) { return b ? 's/' : ''; });
var bimg = document.createElement('img');
bimg.src = 'http://b.hatena.ne.jp/entry/image/' + anc.href.replace(/#/g, '\u002523');
banc.appendChild(bimg);
anc.parentNode.insertBefore(banc, anc.nextSibling);
// c.f. http://let.hatelabo.jp/taizooo/let/gYC-yv6JlpXGeA
var simg = document.createElement('img');
simg.src = 'http://s.st-hatena.com/entry.count.image?uri=' + encodeURIComponent(anc);
banc.parentNode.insertBefore(simg, banc.nextSibling);
anc.dataset.letHatenaParts = 'added';
}, 500 * (idx + 1));
});
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。