aboutsummaryrefslogtreecommitdiffstats
path: root/tombloo.js
diff options
context:
space:
mode:
authortrapezoid2008-07-17 07:19:15 +0000
committertrapezoid2008-07-17 07:19:15 +0000
commit30b81faf2abc10fe2ae100e49ed66f8ead2ff784 (patch)
tree101aec68c21809d4894b30d998bfaa62934d2592 /tombloo.js
parentf7516bce78a89985bd27984c2a7ee77d58c09586 (diff)
downloadvimperator-plugins-30b81faf2abc10fe2ae100e49ed66f8ead2ff784.tar.bz2
Tomblooとの連携プラグイン
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@15925 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'tombloo.js')
-rw-r--r--tombloo.js72
1 files changed, 72 insertions, 0 deletions
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];
+ }
+ }
+);