111 lines
2.0 KiB
JavaScript
111 lines
2.0 KiB
JavaScript
var data = {
|
|
account: "",
|
|
sharebase: ""
|
|
};
|
|
|
|
function SetupAccount(result)
|
|
{
|
|
if(!result.account) {
|
|
console.log("No account in storage.");
|
|
return;
|
|
}
|
|
data.account = result.account;
|
|
|
|
if(data.account.charAt(0) == '@') {
|
|
data.account = data.account.substring(1);
|
|
}
|
|
|
|
var uriparts = data.account.split('@');
|
|
|
|
if(uriparts.length < 2)
|
|
return;
|
|
data.sharebase = 'https://' + uriparts[1] + '/share?text=';
|
|
}
|
|
|
|
browser.storage.local.get("account").then(SetupAccount);
|
|
|
|
browser.contextMenus.create({
|
|
id: "share-link",
|
|
title: browser.i18n.getMessage("menuItemShareLink"),
|
|
contexts: ["link"]
|
|
});
|
|
|
|
browser.contextMenus.create({
|
|
id: "share-page",
|
|
title: browser.i18n.getMessage("menuItemSharePage"),
|
|
contexts: ["page"]
|
|
});
|
|
|
|
browser.contextMenus.create({
|
|
id: "share-image",
|
|
title: browser.i18n.getMessage("menuItemShareImage"),
|
|
contexts: ["image"]
|
|
});
|
|
|
|
browser.contextMenus.create({
|
|
id: "share-frame",
|
|
title: browser.i18n.getMessage("menuItemShareFrame"),
|
|
contexts: ["frame"]
|
|
});
|
|
|
|
browser.contextMenus.create({
|
|
id: "share-selection",
|
|
title: browser.i18n.getMessage("menuItemShareSelection"),
|
|
contexts: ["selection"]
|
|
});
|
|
|
|
browser.contextMenus.onClicked.addListener((info, tab) =>
|
|
{
|
|
var text;
|
|
|
|
if(data.account === "") {
|
|
console.log("Error: No account.");
|
|
return;
|
|
}
|
|
|
|
switch (info.menuItemId) {
|
|
case "share-link": {
|
|
text = info.linkUrl;
|
|
break;
|
|
}
|
|
case "share-page": {
|
|
text = info.pageUrl
|
|
break;
|
|
}
|
|
case "share-image": {
|
|
text = info.srcUrl;
|
|
break;
|
|
}
|
|
case "share-frame": {
|
|
text = info.frameUrl;
|
|
break;
|
|
}
|
|
case "share-selection": {
|
|
text = info.selectionText;
|
|
break;
|
|
}
|
|
default: {
|
|
return;
|
|
}
|
|
}
|
|
|
|
browser.tabs.update({
|
|
"url": data.sharebase + encodeURIComponent(text)
|
|
});
|
|
});
|
|
|
|
browser.runtime.onMessage.addListener( async (msg) => {
|
|
if(msg.key === "getAccount") {
|
|
browser.storage.local.get("account").then(SetupAccount);
|
|
return data.account;
|
|
}
|
|
if(msg.key === "setAccount") {
|
|
browser.storage.local.set({
|
|
account: msg.value
|
|
}).then( result => {
|
|
data.account = msg.value;
|
|
});
|
|
return;
|
|
}
|
|
});
|