Skip to content

Instantly share code, notes, and snippets.

@serian
Created January 23, 2017 12:09
Show Gist options
  • Save serian/2481f9a8864208ef2ef23a2b397c4ef4 to your computer and use it in GitHub Desktop.
Save serian/2481f9a8864208ef2ef23a2b397c4ef4 to your computer and use it in GitHub Desktop.
// firefox shortcutkey bookmark a page to the folder named "ltr"
// firefox shortcutkey
// bookmark a page to the folder named "ltr"
(function(){
var bmsvc = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService);
var menuFolder = bmsvc.bookmarksMenuFolder;
var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
//var newBkmkId = bmsvc.insertBookmark(getFolderId("ltr"), gBrowser.currentURI, bmsvc.DEFAULT_INDEX, "");
var newBkmkId = bmsvc.insertBookmark(getFolderId("ltr"), gBrowser.currentURI, -1, content.document.title);
alert(content.document.title);
//PlacesUtils.bookmarksMenuFolderId = newBkmkId;
// PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId);
// PlacesCommandHook.bookmarkPage(content, PlacesUtils.bookmarksMenuFolderId, true);
// var ios = Components.classes["@mozilla.org/network/io-service;1"]
// .getService(Components.interfaces.nsIIOService);
// var uri = ios.newURI(content.location, null, null);
// var newBkmkId = bmsvc.insertBookmark(newBkmkId, uri, -1, content.document.title);
// bmsvc.setItemTitle(newBkmkId, content.document.title);
function getFolderId(name){
var historyService = Components.classes["@mozilla.org/browser/nav-history-service;1"].getService(Components.interfaces.nsINavHistoryService);
var options = historyService.getNewQueryOptions();
var query = historyService.getNewQuery();
var bookmarksService = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService);
var toolbarFolder = bookmarksService.toolbarFolder;
query.setFolders([toolbarFolder], 1);
var result = historyService.executeQuery(query, options);
var rootNode = result.root;
rootNode.containerOpen = true;
// iterate over the immediate children of this folder and dump to console
var node, folderid;
rootNode.containerOpen = true;
var rncc = rootNode.childCount;
for (var i = 0; i < rncc; i ++) {
rootNode.containerOpen = true;
node = rootNode.getChild(i);
if (node.title == name){
folderid = node.itemId;
break;
}
}
// close a container after using it!
rootNode.containerOpen = false;
return folderid;
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment