Created
October 2, 2010 12:55
-
-
Save superbrothers/607622 to your computer and use it in GitHub Desktop.
This file contains hidden or 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 Twitter with Favotter | |
// @namespace http://gist.github.com/607622 | |
// @include http://twitter.com/*/status/* | |
// ==/UserScript== | |
(function () { | |
// Favotter URL | |
var favotter = "http://favotter.net/"; | |
// CSS | |
GM_addStyle(<><![CDATA[ | |
div.compornent {padding-bottom:5px;} | |
div.compornent h3 {margin:0px 0px 5px 0px !important;color:#999999;font-size:11px;border-bottom:1px solid #E6E6E6;} | |
div.compornent img.fav_icon{width:24px;height:24px;padding-right:3px;} | |
div.compornent .inner_favorites{display:none;} | |
]]></>); | |
var appendUserFavorite = function (evt) { | |
var node = evt.target; | |
var status_id = node.getElementsByClassName('entry-date')[0].href.match(/^http:\/\/twitter.com\/.+?\/status\/(\d+)$/)[1]; | |
GM_xmlhttpRequest({ | |
method: 'GET', | |
url: favotter + "status.php?id=" + status_id, | |
onload: function (response) { | |
if (response.status !== 200) { | |
return; | |
} | |
var match_result = response.responseText.match(/<span class="favotters">.+?(<a.+)<\/span>/); | |
if (match_result === null) { | |
return; | |
} | |
var fav_users = match_result[1].replace(/\/user\/(\w+)/g, favotter + "user/$1").match(/<a .+?<\/a>/g); | |
var fav_users_len = fav_users.length; | |
var compornent = document.createElement("div"); | |
compornent.setAttribute("class", "compornent"); | |
// header | |
compornent.innerHTML += '<h3><a href="' + favotter + 'status.php?id=' + status_id + '">' + | |
fav_users_len + '</a> favorite' + (fav_users_len !== 1 ? 's' : '') + | |
' from <a href="' + favotter + '">Favotter</a></h3>'; | |
// ふぁぼ数が16以上ならまとめる | |
if (fav_users_len > 15) { | |
var inner_favorites = document.createElement("span"); | |
inner_favorites.setAttribute("class", "inner_favorites"); | |
compornent.innerHTML += fav_users.slice(0, 15).join(''); | |
inner_favorites.innerHTML += fav_users.slice(15).join(''); | |
var view_all = document.createElement("span"); | |
view_all.style.cursor = "pointer"; | |
view_all.innerHTML = "view all"; | |
view_all.addEventListener("click", function() { | |
inner_favorites.style.display = "inline"; | |
this.style.display= "none"; | |
}, false); | |
compornent.appendChild(inner_favorites); | |
compornent.appendChild(view_all); | |
} else { | |
compornent.innerHTML += fav_users.join(''); | |
} | |
node.getElementById("permalink").insertBefore(compornent, node.getElementsByClassName("user-info")[0]); | |
} | |
}); | |
}; | |
window.addEventListener("load", appendUserFavorite, false); | |
// Autopagerize対応 -> できなくなりました... | |
//document.getElementById('content').addEventListener('AutoPagerize_DOMNodeInserted', appendUserFavorite, true); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment