mirror of
https://github.com/TheAnachronism/docspell.git
synced 2024-11-13 02:31:10 +00:00
88 lines
2.2 KiB
JavaScript
88 lines
2.2 KiB
JavaScript
function onCreated() {
|
|
if (browser.runtime.lastError) {
|
|
console.log(`Error: ${browser.runtime.lastError}`);
|
|
}
|
|
}
|
|
|
|
function onError(error) {
|
|
console.log(`Error: ${error}`);
|
|
}
|
|
|
|
function showResult(response) {
|
|
console.log(`Response: ${response}`);
|
|
var title = browser.i18n.getMessage("notificationTitle") || "Docspell Response";
|
|
var content = "";
|
|
if (response == 0) {
|
|
content = browser.i18n.getMessage("notificationSuccess");
|
|
} else {
|
|
content = browser.i18n.getMessage("notificationFailure");
|
|
}
|
|
browser.notifications.create({
|
|
"type": "basic",
|
|
"iconUrl": browser.extension.getURL("icons/logo-48.png"),
|
|
"title": title,
|
|
"message": content
|
|
});
|
|
}
|
|
|
|
function pushDocspell(items) {
|
|
for (let item of items) {
|
|
console.log(`Pushing to docspell: ${item.filename}`);
|
|
var sending = browser.runtime.sendNativeMessage("docspell", item.filename);
|
|
sending.then(showResult, onError);
|
|
}
|
|
}
|
|
|
|
function onStartedDownload(id) {
|
|
console.log(`Started downloading: ${id}`);
|
|
browser.downloads.onChanged.addListener(function(delta) {
|
|
if (delta.id == id) {
|
|
if (delta.state && delta.state.current === "complete") {
|
|
console.log(`Download ${delta.id} has completed.`);
|
|
var searching = browser.downloads.search({id});
|
|
searching.then(pushDocspell, onError);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function onFailed(error) {
|
|
console.log(`Download failed: ${error}`);
|
|
}
|
|
|
|
function downloadAsFile(url) {
|
|
console.log(`Downloading: ${url}`);
|
|
var downloading = browser.downloads.download({
|
|
url: url,
|
|
saveAs: false,
|
|
conflictAction : 'uniquify'
|
|
});
|
|
downloading.then(onStartedDownload, onFailed);
|
|
}
|
|
|
|
browser.contextMenus.create({
|
|
id: "separator-2",
|
|
type: "separator",
|
|
contexts: ["all"]
|
|
}, onCreated);
|
|
|
|
browser.contextMenus.create({
|
|
id: "docspell-push",
|
|
title: "Download and push to Docspell",
|
|
contexts: ["all"]
|
|
}, onCreated);
|
|
|
|
|
|
browser.contextMenus.onClicked.addListener(function(info, tab) {
|
|
switch (info.menuItemId) {
|
|
case "docspell-push":
|
|
if (info.linkUrl) {
|
|
downloadAsFile(info.linkUrl);
|
|
}
|
|
break;
|
|
|
|
}
|
|
});
|
|
|
|
console.log("Docspell Extension loaded");
|