From b68cf69f122a4fb019700006f3a9bf502eeba970 Mon Sep 17 00:00:00 2001
From: suVene
Date: Sun, 18 Jan 2009 15:10:40 +0000
Subject: * complete の補完順を選択できるように変更(default date desc)
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28624 d0d07461-0603-4401-acd4-de1884942a52
---
multi_requester.js | 51 ++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 42 insertions(+), 9 deletions(-)
(limited to 'multi_requester.js')
diff --git a/multi_requester.js b/multi_requester.js
index 89588c9..136b09e 100644
--- a/multi_requester.js
+++ b/multi_requester.js
@@ -11,7 +11,7 @@ var PLUGIN_INFO =
request, and the result is displayed to the buffer.
リクエストの結果をバッファに出力する。
suVene
- 0.4.11
+ 0.4.12
MIT
2.0pre
2.0pre
@@ -58,13 +58,13 @@ liberator.globalVariables.multi_requester_siteinfo = [
bang: true, // optional:
args: "any" // optional:
name: "ex", // required: subcommand name
- description: "example", // required: commandline short help
+ description: "example", // required: commandline short help
url: "http://example.com/?%s", // required: %s <-- replace string
xpath: "//*", // optional: default all
- srcEncode: "SHIFT_JIS", // optional: default UTF-8
- urlEncode: "SHIFT_JIS", // optional: default srcEncode
+ srcEncode: "SHIFT_JIS", // optional: default UTF-8
+ urlEncode: "SHIFT_JIS", // optional: default srcEncode
ignoreTags: "img", // optional: default script, syntax "tag1,tag2,……"
- extractLink: "//xpath" // optional: extract permalink
+ extractLink: "//xpath" // optional: extract permalink
},
];
EOM
@@ -89,6 +89,16 @@ EOM
>||
let g:multi_requester_use_wedata = "false" // true by default
||<
+wedata を利用しない場合は false を設定してください。
+>||
+let g:multi_requester_default_sites = 'alc';
+||<
+subcommand を省略した場合に利用されるサイトを設定します。
+>||
+let g:multi_requester_order = 'count'; // date by default
+||<
+補完の順番を設定します。(大きい順に並びます)
+"count" または "date" を設定してください。
]]>
;
@@ -121,6 +131,7 @@ var libly = liberator.plugins.libly;
var $U = libly.$U;
var logger = $U.getLogger("multi_requester");
var mergedSiteinfo = {};
+var store = storage.newMap('plugins-multi_requester', true);
//}}}
// Vimperator plugin command register {{{
@@ -135,10 +146,15 @@ var CommandRegister = {
{
completer: cmdClass.cmdCompleter || function(context, arg) {
context.title = [ "Name", "Descprition" ];
+ var sorted = siteinfo.sort(function(a, b)
+ typeof liberator.globalVariables.multi_requester_order == "undefined" ||
+ liberator.globalVariables.multi_requester_order == "date" ? store.get(b.name).lastPostTime - store.get(a.name).lastPostTime :
+ liberator.globalVariables.multi_requester_order == "count" ? store.get(b.name).count - store.get(a.name).count :
+ store.get(b.name).lastPostTime - store.get(a.name).lastPostTime);
var filters = context.filter.split(",");
var prefilters = filters.slice(0, filters.length - 1);
var prefilter = !prefilters.length ? "" : prefilters.join(",") + ",";
- var subfilters = siteinfo.filter(function(s) prefilters.every(function(p) s.name != p));
+ var subfilters = sorted.filter(function(s) prefilters.every(function(p) s.name != p));
var allSuggestions = subfilters.map(function(s) [prefilter + s.name, s.description]);
context.completions = context.filter
? allSuggestions.filter(function(s) s[0].indexOf(context.filter) == 0)
@@ -206,6 +222,10 @@ var DataAccess = {
liberator.globalVariables.multi_requester_siteinfo.forEach(function(site) {
if (!mergedSiteinfo[site.name]) mergedSiteinfo[site.name] = {};
$U.extend(mergedSiteinfo[site.name], site);
+ if (!store.get(site.name)) {
+ store.set(site.name, { count: 0, lastPostTime: (new Date()).getTime() });
+ store.save();
+ }
if (site.map) {
CommandRegister.addUserMaps(MultiRequester.name[0],
[[ site.map, site.name, site.bang, site.args ]]);
@@ -216,6 +236,10 @@ var DataAccess = {
SITEINFO.forEach(function(site) {
if (!mergedSiteinfo[site.name]) mergedSiteinfo[site.name] = {};
$U.extend(mergedSiteinfo[site.name], site);
+ if (!store.get(site.name)) {
+ store.set(site.name, { count: 0, lastPostTime: (new Date()).getTime() });
+ store.save();
+ }
if (site.map) {
CommandRegister.addUserMaps(MultiRequester.name[0],
[[ site.map, site.name, site.bang, site.args ]]);
@@ -231,6 +255,10 @@ var DataAccess = {
if (mergedSiteinfo[site.name]) return;
mergedSiteinfo[site.name] = {};
$U.extend(mergedSiteinfo[site.name], site);
+ if (!store.get(site.name)) {
+ store.set(site.name, { count: 0, lastPostTime: (new Date()).getTime() });
+ store.save();
+ }
},
function(isSuccess, data) {
if (!isSuccess) return;
@@ -273,7 +301,12 @@ var MultiRequester = {
let info = siteinfo[i];
let name = info.name;
- logger.log(name);
+ let history = store.get(name);
+ history.count++;
+ history.lastPostTime = (new Date()).getTime();
+ store.set(name, history);
+ store.save();
+
let url = info.url;
// see: http://fifnel.com/2008/11/14/1980/
let srcEncode = info.srcEncode || "UTF-8";
@@ -398,7 +431,7 @@ var MultiRequester = {
extractLink = res.req.options.siteinfo.extractLink;
if (extractLink && !res.req.options.extractLink) {
- this.extractLink(res, extractLink);
+ this.extractLink(res, extractLink).getCommand();
return;
}
ignoreTags = [ "script" ].concat(libly.$U.A(res.req.options.siteinfo.ignoreTags));
@@ -462,5 +495,5 @@ if (liberator.globalVariables.multi_requester_mappings) {
return MultiRequester;
})();
-// vim: set fdm=marker sw=4 ts=4 sts=0 et:
+// vim: set fdm=marker sw=2 ts=2 sts=0 et:
--
cgit v1.2.3