Last active
September 25, 2015 18:18
-
-
Save 958/963776 to your computer and use it in GitHub Desktop.
[keysnail]ブックマークフォルダ一覧を表示して、フォルダ内をまとめて開く
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
TODO
フォルダの子ブックマークしか開けない