// PLUGIN_INFO//{{{
var PLUGIN_INFO =
retweet
ReTweet This Page.
開いているTweetをReTweetします。
from_kyushu
0.3
GPL
1.2
2.1
http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/retweet.js
_libly.js
;
//}}}
//
(
function()
{
var password;
var username;
var passwordManager = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
var $U = liberator.plugins.libly.$U;
function getBody()
{
var body = $U.getFirstNodeFromXPath("//span[@class='entry-content']").innerHTML;
//return body.replace(/<[^>]*>/g, "");
var tags = body.match(/<[^>]*>/g);
for(var tag in tags)
{
body = body.replace(tags[tag],"");
}
return body;
}
function getUserName()
{
return $U.getFirstNodeFromXPath('//a[contains(concat(" ",normalize-space(@class)," "),"screen-name")]').innerHTML;
}
function getShortenUrl(longUrl)
{
var xhr = new XMLHttpRequest();
var req = "http://bit.ly/api?url=" + encodeURIComponent(longUrl);
xhr.open('GET',req, false);
xhr.send(null);
if(xhr.status != 200)
{
return longUrl;
}
return xhr.responseText;
}
function sendTwitter(url,name,body,comment)
{
var xhr = new XMLHttpRequest();
var statusText = (comment ? comment + " " : "") + "RT @" + name + " [" + url +"]: " + body;
return liberator.echo(statusText);
xhr.open("POST", "https://twitter.com/statuses/update.json", false, username, password);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("status=" + encodeURIComponent(statusText) + "&source=Vimperator");
liberator.echo("[RT] Your post was sent.");
}
commands.addUserCommand(
['retweet[This]','rtt'],
'ReTweet This.',
function(args)
{
try
{
var logins = passwordManager.findLogins({}, "http://twitter.com","https://twitter.com",null);
var body = getBody();
var name = getUserName();
var url = getShortenUrl(buffer.URL);
if(logins.length)
{
username = logins[0].username;
password = logins[0].password;
sendTwitter(url,name,body,args.literalArg);
}
else if(liberator.globalVariables.twitter_username && liberator.globalVariables.twitter_password)
{
username = liberator.globalVariables.twitter_username;
password = liberator.globalVariables.twitter_password;
sendTwitter(url,name,body,args.literalArg);
}
else
{
throw "Accont not found";
}
}
catch(e)
{
liberator.echoerr(e);
}
},
{
literal: 0
},
true
);
}
)();
832bbf96e3e1708cad1126a42d7bfce174bbc (plain)