Created
February 7, 2011 15:13
-
-
Save themeofn/814510 to your computer and use it in GitHub Desktop.
Twilog checker(worse edition)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==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