diff options
author | anekos | 2011-09-23 19:46:26 +0900 |
---|---|---|
committer | anekos | 2011-09-23 19:54:46 +0900 |
commit | 4f38d5a8606de71a0739bfba87a2ccf31cb806e6 (patch) | |
tree | 8b9613fbc195b9d7a7a57ce774432c474b8ae7c7 /twittperator.js | |
parent | 508209b675140cdf8f75f7cf3f75f95e7267d2bc (diff) | |
download | vimperator-plugins-4f38d5a8606de71a0739bfba87a2ccf31cb806e6.tar.bz2 |
:tw!lookupuser コマンド追加
Diffstat (limited to 'twittperator.js')
-rw-r--r-- | twittperator.js | 66 |
1 files changed, 65 insertions, 1 deletions
diff --git a/twittperator.js b/twittperator.js index c21d719..a4199c3 100644 --- a/twittperator.js +++ b/twittperator.js @@ -28,7 +28,7 @@ let PLUGIN_INFO = <name>Twittperator</name> <description>Twitter Client using OAuth and Streaming API</description> <description lang="ja">OAuth/StreamingAPI対応Twitterクライアント</description> - <version>1.15.0</version> + <version>1.16.0</version> <minVersion>2.3</minVersion> <author email="teramako@gmail.com" homepage="http://d.hatena.ne.jp/teramako/">teramako</author> <author email="anekos@snca.net" homepage="http://d.hatena.ne.jp/nokturnalmortum/">anekos</author> @@ -1493,6 +1493,9 @@ let PLUGIN_INFO = } ); }, // }}} + lookupUser: function({screenNames, ids}, callback) { // {{{ + tw.jsonGet("users/lookup", { user_id: String(ids || []), screen_name: String(screenNames || []) }, callback); + }, // }}} say: function(status, inReplyToStatusId) { // {{{ let sendData = {status: status, source: "Twittperator"}; if (inReplyToStatusId) @@ -1649,6 +1652,58 @@ let PLUGIN_INFO = io.getRuntimeDirectories("plugin/twittperator").forEach(loadPluginFromDir(true)); io.getRuntimeDirectories("twittperator").forEach(loadPluginFromDir(false)); }, // }}} + lookupUser: function(users) { // {{{ + function showUsersInfo(json) { // {{{ + let xml = modules.template.map(json, function(user) { + return <> + <tr> + <td class="twittperator lookup-user photo"> + <img src={user.profile_image_url} /> + </td> + <td class="twittperator lookup-user screen-name"> + <a href={"https://twitter.com/#!/" + user.screen_name}> + {user.name} + </a> + </td> + <td class="twittperator lookup-user attributes"> + {user.location} - + id {user.id_str} - + {user.following ? '' : 'not'} following - + {user.friends_count}/{user.followers_count} ee/er - + {user.statuses_count} tweets - + {user.favourites_count} favs - + {user.listed_count} listed - + from {new Date(user.created_at).toLocaleString()} + </td> + </tr> + <tr> + <td class="twittperator lookup-user description" colspan="3"> + {user.description} + </td> + </tr> + </>; + }); + liberator.echo( + <> + <style type="text/css"><![CDATA[ + .twittperator.lookup-user.photo { vertical-align: top; width: 28px; } + .twittperator.lookup-user.photo img { border: 0px; width: 24px; height: 24px; vertical-align: baseline; margin: 1px; } + .twittperator.lookup-user.attributes { white-space: normal !important; } + .twittperator.lookup-user.description { white-space: normal !important; } + .twittperator.lookup-user.description a { text-decoration: none; } + ]]></style> + <table>{xml}</table> + </> + ); + } // }}} + + let ids = [], screenNames = []; + for (let [, v] in Iterator(users)) + (/^\d+$/.test(v) ? ids : screenNames).push(v); + Twitter.lookupUser({ids: ids, screenNames: screenNames}, function(json) { + showUsersInfo(json); + }); + }, // }}} onFriends: function(msg) { // {{{ __context__.Friends = friends = msg.friends; }, // }}} @@ -2106,6 +2161,15 @@ let PLUGIN_INFO = completer: Completers.rawid(function(st) st.id) }), SubCommand({ + command: ["lookupuser"], + description: "Lookup users", + action: function(arg) { + Twittperator.lookupUser(arg.split(/\s+/)); + }, + timelineCompleter: true, + completer: Completers.screenName() + }), + SubCommand({ command: ["track"], description: "Track the specified words.", action: function(arg) { |