From 57659546f8cd6cd11cf42179965fc268ce491909 Mon Sep 17 00:00:00 2001 From: mattn Date: Thu, 8 May 2008 00:19:26 +0000 Subject: added wassr plugin. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@11264 d0d07461-0603-4401-acd4-de1884942a52 --- wassr.js | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 wassr.js (limited to 'wassr.js') diff --git a/wassr.js b/wassr.js new file mode 100644 index 0000000..3f523e1 --- /dev/null +++ b/wassr.js @@ -0,0 +1,78 @@ +// Vimperator plugin: "Update Wassr" +// Last Change: 08-May-2008. Jan 2008 +// License: Creative Commons +// Maintainer: mattn - http://mattn.kaoriya.net/ +// Based On: twitter.js by Trapezoid +// +// The script allows you to update Wassr status from Vimperator 0.6.*. + +(function(){ + var passwordManager = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager); + function sayWassr(username, password, stat){ + var xhr = new XMLHttpRequest(); + xhr.open("POST", "http://api.wassr.jp/statuses/update.json", false, username, password); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send("status=" + encodeURIComponent(stat)); + } + function sprintf(format){ + var i = 1, re = /%s/, result = "" + format; + while (re.test(result) && i < arguments.length) result = result.replace(re, arguments[i++]); + return result; + } + function showFollowersStatus(username, password){ + var xhr = new XMLHttpRequest(); + xhr.open("GET", "http://api.wassr.jp/statuses/friends_timeline.json", false, username, password); + // for debug + //xhr.open("GET", "http://api.wassr.jp/statuses/user_timeline/otsune.json", false, username, password); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send(null); + var statuses = window.eval(xhr.responseText); + + var html = .toSource() + .replace(/(?:\r?\n|\r)[ \t]*/g, " ") + + statuses.map(function(status) + <> + {status.user.screen_name} + {status.user_login_id}‬ + .toSource() + .replace(/(?:\r?\n|\r)[ \t]*/g, " ") + + sprintf(': %s‬', status.text)) + .join("
"); + + //liberator.log(html); + liberator.echo(html, true); + } + liberator.commands.addUserCommand(["wassr"], "Change wassr status", + function(arg, special){ + var password; + var username; + try { + var logins = passwordManager.findLogins({}, "http://wassr.jp", "http://wassr.jp", null); + if (logins.length) + [username, password] = [logins[0].username, logins[0].password]; + else + throw "Wassr: account not found"; + } + catch (ex){ + liberator.echoerr(ex); + } + + if (special){ + arg = arg.replace(/%URL%/g, liberator.buffer.URL) + .replace(/%TITLE%/g, liberator.buffer.title); + } + + if (!arg || arg.length == 0) + showFollowersStatus(username, password); + else + sayWassr(username, password, arg); + }, + { }); +})(); +// vim:sw=4 ts=4 et: -- cgit v1.2.3