(function(){
var shortcut = unsafeWindow.shortcut;
if(!shortcut) {
return;
}
shortcut.remove("p");
shortcut.remove("n");
shortcut.remove("f");
shortcut.remove("l");
function mkpmlnk(para){
$X('.//a[contains(text(), "Re")]', para).forEach(function(a){
var match = a.href.match(/atuser=(\w+)&reply_id=(\d+)&?/);
var id = match[1];
var post = match[2];
var atw = document.createElement("a");
var textNode = document.createTextNode(' Permalink');
pmlnk = "http://twitter.com/" + id + "/status/" + post;
atw.appendChild(textNode);
atw.href = 'data:text/html,' +
<head>
<meta http-equiv="Refresh" content={"0;url=" + pmlnk} />
</head>.toXMLString();
atw.className = "tw";
atw.rel = "bookmark";
a.parentNode.insertBefore(atw, a.nextSibling);
});
}
function f(doc){
$X('//div[@class="tlGray" or @class="tlWhite"]', doc).forEach(function(para){
para.className += (para.className.match("tlGray")) ? " gm_ldrize_even hentry" : " hentry";
mkpmlnk(para);
});
}
f(document);
function addFilter() {
window.AutoPagerize.addFilter(function(docs){
for (var i = 0,l = docs.length;i < l;i++) f(docs[i]);
});
}
if (window.AutoPagerize && window.AutoPagerize.addFilter)
addFilter();
else
window.addEventListener('GM_AutoPagerizeLoaded', addFilter, false);
})()
function boot(ev){
if(ev) window.removeEventListener('GM_MinibufferLoaded', boot, false);
var win = unsafeWindow;
var doc = document;
var Minibuffer = window.Minibuffer;
var $X = Minibuffer.$X;
var D = Minibuffer.D;
var count = 0;
Minibuffer.addCommand({
name : 'Twitter::ReTweetX',
command : function(stdin){
if(stdin.length){
var id = "retweet" + count++;
Minibuffer.status(id, 'ReTweet...');
var data = (stdin[0].href)? stdin.map(function(node){ return node.href }) : stdin;
with(D()){
parallel(data.map(function(url){
postid = url.match(/status\/(\d+)/)[1];
rturl = 'http://twitter.com/statuses/retweet/' +postid + '.json';
return xhttp.post(rturl);
})).next(function(){
Minibuffer.status(id, 'Done', 100);
});
}
}
return stdin;
}
});
Minibuffer.addShortcutkey({
key : 'r',
description : 'ReTweet for Official',
command : function(){
try {
var stdin = Minibuffer.execute((/\/\/twitter\.com\/.*?\/(status|statuses)\/\d+/.test(location.href))? 'location' : 'pinned-or-current-link');
}catch(e) {
var stdin = [];
}
Minibuffer.execute('Twitter::ReTweetX|clear-pin',stdin);
}
})
}
if(window.Minibuffer){
boot();
} else {
window.addEventListener('GM_MinibufferLoaded', boot, false);
}