Skip to content

Instantly share code, notes, and snippets.

@958
Last active September 25, 2015 18:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 958/963776 to your computer and use it in GitHub Desktop.
Save 958/963776 to your computer and use it in GitHub Desktop.
[keysnail]ブックマークフォルダ一覧を表示して、フォルダ内をまとめて開く
var PLUGIN_INFO =
<KeySnailPlugin>
<name>Bookmark folder</name>
<description lang="ja">ブックマークフォルダを一覧表示して中身をまとめて開く</description>
<updateURL>https://gist.github.com/958/963776/raw/bookmarkfolder.ks.js</updateURL>
<iconURL>https://sites.google.com/site/958site/Home/files/bookmarkfolder.ks.png</iconURL>
<license>MIT</license>
<minVersion>1.8.0</minVersion>
<author>958</author>
<version>0.0.4</version>
<detail><![CDATA[
=== 概要 ===
ブックマークフォルダをの中身をまとめて開いたりできます
]]></detail>
</KeySnailPlugin>;
const FOLDER_ICON = 'data:image/png;base64,' +
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0' +
'U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGrSURBVDjLxZO7ihRBFIa/6u0ZW7GHBUV0' +
'UQQTZzd3QdhMQxOfwMRXEANBMNQX0MzAzFAwEzHwARbNFDdwEd31Mj3X7a6uOr9BtzNjYjKBJ6ni' +
'cP7v3KqcJFaxhBVtZUAK8OHlld2st7Xl3DJPVONP+zEUV4HqL5UDYHr5xvuQAjgl/Qs7TzvOOVAj' +
'xjlC+ePSwe6DfbVegLVuT4r14eTr6zvA8xSAoBLzx6pvj4l+DZIezuVkG9fY2H7YRQIMZIBwycmz' +
'H1/s3F8AapfIPNF3kQk7+kw9PWBy+IZOdg5Ug3mkAATy/t0usovzGeCUWTjCz0B+Sj0ekfdvkZ3a' +
'bBv+U4GaCtJ1iEm6ANQJ6fEzrG/engcKw/wXQvEKxSEKQxRGKE7Izt+DSiwBJMUSm71rguMYhQKr' +
'BygOIRStf4TiFFRBvbRGKiQLWP29yRSHKBTtfdBmHs0BUpgvtgF4yRFR+NUKi0XZcYjCeCG2smkz' +
'LAHkbRBmP0/Uk26O5YnUActBp1GsAI+S5nRJJJal5K1aAMrq0d6Tm9uI6zjyf75dAe6tx/SsWeD/' +
'/o2/Ab6IH3/h25pOAAAAAElFTkSuQmCC';
plugins.withProvides(function (provide) {
provide('bookmark-folder-show', function(ev, arg) {
if (arg || !my.bookmarkFoldersCache) {
my.bookmarkFoldersCache = [];
(function(id){
let parent = PlacesUtils.getFolderContents(id).root;
let childs = [];
for (let i = 0; i < parent.childCount; i++) {
let child = parent.getChild(i);
if (PlacesUtils.nodeIsBookmark(child))
childs.push(child.uri);
else if (PlacesUtils.nodeIsFolder(child))
Array.prototype.push.apply(childs, arguments.callee(child.itemId));
}
if (childs.length > 0 && parent.title)
my.bookmarkFoldersCache.push([FOLDER_ICON, parent.title || "", childs.length, childs]);
return childs;
})(PlacesUtils.bookmarks.placesRoot);
}
prompt.selector({
message : "pattern:",
collection : my.bookmarkFoldersCache,
flags : [ICON | IGNORE, 0, 0, HIDDEN | IGNORE],
header : ['Name', 'Number of bookmarks'],
actions : [[
function(i)
my.bookmarkFoldersCache[i][3].forEach(function(url) plugins.bmany.go(url, 'tabshifted'))
]]
});
}, M({en: 'Bookmark folder - show', ja:'Bookmark folder - 一覧を表示'}));
}, PLUGIN_INFO);
@958
Copy link
Author

958 commented May 10, 2011

TODO
フォルダの子ブックマークしか開けない

@958
Copy link
Author

958 commented May 20, 2011

↑をfixしてエクステ化

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment