Update for freetube app's new (undocumented) behavior change

This commit is contained in:
Andrew S. Rightenburg 2024-04-09 12:33:23 +08:00
parent e1a9675a93
commit 4930adae33
Signed by: rail5
GPG Key ID: A0CB570AB6629159
2 changed files with 19 additions and 11 deletions

View File

@ -4,7 +4,7 @@
"name": "Open with FreeTube",
"description": "Adds a context menu item to open YouTube links in FreeTube",
"author": "rail5",
"version": "1.0",
"version": "1.2",
"browser_specific_settings": {
"gecko": {
"strict_min_version": "60.0a1",

View File

@ -2,10 +2,12 @@
const itemId = "open-with-freetube";
let menuItemCurrentlyExists = false;
browser.menus.onClicked.addListener((info, tab) => {
if (info.menuItemId === itemId) {
// Append 'freetube:' to the beginning of the link & trim everything before "/watch?v="
let freetubelink = "freetube:" + info.linkUrl.slice(info.linkUrl.indexOf("/watch?v="));
// Append 'freetube:' to the beginning of the link
let freetubelink = "freetube:" + info.linkUrl;
// Open the new link
browser.tabs.update(tab.id, {
url: freetubelink
@ -14,17 +16,23 @@ browser.menus.onClicked.addListener((info, tab) => {
});
function createMenuItem() {
browser.menus.create({
id: itemId,
title: "Open with FreeTube",
contexts: ["link"]
});
browser.menus.refresh();
if (!menuItemCurrentlyExists) {
browser.menus.create({
id: itemId,
title: "Open with FreeTube",
contexts: ["link"]
});
browser.menus.refresh();
menuItemCurrentlyExists = true;
}
}
function destroyMenuItem() {
browser.menus.remove(itemId);
browser.menus.refresh();
if (menuItemCurrentlyExists) {
browser.menus.remove(itemId);
browser.menus.refresh();
menuItemCurrentlyExists = false;
}
}
browser.menus.onShown.addListener(info => {