From e3bfafe7aadbe26fec58536c5b286e2eb687072c Mon Sep 17 00:00:00 2001 From: hogelog Date: Mon, 25 May 2009 04:45:22 +0000 Subject: * solve depends Tombloo git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@33552 d0d07461-0603-4401-acd4-de1884942a52 --- loginManager.js | 46 +++++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 27 deletions(-) (limited to 'loginManager.js') 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} login manager hogelog - 0.0.2 + 0.0.3 2.0pre - 2.0pre + 2.1 http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/loginManger.js public domain ; @@ -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: -- cgit v1.2.3