Skip to content

Instantly share code, notes, and snippets.

@themeofn
Created February 7, 2011 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save themeofn/814510 to your computer and use it in GitHub Desktop.
Save themeofn/814510 to your computer and use it in GitHub Desktop.
Twilog checker(worse edition)
// ==UserScript==
// @name Twilog checker
// @namespace http://efcl.info/
// @include http://twitter.com/*
// @include https://twitter.com/*
// ==/UserScript==
// Original Twilog checker by @azu_re:
// http://userscripts.org/scripts/show/57387
// See also(in Japanese):
// http://d.hatena.ne.jp/n2s/20110207/twilogchecker
(function() {
var isAccountCache = {};
var icon_twilog = {
"true": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEUyzP9Az/9N0/9b1v9o2v923f+E4P+R5P+f5/+s6/+67v/J8f/W9f/k+P/x/P////88uxCgAAAAdklEQVQIW2PIYAABtgaG/WAGxwGG/b96WD/zFTsw7N++n/0L/+4PQKn97F/lZ39gqD9ef+7f/ewPDBy/JP/2/QAqZlzMAAEs3+GM2J+C86+CGO/Ol/95rwBkfAeaUu8AEfkCZDA9BapJ7HeA6Nj/TwDCqJ7EAACswTQHiyoUtgAAAABJRU5ErkJggg==",
"false": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAkFBMVEUyzP9Az/9N0/9Zps9b1v9inMNlmsBo2v9wm7923f99qsqE4P+R5P+WqcObts+f5/+rrsOs6/+0tci67v/BPk3IN0XJ8f/MM0DWQ03WVV/WtcDW9f/XKDLZJi/guMDjKC/kTVTk+P/mR03qw8jx/P/0vsD0wcP1LTD7GBn+GRn/AAD/U1P/w8P/ysr/z8////+WJ8WSAAAApUlEQVQYV02P6xKCIBBGF1OI3CKzqLSbRXaz9v3frgVpjBl+fGd2zweQGxhObkZg6Q+Yw5IBlaYGTSk4nBwlA4s8haSAqtsbwkoAWnzOFQekGvk6cpfnLAgNlaKgxrSvBbAMQJSpL5C7LFYpQp/XEgagm+409ns6Atfeu96c9KDbZmTjYzyYP9qaeEL1ILlupg0VQuTCBCBX0c+/coLz/teHtmDnF8F4EGAay9VeAAAAAElFTkSuQmCC"
};
var newUI = !!document.querySelector("#doc");
if (!newUI) {
try {
var userName = document.getElementsByName("page-user-screen_name")[0].content;
isAccount(userName);
} catch(e) {
}
} else { // 新UI
var gUN = function(p) {return p.querySelector(".screen-name").className.match(/screen-name-(\w+)/)[1]};
var checkManipulated = [
// right pane(tweet)
{ query: "div.details-pane-tweet",
getUserName: function(p) {return p.getAttribute("data-screen-name");},
target: "span.tweet-user-block-full-name"},
// right pane(user profile)
{ query: "div.profile-text", getUserName: gUN, target: "div.full-name"},
// user page
{ query: "div.profile-details", getUserName: gUN, target: "div.full-name"}
];
setInterval(function() {
var i, cM, pT;
for (i=0; cM=checkManipulated[i]; i++) {
if ((pT = document.querySelector(cM.query))
&& !pT.getAttribute("data-twilog-linked")) {
pT.setAttribute("data-twilog-linked", "true");
var userName = cM.getUserName(pT);
isAccount(userName, pT.querySelector(cM.target));
}
}
}, 1000);
}
function makeLink(isAccount, userName, setPoint2) {
var ins;
var setPoint = document.getElementById("profile-image");
var aTag = document.createElement("a");
aTag.href = "http://twilog.org/" + userName;
var imgTag = document.createElement("img");
imgTag.style.cssText = "width: 16px; height: 16px";
imgTag.src = icon_twilog[isAccount == 1];
aTag.appendChild(imgTag);
if (setPoint2) {
ins = setPoint2;
} else if (newUI) {
ins = document.querySelector(".full-name");
} else if (setPoint) {
ins = setPoint.parentNode.parentNode;
} else {
ins = document.getElementsByClassName("thumb clearfix")[0];
}
if (ins) {
ins.appendChild(aTag);
}
}
function isAccount(userName, setPoint2) {
if (userName) {
if (isAccountCache[userName] !== undefined) {
makeLink(isAccountCache[userName], userName, setPoint2);
return;
}
GM_xmlhttpRequest({
method : 'get',
url : 'http://twilog.org/user-exist.cgi?id=' + userName,
onload : function(res) {
var result = res.responseText;
isAccountCache[userName] = result;
makeLink(result, userName, setPoint2);
},
onerror: function(res) {
GM_log(res.responseText)
}
})
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment