aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhogelog2009-05-25 04:45:22 +0000
committerhogelog2009-05-25 04:45:22 +0000
commite3bfafe7aadbe26fec58536c5b286e2eb687072c (patch)
tree43d5190703fe3bd546d846fef52b92219b5b7bff
parent44e4d125f9b0b24dfeebbe5e995395d8676e28d3 (diff)
downloadvimperator-plugins-e3bfafe7aadbe26fec58536c5b286e2eb687072c.tar.bz2
* solve depends Tombloo
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@33552 d0d07461-0603-4401-acd4-de1884942a52
-rw-r--r--loginManager.js46
1 files changed, 19 insertions, 27 deletions
diff --git a/loginManager.js b/loginManager.js
index c027925..c14897f 100644
--- a/loginManager.js
+++ b/loginManager.js
@@ -4,18 +4,14 @@ var PLUGIN_INFO =
<name>{NAME}</name>
<description>login manager</description>
<author mail="konbu.komuro@gmail.com" homepage="http://d.hatena.ne.jp/hogelog/">hogelog</author>
- <version>0.0.2</version>
+ <version>0.0.3</version>
<minVersion>2.0pre</minVersion>
- <maxVersion>2.0pre</maxVersion>
+ <maxVersion>2.1</maxVersion>
<updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/loginManger.js</updateURL>
<license>public domain</license>
<detail><![CDATA[
-This plugin use Tombloo library,
-so require install Tombloo Addon.
-http://wiki.github.com/to/tombloo
=== TODO ===
-- solve depends Tombloo
]]></detail>
</VimperatorPlugin>;
@@ -24,7 +20,6 @@ http://wiki.github.com/to/tombloo
(function(){
var loginManager = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
-var Tombloo = Cc["@brasil.to/tombloo-service;1"].getService().wrappedJSObject;
var services = {
pixiv: {
@@ -140,33 +135,24 @@ function Service(service) //{{{
if (service.extraField && !self.setExtraField(content)) return false;
let loginURL = host+service.LOGIN;
+ let error = function(e) liberator.echo('login failed "'+host+'" as '+username);
+ let success = function(e) liberator.echo('login "'+host+'" as '+username);
+ let login = function() request(loginURL, content, success, error);
if (service.logoutBeforeLogin) {
let logoutURL = host+service.LOGOUT;
- if (request(logoutURL, content).addCallback(function()
- request(loginURL, content)
- .addCallback(function()
- liberator.echo('login "'+host+'" as '+username)))) return true;
+ return request(logoutURL, content, login, error);
}
- if (request(loginURL, content).addCallback(function()
- liberator.echo('login "'+host+'" as '+username))) return true;
-
- liberator.echoerr('login failed "'+host+'" as '+username);
- return false;
+ login();
};
self.logout = function(){
let content = {};
let host = service.HOST[0];
if (service.extraField && !self.setExtraField(content)) return false;
let logoutURL = host+service.LOGOUT;
- if (request(loginURL, content).addCallback(function()
- liberator.echo('logout "'+host+'"'))) return true;
-
- liberator.echoerr('logout failed "'+host+'"');
- return false;
- return request(logoutURL, content)
- .addCallback(function()
- liberator.echo('logout "'+host+'"'));
+ let error = function() liberator.echo('logout failed "'+host+'" as '+username);
+ let success = function() liberator.echo('logout "'+host+'" as '+username);
+ request(logoutURL, content, success, error);
};
self.getLogins = function() {
return [loginManager.findLogins({}, host, host, null) for each(host in service.HOST)]
@@ -212,9 +198,16 @@ function Service(service) //{{{
}
} //}}}
-function request(url, content)
+function encode(content)
+ [k+"="+encodeURIComponent(content[k]) for(k in content)].join("&");
+function request(url, content, onload, onerror)
{
- return Tombloo.request(url, {sendContent: content});
+ let req = new XMLHttpRequest;
+ req.open("POST", url, false);
+ req.onload = onload;
+ req.onerror = onerror;
+ req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+ req.send(encode(content));
}
function tokenGetter(pattern) //{{{
{
@@ -262,6 +255,5 @@ commands.addUserCommand(["logout"], "Logout",
});
// }}}
-
})();
// vim: fdm=marker sw=4 ts=4 et: