aboutsummaryrefslogtreecommitdiff
path: root/src/background/actions
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2018-05-10 20:26:01 +0900
committerGitHub <noreply@github.com>2018-05-10 20:26:01 +0900
commit439c2a3df9c70c0baa26e2c9d597e109348e5499 (patch)
treea1a51e4643687635b0ad9bbc9af812cac953fd77 /src/background/actions
parentd5116987760d6c43a4e0914537980bc93bf01fa3 (diff)
parent53c3ddab2e0efa656ab04726a85df04bb899f4d8 (diff)
Merge pull request #388 from ueokande/create-bookmarks
addbookmark command
Diffstat (limited to 'src/background/actions')
-rw-r--r--src/background/actions/command.js25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/background/actions/command.js b/src/background/actions/command.js
index 2f7305a..be742cd 100644
--- a/src/background/actions/command.js
+++ b/src/background/actions/command.js
@@ -1,5 +1,7 @@
+import messages from 'shared/messages';
import actions from '../actions';
import * as tabs from '../shared/tabs';
+import * as bookmarks from '../shared/bookmarks';
import * as parsers from 'shared/commands/parsers';
import * as properties from 'shared/settings/properties';
@@ -39,6 +41,14 @@ const bufferCommand = (keywords) => {
});
};
+const addBookmarkCommand = (tab, args) => {
+ if (!args[0]) {
+ return Promise.resolve();
+ }
+
+ return bookmarks.create(args.join(' '), tab.url);
+};
+
const setCommand = (args) => {
if (!args[0]) {
return Promise.resolve();
@@ -52,7 +62,7 @@ const setCommand = (args) => {
};
};
-const exec = (line, settings) => {
+const exec = (tab, line, settings) => {
let [name, args] = parsers.parseCommandLine(line);
switch (name) {
@@ -68,6 +78,19 @@ const exec = (line, settings) => {
case 'b':
case 'buffer':
return bufferCommand(args);
+ case 'addbookmark':
+ return addBookmarkCommand(tab, args).then((item) => {
+ if (!item) {
+ return browser.tabs.sendMessage(tab.id, {
+ type: messages.CONSOLE_SHOW_ERROR,
+ text: 'Could not create a bookmark',
+ });
+ }
+ return browser.tabs.sendMessage(tab.id, {
+ type: messages.CONSOLE_SHOW_INFO,
+ text: 'Saved current page: ' + item.url,
+ });
+ });
case 'set':
return setCommand(args);
case '':