aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--auto_detect_link.js152
-rw-r--r--command_menu.js94
-rw-r--r--readcatlater.js95
3 files changed, 162 insertions, 179 deletions
diff --git a/auto_detect_link.js b/auto_detect_link.js
index 02294ed..0e7ec5c 100644
--- a/auto_detect_link.js
+++ b/auto_detect_link.js
@@ -65,14 +65,14 @@
//
// License:
// http://creativecommons.org/licenses/by-sa/2.1/jp/
-// http://creativecommons.org/licenses/by-sa/2.1/jp/deed.en_CA
+// http://creativecommons.org/licenses/by-sa/2.1/jp/deed
//
// TODO:
// input / form
// history
-(function () { try{
+(function () { try {
liberator.log('auto_detect_link.js loading');
////////////////////////////////////////////////////////////////
@@ -81,13 +81,15 @@
let defaultSetting = {
nextPatterns: [
- /NEXT/, /next/, /Next/,
- /^次(へ|の)/, /つぎへ/, /つづく/, /続/, /次/, /つぎ/, /next/i, /進む/,
- /^>$/, />>/, />/
+ /[NnNn][EeEe][XxXx][TtTt]/,
+ /[FfFf](?:[OoOo][RrRr])?[WwWw](?:[AaAa][RrRr])?[DdDd]/,
+ /^\s*(?:次|つぎ)[への]/, /つづく|続/, /次|つぎ/, /進む/,
+ /^\s*>\s*$/, />+|≫/
],
backPatterns: [
- /back/i, /back/i, /BACK/, /PREV/,
- /^前(へ|の)/, /前/, /戻る/, /^<$/, /<</, /</
+ /[BbBb][AaAa][CcCc][KkKk]/, /[PpPp][RrRr][EeEe][VvVv]/,
+ /^\s*前[への]/, /前/, /戻る/,
+ /^\s*<\s*$/, /<+|≪/
],
nextMappings: [']]'],
backMappings: ['[['],
@@ -97,7 +99,7 @@
//clickButton: true,
force: false,
useAutoPagerize: true,
- }
+ };
////////////////////////////////////////////////////////////////
// setting
@@ -107,7 +109,7 @@
// 評価を遅延するために関数にしておく
function gv () {
- if (_gv)
+ if (_gv)
return _gv;
if (liberator.globalVariables) {
@@ -128,8 +130,8 @@
let ap_cache = eval(Application.prefs.getValue(APPREF, null));
for each (let cache in ap_cache) {
- cache.info = cache.info.filter(function(i) { return ('url' in i) })
- cache.info.sort(function(a, b) { return (b.url.length - a.url.length) })
+ cache.info = cache.info.filter(function (i) 'url' in i);
+ cache.info.sort(function (a, b) b.url.length - a.url.length);
}
@@ -139,8 +141,8 @@
// Array#find
function find (ary, f) {
- let func = (typeof f == 'function') ? f : function (v) v == f;
- for (var i = 0; i < ary.length; i++) {
+ var func = (typeof f == 'function') ? f : function (v) v == f;
+ for (let i = 0, l = ary.length; i < l; i++) {
if (func(ary[i])) {
return ary[i];
}
@@ -153,14 +155,14 @@
function clickElement (elem) {
liberator.log('click: ' + elem);
var e = content.document.createEvent('MouseEvents');
- e.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
- elem.dispatchEvent(e);
+ e.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
+ elem.dispatchEvent(e);
}
// 開いたURIなどの表示
function displayOpened (link) {
- let msg = 'open: ' + link.type + ' <' + link.text + '> ' + link.uri;
+ var msg = 'open: ' + link.type + ' <' + link.text + '> ' + link.uri;
setTimeout(function () liberator.echo(msg, commandline.FORCE_SINGLELINE), 1000);
liberator.log(msg);
}
@@ -172,22 +174,21 @@
if (link.element) {
clickElement(link.element);
} else if (link.uri) {
- link.frame.location.href = link.uri
+ link.frame.location.href = link.uri;
}
displayOpened(link);
}
// 元の文字列、詰め込む文字、長さ
- function padChar (s, c, n) {
- return s.replace(new RegExp('^(.{0,'+(n-1)+'})$'), function(s)padChar(c+s,c,n));
- }
+ function padChar (s, c, n)
+ s.replace(new RegExp('^(.{0,'+(n-1)+'})$'), function (s) padChar(c+s, c, n));
// (次|前)の数字文字列リストを取得
function succNumber (n, next) {
- let m = (parseInt(n.replace(/^0*(.)/,'$1')||0) + (next ? 1 : -1)).toString();
- let result = [m];
+ var m = (parseInt(n.replace(/^0*(?=.)/, '') || 0) + (next ? 1 : -1)).toString();
+ var result = [m];
if (m.length < n.length)
result.unshift(padChar(m.toString(), '0', n.length));
return result;
@@ -196,8 +197,8 @@
// (次|前)の文字列リストを取得
function succString (s, next) {
- let result = [], d = next ? 1 : -1;
- let c = String.fromCharCode(s.charCodeAt(0) + d);
+ var result = [], d = next ? 1 : -1;
+ var c = String.fromCharCode(s.charCodeAt(0) + d);
if (('a' <= c && c <= 'z') || 'A' <= c && c <= 'Z')
result.push(c);
return result;
@@ -206,33 +207,31 @@
// (次|前)のURIリストを取得
function succURI (uri, next) {
- let urim = uri.match(/^(.+\/)([^\/]+)$/);
+ var urim = uri.match(/^(.+\/)([^\/]+)$/);
if (!urim)
return [];
- let [_, dir, file] = urim, result = [];
+ var [_, dir, file] = urim, result = [];
// succ number
- let (dm, succs, file = file, left = '', temp = []) {
+ let (dm, file = file, left = '', temp = []) {
while (file && (dm = file.match(/\d+/))) {
let [rcontext, lcontext, lmatch] = [RegExp.rightContext, RegExp.leftContext, RegExp.lastMatch];
left += lcontext;
- succs = succNumber(lmatch, next);
- for each (let succ in succs) {
+ succNumber(lmatch, next).forEach(function (succ) {
temp.push(dir + left + succ + rcontext);
- }
+ });
left += lmatch;
file = rcontext;
}
result = result.concat(temp.reverse());
}
// succ string
- let (dm, succs, file = file, left = '', temp = []) {
+ let (dm, file = file, left = '', temp = []) {
while (file && (dm = file.match(/(^|[^a-zA-Z])([a-zA-Z])([^a-zA-Z]|$)/))) {
let [rcontext, lcontext] = [RegExp.rightContext, RegExp.leftContext];
left += lcontext + dm[1];
- succs = succString(dm[2], next);
- for each (let succ in succs) {
+ succString(dm[2], next).forEach(function (succ) {
temp.push(dir + left + succ + dm[3] + rcontext);
- }
+ });
left += dm[1];
file = dm[3] + rcontext;
}
@@ -243,22 +242,19 @@
// パターンマッチング
- function match (pattern, link) {
- if (pattern instanceof Function)
- return pattern(link);
- if (!link.text)
- return;
- if (pattern instanceof RegExp)
- return pattern.test(link.text);
- return link.text.toLowerCase().indexOf(pattern.toString().toLowerCase()) >= 0;
- }
+ function match (pattern, link)
+ pattern instanceof Function ? pattern(link) :
+ !link.text ? null :
+ pattern instanceof RegExp ? pattern.test(link.text) :
+ link.text.toLowerCase().indexOf(pattern.toString().toLowerCase()) >= 0;
// 要素が表示されているか?
function isVisible (element) {
+ var st;
try {
- let st = content.document.defaultView.getComputedStyle(element, null);
- return !(st.display && st.display.match(/none/)) && (!element.parentNode || isVisible(element.parentNode))
+ st = content.document.defaultView.getComputedStyle(element, null);
+ return !(st.display && st.display.indexOf('none') >= 0) && (!element.parentNode || isVisible(element.parentNode))
} catch (e) {
return true;
}
@@ -266,9 +262,8 @@
// リンクのフィルタ
- function linkElementFilter (elem) {
- return isVisible(elem) && elem.href && !elem.href.match(/@/) && elem.href.match(/^((https?|file|ftp):\/\/|javascript:)/) && elem.textContent;
- }
+ function linkElementFilter (elem)
+ isVisible(elem) && elem.href && elem.href.indexOf('@') < 0 && /^(?:(?:https?|f(?:ile|tp)):\/\/|javascript:)/.test(elem.href) && elem.textContent;
// 全てのリンクを取得
@@ -276,7 +271,9 @@
function getAllLinks (content) {
var result = [];
// Anchor
- for each (let it in content.document.links) {
+ var elements = content.document.links;
+ for (let i = 0, l = elements.length; i < l; i++) {
+ let it = elements[i];
if (linkElementFilter(it))
result.push({
type: 'link',
@@ -287,21 +284,22 @@
});
}
// Form
- for each (let input in content.document.getElementsByTagName('input')) {
+ elements = content.document.getElementsByTagName('input');
+ for (let i = 0, l = elements.length; i < l; i++) {
(function (input) {
result.push({
type: 'input',
- frame: content,
- uri: input.form && input.form.action,
+ frame: content,
+ uri: input.form && input.form.action,
text: input.value,
click: input.click,
element: input,
});
- })(input);
+ })(elements[i]);
}
// Frame
if (content.frames) {
- for (let i = 0; i < content.frames.length; i++) {
+ for (let i = 0, l = content.frames.length; i < l; i++) {
result = result.concat(getAllLinks(content.frames[i]));
}
}
@@ -332,10 +330,11 @@
if (!ap_cache)
return;
- let info = (function () {
- let uri = buffer.URL;
+ var info = (function () {
+ var uri = buffer.URL;
for each (let cache in ap_cache) {
- for each (let info in cache.info) {
+ for (let i = 0, l = cache.info.length; i < l; i++) {
+ let info = cache.info[i];
if (uri.match(info.url))
return info;
}
@@ -345,8 +344,8 @@
if (!info)
return;
- let doc = content.document;
- let result = doc.evaluate(info.nextLink, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
+ var doc = content.document;
+ var result = doc.evaluate(info.nextLink, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
if (result.singleNodeValue)
return result.singleNodeValue;
}
@@ -382,25 +381,27 @@
// keywords
if (1) {
- for each (let pattern in patterns) {
- let link = find(links, function (link) match(pattern, link));
- if (link)
- return link;
- }
+ let link;
+ if (patterns.some(function (pattern) {
+ link = find(links, function (link) match(pattern, link));
+ return link ? true : false;
+ }))
+ return link;
}
// succ
let succs = succURI(uri, next);
if (setting.useSuccPattern) {
- for each (succ in succs) {
- let link = find(links, function (link) (link.uri && (link.uri.indexOf(succ) >= 0)));
- if (link)
- return link;
- }
+ let link;
+ if (succs.some(function (succ) {
+ link = find(links, function (link) link.uri && (link.uri.indexOf(succ) >= 0));
+ return link ? true : false;
+ }))
+ return link;
}
// force
- if (setting.force && succs.length)
+ if (setting.force && succs.length)
return {
type: 'force',
uri: succs[0],
@@ -425,7 +426,7 @@
return;
}
- let link = detect(next, setting);
+ var link = detect(next, setting);
if (link)
open(link);
}
@@ -442,7 +443,7 @@
if (gv().nextMappings.length) {
mappings.addUserMap(
- [modes.NORMAL],
+ [modes.NORMAL],
gv().nextMappings,
'Go next',
function () go(true)
@@ -452,7 +453,7 @@
if (gv().backMappings.length) {
mappings.addUserMap(
- [modes.NORMAL],
+ [modes.NORMAL],
gv().backMappings,
'Go back',
function () go(false)
@@ -462,7 +463,4 @@
liberator.log('auto_detect_link.js loaded');
-}catch(e){liberator.log(e)}
-})();
-
-
+} catch (e) { liberator.log(e); } })();
diff --git a/command_menu.js b/command_menu.js
index 4c95088..4cabb55 100644
--- a/command_menu.js
+++ b/command_menu.js
@@ -19,38 +19,37 @@
//
// License:
// http://creativecommons.org/licenses/by-sa/2.1/jp/
-// http://creativecommons.org/licenses/by-sa/2.1/jp/deed.en_CA
+// http://creativecommons.org/licenses/by-sa/2.1/jp/deed
-(function(){
+(function () {
const migemo = Components
.classes['@piro.sakura.ne.jp/xmigemo/factory;1']
.getService(Components.interfaces.pIXMigemoFactory)
.getService("ja");
- function id (v) v;
-
function equal (x) function (y) x == y;
- function cloneArray (src) src.map(id);
+ function cloneArray (src) src.map(function (id) id);
function matchPath (elem, path, getName) {
- for (let i = 0; i < path.length; i++) {
+ var i = 0;
+ for (let l = path.length; i < l; i++) {
if (!path[i](getName(elem)))
break;
}
if (i) {
let res = [];
- for (let j = i; j < path.length; j++)
+ for (let j = i, l = path.length; j < l; j++)
res.push(path[j]);
return res;
}
}
function getElementsByPath (elem, path, getName, isTarget, isEnabled) {
- try{
+ try {
function get (point, elem, path) {
- let m = path[0](getName(elem, true));
+ var m = path[0](getName(elem, true));
if (isTarget(elem)) {
if (!isEnabled(elem))
@@ -65,11 +64,11 @@
}
//elem.containerOpen = true;
- let res, cs = elem.childNodes, result = [];
+ var res, cs = elem.childNodes, result = [];
if (cs && cs.length) {
- for (let i = 0; i < cs.length; i++) {
+ for (let i = 0, l = cs.length; i < l; i++) {
if (res = get(m + point, cs[i], path))
- res.map(function(it) it && result.push(it));
+ res.map(function (it) it && result.push(it));
}
}
//elem.containerOpen = false;
@@ -78,26 +77,21 @@
}
return get(0, elem, path).sort().map(function (it) it[1]);
- }catch(e){ liberator.log(e); }
+ } catch (e) { liberator.log(e); }
}
- function getPathMatchers (args) {
- return args.split('-').map(function(it){
- let n = it.toLowerCase();
- let s = migemo.getRegExp(it.replace(/^\s+|\s+$/, ''));
- let re = new RegExp(s, 'i');
- return function (l) {
- if (!l) return 0;
- if (l == it) return 1;
- if (l.toLowerCase().indexOf(n) >= 0) return 2;
- if (re.test(l)) return 3;
- return 0;
- }
- });
- }
+ function getPathMatchers (args)
+ args.split('-').map(function (it)
+ function (l)
+ !l ? 0 :
+ l == it ? 1 :
+ l.toLowerCase().indexOf(it.toLowerCase()) >= 0 ? 2 :
+ new RegExp(migemo.getRegExp(it.replace(/^\s+|\s+$/, '')),
+ 'i').test(l) ? 3 :
+ 0);
function getPathString (elem, isRoot, getName, isTarget) {
- let res = [];
+ var res = [];
while (!isRoot(elem)) {
isTarget(elem) && res.unshift(getName(elem));
elem = elem.parentNode;
@@ -116,32 +110,27 @@
const toolbox = document.getElementById('navigator-toolbox');
const contextmenu = document.getElementById('contentAreaContextMenu');
- function fixName (name) {
- return name ? name.replace(/^\s+|\s+$/, '').replace(/[\-\s]+/g, '_') : '';
- }
+ function fixName (name)
+ name ? name.replace(/^\s+|\s+$/, '').replace(/[-\s]+/g, '_') : '';
- function getElementName (elem, multi) {
- const f = function (it) { return fixName(it) || ''; }
- return multi ? [elem.label, elem.tooltipText].map(f).join('-')
- : fixName(elem.label || elem.tooltipText || '') ;
- }
+ function getElementName (elem, multi)
+ multi ? [elem.label, elem.tooltipText].map(function (it) fixName(it) || '')
+ .join('-')
+ : fixName(elem.label || elem.tooltipText || '');
- function isNotHidden (elem) {
- return !elem.hidden;
- }
+ function isNotHidden (elem)
+ !elem.hidden ? true : false;
- function isClickable (elem) {
- const re = /^(menu(item)?|toolbarbutton)$/i;
- return elem.nodeName.match(re);
- }
+ function isClickable (elem)
+ /^(?:menu(?:item)?|toolbarbutton)$/.test(elem.nodeName.toLowerCase());
- function addCommand(cmds, name, root, action) {
+ function addCommand (cmds, name, root, action) {
function _find (args, single) {
- let result = getElementsByPath(root,
- getPathMatchers(args),
- getElementName,
- isClickable,
- isNotHidden);
+ var result = getElementsByPath(root,
+ getPathMatchers(args),
+ getElementName,
+ isClickable,
+ isNotHidden);
return single ? result[0] : result;
}
@@ -161,7 +150,7 @@
// for HEAD (2)
if (args.string != undefined)
args = args.string;
- let res = _find(args.replace(/-\s*$/,''), true);
+ var res = _find(args.replace(/-\s*$/,''), true);
if (!(res && action(res)))
liberator.echoerr('menu not found');
},
@@ -178,8 +167,8 @@
addCommand(['me[nu]'], 'Command MainMenu', mainMenubar);
addCommand(['toolbar', 'tb'], 'Command Toolbar', toolbox);
addCommand(['conme', 'contextmenu'],
- 'Context Menu',
- contextmenu,
+ 'Context Menu',
+ contextmenu,
function (elem) {
//contextmenu.openPopup(null, null, 0, 0, true);
//contextmenu.hidePopup();
@@ -190,4 +179,3 @@
);
})();
-
diff --git a/readcatlater.js b/readcatlater.js
index 0d0c2ca..97c545a 100644
--- a/readcatlater.js
+++ b/readcatlater.js
@@ -17,39 +17,39 @@
//
// License:
// http://creativecommons.org/licenses/by-sa/2.1/jp/
-// http://creativecommons.org/licenses/by-sa/2.1/jp/deed.en_CA
+// http://creativecommons.org/licenses/by-sa/2.1/jp/deed
//
// Link:
// http://d.hatena.ne.jp/nokturnalmortum/20080918#1221729188
-(function () { try{
+(function () { try {
liberator.log('readcatlater.js loading');
-
+
// このプラグインでブックマークしたときに必ずつくタグ
- const RCL_TAG = 'readcatlater';
+ const RCL_TAG = 'readcatlater';
// このプラグインが保存するブックマークのフォルダ名
// 変更しても良いし、場所を移動しても平気である。
const FOLDER_NAME = 'L';
// 逆順表示
const REVERSE = eval(liberator.globalVariables.readcatlater_reverse || 'false');
- var prefs = {
+ let prefs = {
prefix: 'extensions.vimperator.plugins.readcatlater.',
prefs: Components.classes["@mozilla.org/preferences-service;1"].
getService(Components.interfaces.nsIPrefBranch),
get: function (name, def) {
+ var name, type;
try {
- var name = this.prefix + name;
- var type = this.prefs.getPrefType(name);
- const nsIPrefBranch = Components.interfaces.nsIPrefBranch;
+ const nsIPrefBranch = Components.interfaces.nsIPrefBranch;
+ name = this.prefix + name;
+ type = this.prefs.getPrefType(name);
switch (type) {
case nsIPrefBranch.PREF_STRING:
try {
return this.prefs.getComplexValue(name, Components.interfaces.nsISupportsString).data;
- }
- catch (e) {
+ } catch (e) {
this.prefs.getCharPref(name);
}
break;
@@ -70,7 +70,7 @@
var name = this.prefix + name;
switch (type || typeof value) {
case 'string':
- var str = Cc['@mozilla.org/supports-string;1'].
+ let str = Cc['@mozilla.org/supports-string;1'].
createInstance(Ci.nsISupportsString);
str.data = value;
return this.prefs.setComplexValue(name, Components.interfaces.nsISupportsString, str);
@@ -98,21 +98,21 @@
const history = Cc["@mozilla.org/browser/nav-history-service;1"].
getService(Ci.nsINavHistoryService);
- var [folderId, folderGUID] = [prefs.get('folderId', false), prefs.get('folderGUID', false)];
+ let [folderId, folderGUID] = [prefs.get('folderId', false), prefs.get('folderGUID', false)];
if (!(folderGUID && folderId && (folderId == bookmarks.getItemIdForGUID(folderGUID)))) {
- folderId = bookmarks.createFolder(bookmarks.toolbarFolder, FOLDER_NAME, bookmarks.DEFAULT_INDEX);
+ folderId = bookmarks.createFolder(bookmarks.toolbarFolder, FOLDER_NAME, bookmarks.DEFAULT_INDEX);
prefs.set('folderId', folderId);
prefs.set('folderGUID', bookmarks.getItemGUID(folderId));
}
/*
// Get an array of tags for a URI
- var myTags = tagssvc.getTagsForURI(myURI, {});
+ let myTags = tagssvc.getTagsForURI(myURI, {});
// Get an array of URIs for a tag
- var taggedURIs = tagssvc.getURIsForTag("mozilla");
+ let taggedURIs = tagssvc.getURIsForTag("mozilla");
// Get an array of all tags
- var arrayOfAllTags = tagssvc.allTags;
+ let arrayOfAllTags = tagssvc.allTags;
// Remove tags from a URI
tagssvc.untagURI(myURI, ["mozilla", "firefox"]);
*/
@@ -146,44 +146,41 @@
}
function splitBySpaces (str) {
- return [it for each (it in str.split(/\s+/)) if (it.match && it.match(/\w+/))];
+ return [it for each (it in str.split(/\s+/)) if (/\w/.test(it))];
}
- function RCL_Bookmarks (terms) { try{
- var query = history.getNewQuery();
+ function RCL_Bookmarks (terms) { try {
+ let query = history.getNewQuery();
query.setFolders([folderId], 1);
+ let m;
if (terms) {
- var ts = splitBySpaces(terms).map(function (it) {
+ let ts = splitBySpaces(terms).map(function (it) {
var re = new RegExp(migemo.getRegExp(it), 'i');
var f = function (it) re.exec(it);
return {s: it, r: f};
});
- var m = function (it) {
- for each (var t in ts) {
- if ((it.URI.indexOf(t.s) >= 0) ||
- (it.title.indexOf(t.s) >= 0) ||
- (t.r(it.URI)) ||
- (t.r(it.title)) )
- return true;
- }
- };
+ m = function (it)
+ ts.some(function (t)
+ (it.URI.indexOf(t.s) >= 0 || it.title.indexOf(t.s) >= 0 ||
+ t.r(it.URI) || t.r(it.title))
+ ? true : false);
} else {
- var m = function () true;
+ m = function () true;
}
- var result = [];
- var qres = history.executeQueries([query], 1, history.getNewQueryOptions());
- var folderNode = qres.root;
+ let result = [];
+ let qres = history.executeQueries([query], 1, history.getNewQueryOptions());
+ let folderNode = qres.root;
- var closeOriginally = !folderNode.containerOpen;
+ let closeOriginally = !folderNode.containerOpen;
if (closeOriginally)
folderNode.containerOpen = true;
- for (var i = 0; i < folderNode.childCount; ++i) {
- var node = folderNode.getChild(i);
+ for (let i = 0; i < folderNode.childCount; ++i) {
+ let node = folderNode.getChild(i);
if (PlacesUtils.nodeIsBookmark(node)) {
- var it = {id: node.itemId,
+ let it = {id: node.itemId,
title: node.title,
URI: node.uri };
if (m(it))
@@ -195,18 +192,19 @@
folderNode.containerOpen = false;
return liberator.globalVariables.readcatlater_reverse ? result.reverse() : result;
- }catch(e){ liberator.log(e); }}
+ } catch (e) { liberator.log(e); } }
function completer (args) {
- try{
- var cs = [ [it.URI, bookmarks.getItemTitle(it.id)] for each (it in RCL_Bookmarks(args)) if (it.id) ];
+ var cs;
+ try {
+ cs = [ [it.URI, bookmarks.getItemTitle(it.id)] for each (it in RCL_Bookmarks(args)) if (it.id) ];
return [0, cs]
- } catch(e) { liberator.log(e); }
- }
+ } catch (e) { liberator.log(e); }
+ }
function removeItems (uri) {
var removed = false;
- for each (var id in bookmarks.getBookmarkIdsForURI(makeURI(uri), {}))
+ for each (let id in bookmarks.getBookmarkIdsForURI(makeURI(uri), {}))
if (folderId == bookmarks.getFolderIdForItem(id)) {
removed = true;
bookmarks.removeItem(id);
@@ -243,9 +241,9 @@
uri = uri.string;
openURI(uri);
if (!bang && removeItems(uri))
- liberator.echo('"' + uri + '" was removed.');
+ liberator.echo('"' + uri + '" was removed.');
},
- {
+ {
completer: completer
}
);
@@ -255,14 +253,13 @@
'delete cat now',
function (uri, bang, num, extra) {
if (removeItems(uri))
- liberator.echo('"' + uri + '" was removed.');
+ liberator.echo('"' + uri + '" was removed.');
},
- {
+ {
completer: completer
}
);
liberator.log('readcatlater.js loaded');
-}catch(e){ liberator.log(e); }})();
-
+} catch (e) { liberator.log(e); } })();