diff options
author | anekos | 2015-09-29 22:18:28 +0900 |
---|---|---|
committer | anekos | 2015-09-29 22:18:28 +0900 |
commit | a2021f6a85725d7cc505fb635debb2a8797ae2e5 (patch) | |
tree | 51e8b0e1e04b71acba82d637b63e6ca0ab965232 | |
parent | 42f513596cf2aea8d53daa61e67634777388f15b (diff) | |
download | vimperator-plugins-a2021f6a85725d7cc505fb635debb2a8797ae2e5.tar.bz2 |
unlet?
-rw-r--r-- | direct_bookmark.js | 123 | ||||
-rw-r--r-- | twittperator.js | 139 |
2 files changed, 141 insertions, 121 deletions
diff --git a/direct_bookmark.js b/direct_bookmark.js index aba403d..76f0d4a 100644 --- a/direct_bookmark.js +++ b/direct_bookmark.js @@ -647,7 +647,8 @@ var INFO = xml`<plugin name=${NAME} version="0.19.0" };
__context__.services = services;
- let (_tags = {}, _empty = true) {
+ (function () {
+ let _tags = {}, _empty = true;
__context__.tags = {
__iterator__: function () Iterator(_tags, true),
update: function (atags) {
@@ -661,7 +662,7 @@ var INFO = xml`<plugin name=${NAME} version="0.19.0" },
get isEmpty () _empty,
};
- }
+ })();
function getTagsAsync(onComplete){
var d,first;
@@ -819,70 +820,74 @@ var INFO = xml`<plugin name=${NAME} version="0.19.0" };
};
- let completer = let (lastURL, lastUserTags, onComplete, done = true) function(context, arg){
- function matchPosition (e){
- let m = liberator.globalVariables.direct_sbm_tag_match || 'prefix';
- switch (m) {
- case 'infix': return e;
- case 'suffix': return e + "$";
- }
- return "^" + e;
- }
+ let completer =
+ (function () {
+ let lastURL, lastUserTags, onComplete, done = true;
+ return function(context, arg){
+ function matchPosition (e){
+ let m = liberator.globalVariables.direct_sbm_tag_match || 'prefix';
+ switch (m) {
+ case 'infix': return e;
+ case 'suffix': return e + "$";
+ }
+ return "^" + e;
+ }
- function set (context, tags) {
- let filter = context.filter;
- var match_result = filter.match(/((?:\[[^\]]*\])*)\[?(.*)/); //[all, commited, now inputting]
- var expr = XMigemoCore && isUseMigemo ? "(" + XMigemoCore.getRegExp(match_result[2]) + ")"
- : match_result[2];
- var m = new RegExp(matchPosition(expr),'i');
+ function set (context, tags) {
+ let filter = context.filter;
+ var match_result = filter.match(/((?:\[[^\]]*\])*)\[?(.*)/); //[all, commited, now inputting]
+ var expr = XMigemoCore && isUseMigemo ? "(" + XMigemoCore.getRegExp(match_result[2]) + ")"
+ : match_result[2];
+ var m = new RegExp(matchPosition(expr),'i');
- context.advance( match_result[1].length );
+ context.advance( match_result[1].length );
- context.incomplete = false;
- context.completions =
- [ ["[" + tag + "]","Tag"]
- for each (tag in tags)
- if (m.test(tag) && match_result[1].indexOf('[' + tag + ']') < 0) ];
- }
+ context.incomplete = false;
+ context.completions =
+ [ ["[" + tag + "]","Tag"]
+ for each (tag in tags)
+ if (m.test(tag) && match_result[1].indexOf('[' + tag + ']') < 0) ];
+ }
- let url = arg[0] || buffer.URL;
- liberator.log(url);
+ let url = arg[0] || buffer.URL;
+ liberator.log(url);
+
+ context.fork('UserTags', 0, context, function(context){
+ context.title = ['User Tags', 'User Tags'];
+
+ onComplete = function(tags){
+ done = true;
+ lastUserTags = tags;
+ context.incomplete = false;
+ set(context, tags);
+ };
+
+ if (url == lastURL){
+ if (done) {
+ onComplete(lastUserTags);
+ } else {
+ context.incomplete = true;
+ }
+ } else {
+ lastURL = url;
+ context.incomplete = true;
+ done = false;
+ getUserTags(url, function (tags) onComplete(tags));
+ }
+ });
- context.fork('UserTags', 0, context, function(context){
- context.title = ['User Tags', 'User Tags'];
+ context.fork('MyTags', 0, context, function(context, arg){
+ context.title = ['My Tag','Description'];
- onComplete = function(tags){
- done = true;
- lastUserTags = tags;
- context.incomplete = false;
- set(context, tags);
+ if(__context__.tags.isEmpty){
+ context.incomplete = true;
+ getTagsAsync(set.bind(null, context)).call([]);
+ } else {
+ set(context, __context__.tags);
+ }
+ });
};
-
- if (url == lastURL){
- if (done) {
- onComplete(lastUserTags);
- } else {
- context.incomplete = true;
- }
- } else {
- lastURL = url;
- context.incomplete = true;
- done = false;
- getUserTags(url, function (tags) onComplete(tags));
- }
- });
-
- context.fork('MyTags', 0, context, function(context, arg){
- context.title = ['My Tag','Description'];
-
- if(__context__.tags.isEmpty){
- context.incomplete = true;
- getTagsAsync(set.bind(null, context)).call([]);
- } else {
- set(context, __context__.tags);
- }
- });
- };
+ })();
let options = [ [['-s','-service'], liberator.modules.commands.OPTION_STRING] ];
diff --git a/twittperator.js b/twittperator.js index 8438d11..62d5b55 100644 --- a/twittperator.js +++ b/twittperator.js @@ -1841,9 +1841,10 @@ let INFO = xml` tw.jsonGet(api, query, callback); }, // }}} loadPlugins: function() { // {{{ - function isEnabled(file) - let (name = file.leafName.replace(/\..*/, "").replace(/-/g, "_")) - liberator.globalVariables["twittperator_plugin_" + name]; + function isEnabled(file) { + let name = file.leafName.replace(/\..*/, "").replace(/-/g, "_"); + return liberator.globalVariables["twittperator_plugin_" + name]; + } function loadPluginFromDir(checkGV, candidates) { return function(dir) { @@ -2132,9 +2133,10 @@ let INFO = xml` Store.set("consumerSecret", "gVwj45GaW6Sp7gdua6UFyiF910ffIety0sD1dv36Cz8"); // }}} let Predicates = { // {{{ - notMine: function (st) - let (n = setting.screenName) - (n ? (!st.user || st.user.screen_name !== n) : st), + notMine: function (st) { + let n = setting.screenName; + return n ? (!st.user || st.user.screen_name !== n) : st; + }, selectMine: function (st) (!Predicates.notMine(st)) }; // }}} @@ -2146,9 +2148,10 @@ let INFO = xml` text.replace(/\r\n|[\r\n]/g, ' '); function setTimelineCompleter(context) { // {{{ - function statusObjectFilter(item) - let (desc = item.description) - (this.match(desc.user.screen_name) || this.match(desc.text)); + function statusObjectFilter(item) { + let desc = item.description; + return this.match(desc.user.screen_name) || this.match(desc.text); + } context.compare = void 0; context.createRow = function(item, highlightGroup) { @@ -2248,10 +2251,10 @@ let INFO = xml` get expr() { return RegExp( "^" + - this.command.map(function(c) - let (r = util.escapeRegex(c)) - (/^\W$/.test(c) ? r : r + "( |$)") - ).join("|") + this.command.map(function(c) { + let r = util.escapeRegex(c); + return /^\W$/.test(c) ? r : r + "( |$)"; + }).join("|") ); }, match: function(s) s.match(this.expr), @@ -2592,61 +2595,73 @@ let INFO = xml` bang: true, literal: 0, hereDoc: true, - completer: let (getting, lastTime) function(context, args) { - let now = new Date().getTime(); - let doGet = - setting.autoStatusUpdate && - !getting && - (!lastTime || ((lastTime + setting.statusValidDuration * 1000) < now)); - - let completer = args.bang ? subCommandCompleter : commandCompelter; - let matches = args.bang || args.literalArg.match(/(RT\s+|)@|#|^D\s+/); - - if (!matches) - return; - - context.fork( - "TwittperatorCommand", 0, context, - function(context) { - context.incomplete = doGet; - context.hasitems = !doGet; - - if (doGet) { - getting = true; - lastTime = now; - Twitter.getUserTimeline(null, function() { - getting = false; - completer(context, args); - context.incomplete = false; - }); - return; + completer: (function () { + let getting, lastTime; + return function(context, args) { + let now = new Date().getTime(); + let doGet = + setting.autoStatusUpdate && + !getting && + (!lastTime || ((lastTime + setting.statusValidDuration * 1000) < now)); + + let completer = args.bang ? subCommandCompleter : commandCompelter; + let matches = args.bang || args.literalArg.match(/(RT\s+|)@|#|^D\s+/); + + if (!matches) + return; + + context.fork( + "TwittperatorCommand", 0, context, + function(context) { + context.incomplete = doGet; + context.hasitems = !doGet; + + if (doGet) { + getting = true; + lastTime = now; + Twitter.getUserTimeline(null, function() { + getting = false; + completer(context, args); + context.incomplete = false; + }); + return; + } + completer(context, args); } - completer(context, args); - } - ); - } + ); + }; + })() }, true); // }}} } // }}} // Initialization {{{ let setting = - let (gv = liberator.globalVariables) ({ - useChirp: !!gv.twittperator_use_chirp, - allReplies: !!gv.twittperator_all_replies, - autoStatusUpdate: !!parseInt(gv.twittperator_auto_status_update || 0), - 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, - screenName: gv.twittperator_screen_name, - apiURLBase: "http" + (!!gv.twittperator_use_ssl_connection_for_api_ep ? "s" : "") + - "://api.twitter.com/" + (gv.twittperator_twitter_api_version || "1.1") + "/", - trackWords: gv.twittperator_track_words, - count: (gv.twittperator_count || 20), - lang: (gv.twittperator_lang || ''), - getAPIURL: function (path) (/^https?\:\/\//.test(path) ? path : this.apiURLBase + path) - }); + (function () { + let gv = liberator.globalVariables; + return { + useChirp: !!gv.twittperator_use_chirp, + allReplies: !!gv.twittperator_all_replies, + autoStatusUpdate: !!parseInt(gv.twittperator_auto_status_update || 0), + statusValidDuration: parseInt(gv.twitperator_status_valid_duration || 90), + historyLimit: (function () { + let v = gv.twittperator_history_limit; + return v === 0 ? 0 : (v || 1000) + })(), + showTLURLScheme: (function () { + let v = gv.twittperator_show_tl_with_https_url; + return "http" + (v === false ? "" : "s"); + })(), + proxyHost: gv.twittperator_proxy_host, + proxyPort: gv.twittperator_proxy_port, + screenName: gv.twittperator_screen_name, + apiURLBase: "http" + (!!gv.twittperator_use_ssl_connection_for_api_ep ? "s" : "") + + "://api.twitter.com/" + (gv.twittperator_twitter_api_version || "1.1") + "/", + 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; |