aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--direct_bookmark.js23
-rw-r--r--ldrize_cooperation.js18
-rw-r--r--migemo_hint.js7
-rw-r--r--statusline-toolbar.js174
4 files changed, 192 insertions, 30 deletions
diff --git a/direct_bookmark.js b/direct_bookmark.js
index 6c23c77..1d3688b 100644
--- a/direct_bookmark.js
+++ b/direct_bookmark.js
@@ -376,23 +376,12 @@ for Migemo search: require XUL/Migemo Extension
var xhr = new XMLHttpRequest();
var hatena_tags = [];
- var getting_tags = function () {
- //xhr.open("GET","http://b.hatena.ne.jp/my",false);
- xhr.open("GET","http://b.hatena.ne.jp/"+user,false);
- xhr.send(null);
-
- var mypage_html = parseHTML(xhr.responseText);
- //var tags = getElementsByXPath("//ul[@id=\"taglist\"]/li/a",mypage_html);
- return getElementsByXPath('id("tags")/li/a', mypage_html);
- };
-
- var tags = getting_tags();
- if (!tags) {
- // activate non-javascript static page
- xhr.open("GET", 'http://b.hatena.ne.jp/config.disable_fast?path=/' + user + '/', false);
- xhr.send(null);
- tags = getting_tags();
- }
+ // http://b.hatena.ne.jp/retlet/20110322#bookmark-34906937
+ xhr.open("GET","http://b.hatena.ne.jp/"+user+"/sidebar?with_tags=1",false);
+ xhr.send(null);
+
+ var mypage_html = parseHTML(xhr.responseText);
+ var tags = getElementsByXPath('id("tags")/li/a', mypage_html);
tags.forEach(function(tag){
hatena_tags.push(tag.innerHTML);
diff --git a/ldrize_cooperation.js b/ldrize_cooperation.js
index 94944df..35952e4 100644
--- a/ldrize_cooperation.js
+++ b/ldrize_cooperation.js
@@ -184,18 +184,18 @@ if (liberator.plugins.LDRizeCooperation == undefined) (function(){
} else {
var [code,codebase,sandbox] = arguments;
}
- if(sandbox.LDRize != undefined && sandbox.Minibuffer != undefined){
+ if(sandbox.window.LDRize != undefined && sandbox.window.Minibuffer != undefined){
sandbox.window.addEventListener("focus",function(){
- self.LDRize = liberator.eval("self",sandbox.LDRize.getSiteinfo);
- self.Minibuffer = liberator.eval("command",sandbox.Minibuffer.addCommand);
- if (typeof self.LDRize.getSiteinfo != 'function') self.LDRize = sandbox.LDRize;
- if (typeof self.Minibuffer.addCommand != 'function') self.Minibuffer = sandbox.Minibuffer.command;
+ self.LDRize = liberator.eval("self",sandbox.window.LDRize.getSiteinfo);
+ self.Minibuffer = liberator.eval("command",sandbox.window.Minibuffer.addCommand);
+ if (typeof self.LDRize.getSiteinfo != 'function') self.LDRize = sandbox.window.LDRize;
+ if (typeof self.Minibuffer.addCommand != 'function') self.Minibuffer = sandbox.window.Minibuffer.command;
},false);
if(window.content.wrappedJSObject == sandbox.unsafeWindow){
- self.LDRize = liberator.eval("self",sandbox.LDRize.getSiteinfo);
- self.Minibuffer = liberator.eval("command",sandbox.Minibuffer.addCommand);
- if (typeof self.LDRize.getSiteinfo != 'function') self.LDRize = sandbox.LDRize;
- if (typeof self.Minibuffer.addCommand != 'function') self.Minibuffer = sandbox.Minibuffer.command;
+ self.LDRize = liberator.eval("self",sandbox.window.LDRize.getSiteinfo);
+ self.Minibuffer = liberator.eval("command",sandbox.window.Minibuffer.addCommand);
+ if (typeof self.LDRize.getSiteinfo != 'function') self.LDRize = sandbox.window.LDRize;
+ if (typeof self.Minibuffer.addCommand != 'function') self.Minibuffer = sandbox.window.Minibuffer.command;
}
}
});
diff --git a/migemo_hint.js b/migemo_hint.js
index 1fbe291..a3278a8 100644
--- a/migemo_hint.js
+++ b/migemo_hint.js
@@ -1,13 +1,12 @@
// Vimperator plugin: 'Hint Matching with XUL/Migemo'
-// Last Change: 05-Feb-2009.
+// Last Change: 23-Mar-2011.
// License: Creative Commons
// Maintainer: Trapezoid <trapezoid.g@gmail.com> - http://unsigned.g.hatena.ne.jp/Trapezoid
// Require: XUL/Migemo add-on - https://addons.mozilla.org/firefox/addon/5239
//
// extended hint matching with migemo for Vimperator
-//
-// Usage:
-// :set hintmatching = custom
+
+options.get('hintmatching').set('custom');
liberator.plugins.customHintMatcher = function(inputString){
var XMigemoCore, XMigemoTextUtils;
try{
diff --git a/statusline-toolbar.js b/statusline-toolbar.js
new file mode 100644
index 0000000..3293041
--- /dev/null
+++ b/statusline-toolbar.js
@@ -0,0 +1,174 @@
+var INFO =
+<plugin name="Statusline Toolbar" version="0.1"
+ href="http://github.com/vimpr/vimperator-plugins/raw/master/statusline-toolbar.js"
+ summary="Append Toolbar to Statusline"
+ xmlns="http://vimperator.org/namespaces/liberator">
+ <author email="teramako@gmail.com">teramako</author>
+ <license>MPL 1.1/GPL 2.0/LGPL 2.1</license>
+ <project name="Vimperator" minVersion="3.0"/>
+ <description>
+ <ul>
+ <li>Add toolbar to status-line</li>
+ <li>Move the status-bar to the toolbar.</li>
+ <li>Make the toolbarbuttons in the toolbar palette configurable
+ <ul>
+ <li>Can customize by command (ex. <ex>:set statustoolbars=feed-button</ex>)</li>
+ <li>Also, can drop the toolbarbutton from Customize Toolbar window</li>
+ </ul>
+ </li>
+ </ul>
+ </description>
+ <item>
+ <tags>'statustoolbars'</tags>
+ <spec>'statustoolbars'</spec>
+ <type>stringlist</type>
+ <default></default>
+ <description>
+ <p>
+ Add/Remove toolbarbutton of the toolbar palette.
+ </p>
+ </description>
+ </item>
+</plugin>
+
+var updater = {
+ "noscript-tbb": [
+ function add(id) { noscriptOverlay.initPopups(); },
+ ],
+ "star-button": [
+ null,
+ function rm(elm) {
+ $("urlbar-icons").insertBefore(elm, $("go-button"));
+ }
+ ],
+};
+function $(id) document.getElementById(id);
+function createElement (name, attrs) {
+ var elm = document.createElement("toolbar");
+ for (let [name, value] in Iterator(attrs)) {
+ elm.setAttribute(name, value);
+ }
+ return elm;
+}
+
+var id = "liberator-customize-toolbar";
+if (!$(id)) {
+ init();
+}
+
+function init () {
+ styles.addSheet(true, "customize-toolbar", "chrome://*", <css><![CDATA[
+ #liberator-customize-toolbar {
+ border: none !important;
+ min-width: 5px !important;
+ max-height: 17px;
+ }
+ #liberator-customize-toolbar > :-moz-any(image, toolbarbutton) {
+ max-height: 16px;
+ }
+ #liberator-customize-toolbar .statusbar-resizerpanel { display: none; }
+ ]]></css>.toString(), false);
+
+ var t = createToolbar();
+ t.appendChild($("status-bar"));
+ $("liberator-bottombar").appendChild(t);
+ updateSets(t, t.currentSet.split(","), []);
+
+ config.toolbars.statuslinetoolbar = [[id], "Statusline Toolbar"];
+
+ options.add(["statustoolbars"], "Statusline Toolbar Sets",
+ "stringlist", "", {
+ toolbar: t,
+ getter: function () {
+ return this.toolbar.currentSet.split(",").filter(function(id) id != "status-bar").join(",") || "none";
+ },
+ setter: function (val) {
+ if (val == "none")
+ val = "";
+
+ let newSets = [],
+ removeSets = this.toolbar.currentSet.split(",").filter(function(id) id != "status-bar"),
+ index;
+ for (let [, id] in Iterator(this.parseValues(val))) {
+ let i = removeSets.indexOf(id);
+ if (i != -1) {
+ newSets.push(id);
+ removeSets.splice(i, 1);
+ continue;
+ }
+ let elm = document.getElementById(id);
+ if (elm) {
+ if (elm.parentNode !== t) {
+ t.appendChild(elm);
+ if (updater[id] && typeof updater[id][0] == "function")
+ updater[id][0](elm);
+ }
+ newSets.push(id);
+ } else if (gNavToolbox.palette.querySelector("#" + id)) {
+ newSets.push(id);
+ }
+ }
+ t.currentSet = newSets.join(",");
+ t.setAttribute("currentset", newSets.join(","));
+ updateSets(this.toolbar, newSets, removeSets);
+ document.persist(this.toolbar.id, "currentset");
+ return val;
+ },
+ completer: function (context) {
+ context.completions = [["none","-"]].concat(Array.map(gNavToolbox.palette.children, function(elm) {
+ return [ elm.id, elm.getAttribute("label") || "-" ];
+ }));
+ },
+ validator: function (val) {
+ return true;
+ },
+ });
+}
+
+function updateSets (toolbar, newSets, removeSets) {
+ for (let [, id] in Iterator(newSets)) {
+ if (updater[id] && typeof updater[id][0] == "function") {
+ updater[id][0](id);
+ }
+ }
+ for (let [, id] in Iterator(removeSets)) {
+ let elm = document.getElementById(id);
+ if (!elm)
+ continue;
+
+ toolbar.removeChild(elm);
+ if (updater[id] && typeof updater[id][1] == "function") {
+ updater[id][1](elm);
+ }
+ }
+}
+
+function createToolbar () {
+ var toolbar = createElement("toolbar", {
+ id: id,
+ toolbarname: "Liberator Statusline Toolbar",
+ toolboxid: "navigator-toolbox",
+ mode: "icons",
+ iconsize: "small",
+ defaulticonsize: "small",
+ lockiconsize: "small",
+ customizable: "true",
+ context: "toolbar-context-menu",
+ });
+ toolbar.setAttributeNS(NS.uri, "highlight", "ModeMsg");
+
+ var RDF = services.get("rdf");
+ var localStore = RDF.GetDataSource("rdf:local-store");
+ var currentSet = localStore.GetTarget(
+ RDF.GetResource(document.baseURI + "#" + toolbar.id),
+ RDF.GetResource("currentset"),
+ true);
+ if (currentSet) {
+ currentSet = currentSet.QueryInterface(Ci.nsIRDFLiteral).Value;
+ toolbar.setAttribute("currentset", currentSet);
+ }
+ return toolbar;
+}
+
+
+// vim: sw=2 ts=2 et: