31<// Vimperator plugin: Ubiquity
// Maintainer: mattn <mattn.jp@gmail.com> - http://mattn.kaoriya.net
// Require: Ubiquity - https://wiki.mozilla.org/Labs/Ubiquity
// Usage:
// :ubiquity command... - show Ubiquity's command dialog.
// :ubiquity! command... - run Ubiquity's command.
(function() {
if (typeof gUbiquity === 'undefined') return;
liberator.commands.addUserCommand(["ubiquity"], "Ubiquity",
function(arg){
var anchor = document.getElementById("content");
if (window.location == "chrome://browser/content/browser.xul"// ==VimperatorPlugin==
// @name memo
// @description to write a memo
// @description-ja メモを書く
// @license Creative Commons 2.1 (Attribution + Share Alike)
// @version 1.0
// @author anekos (anekos@snca.net)
// @maxVersion 2.0pre
// @minVersion 2.0pre
// ==/VimperatorPlugin==
//
// Usage:
// :memo
// show the memo that was written.
// :memo fooooobar!
// write "fooooobar!" to the specified memo file.
//
// Usage-ja:
// :memo
// 書かれたメモを表示する
// :memo fooooobar!
// "fooooobar!" と、メモに書く
//
// Links:
//
// References:
// http://developer.mozilla.org/index.php?title=Ja/Code_snippets/File_I%2F%2FO
(function () {
let localfilepath = liberator.globalVariables.memo_filepath || io.expandPath('~/.vimpmemo');
let charset = 'UTF-8';
//ネタ的
let lz = function(s,n)(s+'').replace(new RegExp('^.{0,'+(n-1)+'}$'),function(s)lz('0'+s,n));
function dateTime () {
with (new Date())
return lz(getFullYear(), 4) + '/' +
lz(getMonth() + 1, 2) + '/' +
lz(getDate(), 2) + ' ' +
lz(getHours(), 2) + ':' +
lz(getMinutes(), 2);
}
function filepath () {
let result = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
result.initWithPath(localfilepath);
return result;
}
function puts (line) {
line = dateTime() + "\t" + line + "\n";
let out = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
let conv = Cc['@mozilla.org/intl/converter-output-stream;1'].
createInstance(Ci.nsIConverterOutputStream);
out.init(filepath(), 0x02 | 0x10 | 0x08, 0664, 0);
conv.init(out, charset, line.length,
Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
conv.writeString(line);
conv.close();
out.close();
}
function gets () {
let file = Cc['@mozilla.org/network/file-input-stream;1'].createInstance(Ci.nsIFileInputStream);
file.init(filepath(), 1, 0, false);
let conv = Cc['@mozilla.org/intl/converter-input-stream;1'].createInstance(Ci.nsIConverterInputStream);
conv.init(file, charset, file.available(), conv.DEFAULT_REPLACEMENT_CHARACTER);
let result = {};
conv.readString(file.available(), result);
conv.close();
file.close();
return result.value;
}
commands.addUserCommand(
['memo'],
'Write memo',
function (arg) {
if (arg.string) {
puts(arg.string);
} else {
liberator.echo(gets());
}
}
);
})();