擬似カラーいるか
by
pacochi
2011-05-31 [2011/05/31 02:11:53]
http://q.hatena.ne.jp/1286370456 色はスターに準じています。
@@ -2,7 +2,7 @@
* @title 擬似カラーいるか
* @description http://q.hatena.ne.jp/1286370456 色はスターに準じています。
* @include http://q.hatena.ne.jp
- * @license MIT License
+ * @license MIT License
*/
(function () {
@@ -21,72 +21,77 @@
var path = location.pathname;
-var listCI = function () {
+var ansCI = function () {
- var imgs = document.getElementsByTagName("img");
- var n = 0;
+ if (isJinriki()) jinrikiCI();
+ if ($("neighbor-question")) neighborCI();
- for (var i = 0; i < imgs.length; i++) if (imgs[i].src.match(/\/iruka\.gif/)) {
+};
- n = imgs[i].parentNode.href;
+var jinrikiCI = function () {
- if (n) {
+ var imgBy = Ten.Selector.getElementsBySelector("img.by", $("main"));
+ var irukaBy = null;
- n = lastDigit(n.split("#")[0]);
- imgs[i].src = irukaImgBase + irukaImg[0][n];
+ for (var i = 0; i < imgBy.length; i++) if (imgBy[i].src.match(/\/iruka\.gif/)) {
- }
+ irukaBy = imgBy[i];
+ break;
}
- // http://q.hatena.ne.jp/1286370456/273234/#i273238
- var myirukacell = Ten.Selector.getElementsBySelector("td.myirukacell");
+ if (irukaBy) {
- if (myirukacell && myirukacell[0]) {
+// var n = Ten.Selector.getElementsBySelector("a.answer-number", $("read_answer_list")).length % 10;
+ var n = lastDigit(path);
+ irukaBy.src = irukaImgBase + irukaImg[0][n];
+ Ten.Selector.getElementsBySelector("div.answer-header", $("read_answer_list"))[0].style.backgroundImage = "url(" + irukaImgBase + irukaImg[1][n] + ")";
- var myIruka = myirukacell[0].getElementsByTagName("img");
+ }
- for (var i = 0; i < myIruka.length; i++) {
+};
- myIruka[i].parentNode.style.cssText = "display:block;float:left;width:24px;height:24px;text-align:center;vertical-align:bottom;";
- myIruka[i].style.cssText = (i % 10 == 0) ? "-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);margin-left:4px;" : "margin-top:8px;";
+var neighborCI = function () {
- }
+ var hasIruka = Ten.Selector.getElementsBySelector("li.has-iruka", $("neighbor-question"));
- }
+ for (var i = 0; i < hasIruka.length; i++)
+ hasIruka[i].style.backgroundImage = "url(" + irukaImgBase + irukaImg[0][lastDigit(hasIruka[i].getElementsByTagName("a")[0].href)] + ")";
};
-var ansCI = function () {
+var listCI = function () {
- var imgBy = Ten.Selector.getElementsBySelector("img.by", $("main"));
- var irukaBy = null;
+ var imgs = document.getElementsByTagName("img");
+ var url;
- for (var i = 0; i < imgBy.length; i++) if (imgBy[i].src.match(/\/iruka\.gif/)) {
+ for (var i = 0; i < imgs.length; i++) if (imgs[i].src.match(/\/iruka\.gif/)) {
- irukaBy = imgBy[i];
- break;
+ url = imgs[i].parentNode.href;
+ if (url) imgs[i].src = irukaImgBase + irukaImg[0][lastDigit(url.split("#")[0])];
}
- if (irukaBy) {
+ // http://q.hatena.ne.jp/1286370456/273234/#i273238
+ if ($("usertable")) standIruka();
-// var n = Ten.Selector.getElementsBySelector("a.answer-number", $("read_answer_list")).length % 10;
- var n = lastDigit(path);
- irukaBy.src = irukaImgBase + irukaImg[0][n];
- Ten.Selector.getElementsBySelector("div.answer-header", $("read_answer_list"))[0].style.backgroundImage = "url(" + irukaImgBase + irukaImg[1][n] + ")";
+};
- }
+var standIruka = function () {
- if ($("neighbor-question")) {
+ var aCSS = "display:block;float:left;width:24px;height:24px;text-align:center;vertical-align:bottom;";
+ var vCSS = "-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);margin-left:4px;";
+ var hCSS = "margin-top:8px;";
+ var myirukacell = Ten.Selector.getElementsBySelector("td.myirukacell");
- var hasIruka = Ten.Selector.getElementsBySelector("li.has-iruka", $("neighbor-question"));
- var n = 0;
+ if (myirukacell && myirukacell[0]) {
- for (var i = 0; i < hasIruka.length; i++) {
+ var myIruka = myirukacell[0].getElementsByTagName("img");
+
+ for (var i = 0; i < myIruka.length; i++) {
- n = lastDigit(hasIruka[i].getElementsByTagName("a")[0].href);
- hasIruka[i].style.backgroundImage = "url(" + irukaImgBase + irukaImg[0][n] + ")";
+ myIruka[i].parentNode.style.cssText = aCSS;
+ myIruka[i].style.cssText = (i % 10 == 0) ? vCSS : hCSS;
}
@@ -94,6 +99,15 @@
};
+var otherCI = function () {
+
+ var imgs = document.getElementsByTagName("img");
+
+ for (var i = 0; i < imgs.length; i++) if (imgs[i].src.match(/\/iruka\.gif/))
+ imgs[i].src = irukaImgBase + irukaImg[0][Math.floor(Math.random() * irukaImg[0].length)];
+
+};
+
var isJinriki = function () {
var qType = Ten.Selector.getElementsBySelector("img.by", $("main-inner"));
@@ -109,18 +123,10 @@
};
// 質問
-if (path.match(/^\/[0-9]+$/) && isJinriki()) {
-
- ansCI();
-
+if (path.match(/^\/[0-9]+$/)) ansCI();
// 質問リスト, プロフィール
-} else if (path.match(/^\/(list|[^\/]+\/([a-z]+list|$))/)) {
-
- listCI();
-
+ else if (path.match(/^\/(list|[^\/]+\/([a-z]+list|$))/)) listCI();
// まだ見ぬいるかの生息地
-} else {
-
-}
+ else otherCI();
})();
/*
* @title 擬似カラーいるか
* @description http://q.hatena.ne.jp/1286370456 色はスターに準じています。
* @include http://q.hatena.ne.jp
* @license MIT License
*/
(function () {
if (location.hostname != "q.hatena.ne.jp") return;
var irukaImgBase = "http://img.f.hatena.ne.jp/images/fotolife/p/pacochi/20101007/";
var irukaImg = [
["20101007102324.png", "20101007102325.png", "20101007102327.png", "20101007102328.png", "20101007102326.png"],
["20101007102319.png", "20101007102320.png", "20101007102322.png", "20101007102323.png", "20101007102321.png"]
];
// ちょっとノーマルを多めに、紫をレアに
for (var i = 0; i < irukaImg.length; i++)
irukaImg[i] = irukaImg[i].concat(irukaImg[i].slice(0, 4), irukaImg[i].slice(0, 1));
var path = location.pathname;
var ansCI = function () {
if (isJinriki()) jinrikiCI();
if ($("neighbor-question")) neighborCI();
};
var jinrikiCI = function () {
var imgBy = Ten.Selector.getElementsBySelector("img.by", $("main"));
var irukaBy = null;
for (var i = 0; i < imgBy.length; i++) if (imgBy[i].src.match(/\/iruka\.gif/)) {
irukaBy = imgBy[i];
break;
}
if (irukaBy) {
// var n = Ten.Selector.getElementsBySelector("a.answer-number", $("read_answer_list")).length % 10;
var n = lastDigit(path);
irukaBy.src = irukaImgBase + irukaImg[0][n];
Ten.Selector.getElementsBySelector("div.answer-header", $("read_answer_list"))[0].style.backgroundImage = "url(" + irukaImgBase + irukaImg[1][n] + ")";
}
};
var neighborCI = function () {
var hasIruka = Ten.Selector.getElementsBySelector("li.has-iruka", $("neighbor-question"));
for (var i = 0; i < hasIruka.length; i++)
hasIruka[i].style.backgroundImage = "url(" + irukaImgBase + irukaImg[0][lastDigit(hasIruka[i].getElementsByTagName("a")[0].href)] + ")";
};
var listCI = function () {
var imgs = document.getElementsByTagName("img");
var url;
for (var i = 0; i < imgs.length; i++) if (imgs[i].src.match(/\/iruka\.gif/)) {
url = imgs[i].parentNode.href;
if (url) imgs[i].src = irukaImgBase + irukaImg[0][lastDigit(url.split("#")[0])];
}
// http://q.hatena.ne.jp/1286370456/273234/#i273238
if ($("usertable")) standIruka();
};
var standIruka = function () {
var aCSS = "display:block;float:left;width:24px;height:24px;text-align:center;vertical-align:bottom;";
var vCSS = "-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);margin-left:4px;";
var hCSS = "margin-top:8px;";
var myirukacell = Ten.Selector.getElementsBySelector("td.myirukacell");
if (myirukacell && myirukacell[0]) {
var myIruka = myirukacell[0].getElementsByTagName("img");
for (var i = 0; i < myIruka.length; i++) {
myIruka[i].parentNode.style.cssText = aCSS;
myIruka[i].style.cssText = (i % 10 == 0) ? vCSS : hCSS;
}
}
};
var otherCI = function () {
var imgs = document.getElementsByTagName("img");
for (var i = 0; i < imgs.length; i++) if (imgs[i].src.match(/\/iruka\.gif/))
imgs[i].src = irukaImgBase + irukaImg[0][Math.floor(Math.random() * irukaImg[0].length)];
};
var isJinriki = function () {
var qType = Ten.Selector.getElementsBySelector("img.by", $("main-inner"));
if (qType && qType[0] && qType[0].src.match(/jinriki/)) return true;
return false;
};
var lastDigit = function (str) {
return(parseInt(str.charAt(str.length - 1), 10));
};
// 質問
if (path.match(/^\/[0-9]+$/)) ansCI();
// 質問リスト, プロフィール
else if (path.match(/^\/(list|[^\/]+\/([a-z]+list|$))/)) listCI();
// まだ見ぬいるかの生息地
else otherCI();
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。