From 080186bfeb6e820f8bde3c822a6fd949e77d8d3c Mon Sep 17 00:00:00 2001 From: trapezoid Date: Sun, 30 Mar 2008 14:59:43 +0000 Subject: lang/javascript/vimperator-plugins/trunk/ldrize_cooperation.js: LDRizeに対応するマッピングをdefaultを書き換えて動作するように変更 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@8532 d0d07461-0603-4401-acd4-de1884942a52 --- ldrize_cooperation.js | 67 ++++++++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 30 deletions(-) (limited to 'ldrize_cooperation.js') diff --git a/ldrize_cooperation.js b/ldrize_cooperation.js index 2be24e6..6fd1d56 100644 --- a/ldrize_cooperation.js +++ b/ldrize_cooperation.js @@ -1,24 +1,28 @@ // Vimperator plugin: 'Cooperation LDRize Mappings' -// Version: 0.09 -// Last Change: 21-Mar-2008. Jan 2008 +// Version: 0.10 +// Last Change: 30-Mar-2008. Jan 2008 // License: Creative Commons // Maintainer: Trapezoid - http://unsigned.g.hatena.ne.jp/Trapezoid // // Cooperation LDRize Mappings for vimperator0.6.* (function(){ var scrollCount = 3; - var programInfo = [ + //pattern: wildcard + //include: [regexp, option] or regexp + //handler: [programPath, [args]] or programPath or function(url,title) + var handlerInfo = [ //{ - // pattern: "http://www.nicovideo.jp/*", - // program: "c:\\usr\\SmileDownloader\\SmileDownloader.exe", + // pattern: 'http://www.nicovideo.jp/*', + // handler: ['c:\\usr\\SmileDownloader\\SmileDownloader.exe',['%URL%']], // wait: 5000 //}, //{ - // program: "C:\\usr\\irvine\\irvine.exe", + // handler: ['C:\\usr\\irvine\\irvine.exe',['%URL%']], //}, ]; + var captureMappings = ['j','k','p','o']; - programInfo.forEach(function(x){ + handlerInfo.forEach(function(x){ x.include = typeof x.include != "undefined" ? typeof x.include == "string" ? new RegExp(x.include) : new RegExp(x.include[0],x.include[1]) : typeof x.pattern != "undefined" @@ -108,38 +112,41 @@ window.content.wrappedJSObject.document.dispatchEvent(evt); } function isEnableLDRize(){ return isEnable && LDRize.getSiteinfo() != undefined; } - function getPinnedLinks(){ - var xpath = LDRize.getSiteinfo()['link']; - return LDRize.getPinnedItems().map(function(i){return i.XPath(xpath)}); + function getPinnedItems(){ + var linkXpath = LDRize.getSiteinfo()['link']; + var viewXpath = LDRize.getSiteinfo()['view']; + return LDRize.getPinnedItems().map(function(i){return [i.XPath(linkXpath),i.XPath(viewXpath)]}); } function downloadLinksByProgram(links){ var count = 0; - links.forEach(function(link){ - for(let i=0;i", ""], - "Scroll document down", - function(){isEnableLDRize() ? sendRawKeyEvent(74,106):liberator.buffer.scrollLines(scrollCount);} ,{}); - liberator.mappings.addUserMap([liberator.modes.NORMAL], ["k", "", ""], - "Scroll document up", - function(){isEnableLDRize() ? sendRawKeyEvent(75,107):liberator.buffer.scrollLines(-scrollCount);} ,{}); - liberator.mappings.addUserMap([liberator.modes.NORMAL], ["o"], - "Open a message", - function(){isEnableLDRize() ? sendRawKeyEvent(79,111):liberator.commandline.open(":","open ",liberator.modes.EX);},{}); - liberator.mappings.addUserMap([liberator.modes.NORMAL], ["p"], - "Open (put) a URL based on the current clipboard contents in the current buffer", - function(){isEnableLDRize() ? sendRawKeyEvent(80,112):liberator.open(readFromClipboard());} ,{}); - + captureMappings.forEach(function(x){ + var map = liberator.mappings.getDefault(null,x) || liberator.mappings.get(null,x); + var oldAction = map.action; + map.action = function(){ + isEnableLDRize() ? sendRawKeyEvent(0,x.charCodeAt(0)):oldAction.apply(this,arguments); + } + }); liberator.mappings.addUserMap([liberator.modes.NORMAL], [",f"], "Focus on search field by LDRize", function(){LDRize.bindFocus();} ,{}); @@ -147,7 +154,7 @@ //Commands liberator.commands.addUserCommand(["pin"], "LDRize Pinned Links", function(){ - var links = getPinnedLinks(); + var links = getPinnedItems(); var showString = links.length + " Items
"; links.forEach(function(link){ showString += link + "
"; @@ -169,7 +176,7 @@ } }); liberator.commands.addUserCommand(["pindownload"], "Download pinned links by any software", - function(arg){ downloadLinksByProgram(getPinnedLinks());} ,{}); + function(arg){ downloadLinksByProgram(getPinnedItems());} ,{}); liberator.commands.addUserCommand(["toggleldrizecooperation","toggleldrc"], "Toggle LDRize Cooperation", function(arg){ switchLDRizeCooperation(!isEnable);}, {}); -- cgit v1.2.3