diff options
author | Tom Willemse | 2015-11-18 00:23:21 +0100 |
---|---|---|
committer | Tom Willemse | 2015-11-18 00:23:21 +0100 |
commit | 0f5e07d0096eac1643f949bb4f5ab06187e1bf42 (patch) | |
tree | 0c19a5576def3eb5631626db4650d57eff0d1b78 /keysnail | |
parent | 80edf526d39b1c2c90fb1f76db2708d81db9ad47 (diff) | |
download | dotfiles-0f5e07d0096eac1643f949bb4f5ab06187e1bf42.tar.gz dotfiles-0f5e07d0096eac1643f949bb4f5ab06187e1bf42.zip |
Add bookmark command to Keysnail
Diffstat (limited to 'keysnail')
-rw-r--r-- | keysnail/.keysnail.js | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/keysnail/.keysnail.js b/keysnail/.keysnail.js index 9799e2e..a42e3d6 100644 --- a/keysnail/.keysnail.js +++ b/keysnail/.keysnail.js @@ -3,7 +3,8 @@ * KeySnail KeyEvent userscript ext openHelpLink * BrowserCloseTabOrWindow closeWindow undoCloseTab OpenBrowserWindow * getBrowser goQuitApplication saveDocument toJavaScriptConsole - * display shell BrowserReload BrowserBack BrowserForward content*/ + * display shell BrowserReload BrowserBack BrowserForward content M + * Components*/ // You can preserve your code in this area when generating the init // file using GUI. Put all your code except special key, set*key, // hook, blacklist. @@ -541,3 +542,63 @@ key.setViewKey([':', 'k'], function (ev, arg) { key.setViewKey([':', 't'], function (ev, arg) { ext.exec("bmany-list-bookmarks-with-tag", arg, ev); }, "bmany - List bookmarks with tag"); + +var oni = + (function() { + function _saveBookmark(tags, bookmark) { + var bmsvc = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"] + .getService(Components.interfaces.nsINavBookmarksService); + var ios = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService); + var taggingSvc = Components.classes["@mozilla.org/browser/tagging-service;1"] + .getService(Components.interfaces.nsITaggingService); + var uri = ios.newURI(bookmark.url, null, null); + + bmsvc.insertBookmark(bmsvc.bookmarksMenuFolder, uri, + bmsvc.DEFAULT_INDEX, bookmark.title); + taggingSvc.tagURI(uri, tags.split(',').map(String.trim)); + } + + function _readTags(url, bookmark) { + bookmark.url = url; + + prompt.read( + "tags (comma-separated):", + _saveBookmark, + bookmark, null + ); + } + + function _readURL(title) { + prompt.read( + "url:", + _readTags, + {title: title}, null, + window.content.location.href + ); + } + + function _readTitle() { + prompt.read( + "title:", + _readURL, + null, null, + window.content.document.title + ); + } + + var self = { + addBookmark: function(arg) { + _readTitle(); + } + }; + + return self; + })(); + +ext.add('oni-add-bookmark', function(ev, arg) { oni.addBookmark(arg); }, + M({en: "oni - Add bookmark"})); + +key.setViewKey([':', 'a'], function (ev, arg) { + ext.exec("oni-add-bookmark", arg, ev); +}, "Bookmark this page"); |