From 04ed49d09e83128a51a5ccbaad3172b5d5e49e20 Mon Sep 17 00:00:00 2001
From: anekos
Date: Thu, 12 Aug 2010 04:02:39 +0000
Subject: Proxy 対応
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@38252 d0d07461-0603-4401-acd4-de1884942a52
---
twittperator.js | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
(limited to 'twittperator.js')
diff --git a/twittperator.js b/twittperator.js
index ccd3012..af6e987 100755
--- a/twittperator.js
+++ b/twittperator.js
@@ -28,7 +28,7 @@ let PLUGIN_INFO =
twittperator
Twitter Client using ChirpStream
OAuth対応Twitterクライアント
- 1.0.12
+ 1.1.0
2.3
2.4
teramako
@@ -1203,13 +1203,18 @@ let PLUGIN_INFO =
startTime = new Date();
+ let useProxy = !!setting.proxyHost;
let host = "chirpstream.twitter.com";
let path = "/2b/user.json";
+ let authHeader = tw.getAuthorizationHeader("http://" + host + path);
+
+ if (useProxy)
+ path = "http://" + host + path;
let get = [
- "GET " + path + " HTTP/1.1",
+ "GET " + path + " HTTP/1.0",
"Host: " + host,
- "Authorization: " + tw.getAuthorizationHeader("http://" + host + path),
+ "Authorization: " + authHeader,
"",
""
].join("\n");
@@ -1219,7 +1224,12 @@ let PLUGIN_INFO =
let (svc = stsvc.getService())
svc.QueryInterface(Ci["nsISocketTransportService"]);
- let transport = socketService.createTransport(null, 0, host, 80, null);
+ let transport =
+ socketService.createTransport(
+ null, 0,
+ useProxy ? setting.proxyHost : host,
+ useProxy ? parseInt(setting.proxyPort || '3128', 10) : 80,
+ null);
let os = transport.openOutputStream(0, 0, 0);
let is = transport.openInputStream(0, 0, 0);
let sis = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream);
@@ -1244,12 +1254,12 @@ let PLUGIN_INFO =
let data = sis.read(len);
let lines = data.split(/\r\n|[\r\n]/);
- if (lines.length > 2) {
+ if (lines.length >= 2) {
lines[0] = buf + lines[0];
for (let [, line] in Iterator(lines.slice(0, -1))) {
try {
- liberator.log(line);
- onMsg(Util.fixStatusObject(JSON.parse(line)), line);
+ if (/^\s*\{/(line))
+ onMsg(Util.fixStatusObject(JSON.parse(line)), line);
} catch (e) { liberator.log(e); }
}
buf = lines.slice(-1)[0];
@@ -1613,7 +1623,7 @@ let PLUGIN_INFO =
description: "Show mentions or follower tweets",
action: function(arg) {
if (arg.match(/^.+/)) {
- showFollowersStatus(arg, true);
+ Twittperator.showFollowersStatus(arg, true);
} else {
Twittperator.showTwitterMentions();
}
@@ -1722,7 +1732,7 @@ let PLUGIN_INFO =
let arg = args.literalArg;
if (!arg)
- return showFollowersStatus(null, args.bang);
+ return Twittperator.showFollowersStatus(null, args.bang);
if (args.bang) {
let [subCmd] = findSubCommand(arg) || [];
@@ -1730,7 +1740,7 @@ let PLUGIN_INFO =
subCmd.action(args);
} else {
if (arg.length === 0)
- showFollowersStatus();
+ Twittperator.showFollowersStatus();
else
Twitter.say(arg);
}
@@ -1793,6 +1803,8 @@ let PLUGIN_INFO =
statusValidDuration: parseInt(gv.twitperator_status_valid_duration || 90),
historyLimit: let (v = gv.twittperator_history_limit) (v === 0 ? 0 : (v || 1000)),
showTLURLScheme: let (v = gv.twittperator_show_tl_with_https_url) ("http" + (v === false ? "" : "s")),
+ proxyHost: gv.twittperator_proxy_host,
+ proxyPort: gv.twittperator_proxy_port,
});
let statusRefreshTimer;
--
cgit v1.2.3