From 083ec64b63ae64eefd663980254e25336260820d Mon Sep 17 00:00:00 2001 From: anekos Date: Fri, 30 Dec 2011 18:35:17 +0900 Subject: Activity Summary に対応 :tw! activity --- twittperator.js | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) (limited to 'twittperator.js') diff --git a/twittperator.js b/twittperator.js index 2d5c2d5..8e21174 100644 --- a/twittperator.js +++ b/twittperator.js @@ -26,7 +26,7 @@ // INFO {{{ let INFO = <> - teramako @@ -174,7 +174,7 @@ let INFO = Write the plugin.

- @@ -1233,7 +1233,7 @@ let INFO = var btquery = query ? "?" + this.buildQuery(query) : ""; var message = { method: "GET", - action: setting.apiURLBase + api + btquery, + action: setting.getAPIURL(api + btquery), parameters: { oauth_signature_method: "HMAC-SHA1", oauth_consumer_key: this.accessor.get("consumerKey", ""), // Queryの構築 @@ -1261,7 +1261,7 @@ let INFO = post: function(api, content, callback) { var message = { method: "POST", - action: setting.apiURLBase + api, + action: setting.getAPIURL(api), parameters: { oauth_signature_method: "HMAC-SHA1", oauth_consumer_key: this.accessor.get("consumerKey", ""), @@ -1295,7 +1295,7 @@ let INFO = var btquery = query ? "?" + this.buildQuery(query) : ""; var message = { method: "DELETE", - action: setting.apiURLBase + api + btquery, + action: setting.getAPIURL(api + btquery), parameters: { oauth_signature_method: "HMAC-SHA1", oauth_consumer_key: this.accessor.get("consumerKey", ""), // Queryの構築 @@ -1770,6 +1770,31 @@ let INFO = }, // }}} }; // }}} let Twittperator = { // {{{ + activitySummary: function(id) { // {{{ + tw.jsonGet( + 'https://api.twitter.com/i/statuses/' + id + '/activity/summary', + {}, + function(json) { + function idToIcon (id) { + return {icons[id] ? : <>😸}; + } + + let icons = {}; + for (let [, t] in Iterator(history)) { + if (t.user && t.user.id_str && t.user.profile_image_url) + icons[t.user.id_str] = t.user.profile_image_url; + } + liberator.echo(<> +
+
Retweeter {json.retweeters_count}
+
{template.map(json.retweeters, idToIcon)}
+
Favoriters {json.favoriters_count}
+
{template.map(json.favoriters, idToIcon)}
+
+ ); + } + ); + }, // }}} confirm: function(msg, onYes, onNo, onCancel) { // {{{ if (!onNo) onNo = function () Twittperator.echo('canceled.'); @@ -2318,6 +2343,15 @@ let INFO = timelineCompleter: true, completer: Completers.rawid(seleceMine) }), + SubCommand({ + command: ["activity"], + description: "Activity Summary", + action: function(arg) { + Twittperator.activitySummary(arg); + }, + timelineCompleter: true, + completer: Completers.rawid(function(st) st.id) + }), SubCommand({ command: ["info"], description: "Display status information", @@ -2594,6 +2628,7 @@ let INFO = trackWords: gv.twittperator_track_words, count: (gv.twittperator_count || 20), lang: (gv.twittperator_lang || ''), + getAPIURL: function (path) (/^https?\:\/\//.test(path) ? path : this.apiURLBase + path) }); let statusRefreshTimer; -- cgit v1.2.3