From 30b81faf2abc10fe2ae100e49ed66f8ead2ff784 Mon Sep 17 00:00:00 2001 From: trapezoid Date: Thu, 17 Jul 2008 07:19:15 +0000 Subject: Tomblooとの連携プラグイン git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@15925 d0d07461-0603-4401-acd4-de1884942a52 --- tombloo.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 tombloo.js (limited to 'tombloo.js') diff --git a/tombloo.js b/tombloo.js new file mode 100644 index 0000000..f9fdb2c --- /dev/null +++ b/tombloo.js @@ -0,0 +1,72 @@ +/** + * ==VimperatorPlugin== + * @name tombloo.js + * @description Tombloo integrate plugin + * @description-ja TombloooRőÏȂǂpost + * @author Trapezoid + * @version 0.1 + * ==/VimperatorPlugin== + * + * Usage: + * :tombloo arg -> post by Tombloo + * :tomblooAction arg -> execute Tombloo's action in tool menu + **/ +var TomblooService = Components.classes['@brasil.to/tombloo-service;1'].getService().wrappedJSObject; +function update(target, src, keys){ + if(keys){ + keys.forEach(function(key){ + target[key] = src[key]; + }); + } else { + for(var key in src) + target[key] = src[key]; + } + + return target; +} + +function getContext(){ + var doc = window.content.document; + var win = window.content.wrappedJSObject; + return update(update({ + document : doc, + window : win, + title : ''+doc.title || '', + selection : ''+win.getSelection(), + target : doc, + //event : event, + //mouse : mouse, + //menu : gContextMenu, + }, {}), win.location); +} + +liberator.commands.addUserCommand(['tomblooAction'],'Execute Tombloo actions', + function(arg){ + TomblooService.Tombloo.Service.actions[arg].execute(); + },{ + completer: function(filter){ + var completionList = new Array(); + for(var name in TomblooService.Tombloo.Service.actions) + if(name.indexOf(filter) > -1) + completionList.push([name,name]); + return [0,completionList]; + } + } +); + +liberator.commands.addUserCommand(['tombloo'],'Post by Tombloo', + function(arg){ + liberator.log(TomblooService.Tombloo.Service.extracters); + TomblooService.Tombloo.Service.share(getContext(), TomblooService.Tombloo.Service.extracters[arg],false); + },{ + completer: function(filter){ + var completionList = new Array(); + var exts = TomblooService.Tombloo.Service.check(getContext()); + liberator.log(exts[0]); + for(var i=0; i < exts.length; i++) + if(exts[i].name.indexOf(filter) > -1) + completionList.push([exts[i].name,exts[i].name]); + return [0,completionList]; + } + } +); -- cgit v1.2.3