From 8cc2ae2eb59a35c49f101e4dfc6435d04c652ec1 Mon Sep 17 00:00:00 2001 From: hollow-owl <71401395+hollow-owl@users.noreply.github.com> Date: Mon, 6 May 2024 20:20:11 -0500 Subject: [PATCH 1/3] Disable subscribe button if feed exists in folder --- pages/subscribe/subscribe.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pages/subscribe/subscribe.js b/pages/subscribe/subscribe.js index 6e2279cd..85b3ae6e 100644 --- a/pages/subscribe/subscribe.js +++ b/pages/subscribe/subscribe.js @@ -77,8 +77,17 @@ async function main() { siteUrl }); alert(I18N.getMessage("subscribe_subscribed", folderTitle)); + + document.querySelector("#subscribe-button").disabled = true; }); + // Disable Subscribe Button if the Feed is already in the Folder + const parentId = await Settings.getDefaultFolder(); + const bookmarks = (await browser.bookmarks.search({title: title})).filter(node => node.parentId === parentId); + if (bookmarks.length > 0) { + document.querySelector("#subscribe-button").disabled = true; + } + setPreviewContent(`
${getPreviewHTML(feed)}
`); } catch (e) { console.log(e); From a1caeb551aa1fec3a33cd1542a7461ca64e63ec7 Mon Sep 17 00:00:00 2001 From: hollow-owl <71401395+hollow-owl@users.noreply.github.com> Date: Tue, 7 May 2024 09:27:39 -0500 Subject: [PATCH 2/3] Disable based on feed url rather than folder name --- pages/subscribe/subscribe.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/subscribe/subscribe.js b/pages/subscribe/subscribe.js index 85b3ae6e..b7b1c6b1 100644 --- a/pages/subscribe/subscribe.js +++ b/pages/subscribe/subscribe.js @@ -83,7 +83,7 @@ async function main() { // Disable Subscribe Button if the Feed is already in the Folder const parentId = await Settings.getDefaultFolder(); - const bookmarks = (await browser.bookmarks.search({title: title})).filter(node => node.parentId === parentId); + const bookmarks = (await LivemarkStore.getAll()).filter(x => x.parentId === parentId && x.feedUrl === feedUrl) if (bookmarks.length > 0) { document.querySelector("#subscribe-button").disabled = true; } From 5a081a2a78c3a1f63e79db2846c3e4684ce63148 Mon Sep 17 00:00:00 2001 From: hollow-owl <71401395+hollow-owl@users.noreply.github.com> Date: Wed, 5 Feb 2025 21:00:08 -0600 Subject: [PATCH 3/3] Add a dialog for duplicate feeds --- pages/subscribe/subscribe.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/pages/subscribe/subscribe.js b/pages/subscribe/subscribe.js index b7b1c6b1..8d0b2e5d 100644 --- a/pages/subscribe/subscribe.js +++ b/pages/subscribe/subscribe.js @@ -70,6 +70,21 @@ async function main() { } document.querySelector("#subscribe-button").addEventListener("click", async () => { + + const parentId = await Settings.getDefaultFolder(); + const bookmarks = (await LivemarkStore.getAll()).filter(x => x.parentId === parentId && x.feedUrl === feedUrl) + if (bookmarks.length > 0) { + const [folderProps] = await browser.bookmarks.get(parentId); + let formattedFolderTitle = folderProps.title; + const readPrefix = await Settings.getReadPrefix(); + formattedFolderTitle = PrefixUtils.removePrefix(readPrefix, formattedFolderTitle); + const unreadPrefix = await Settings.getUnreadPrefix(); + formattedFolderTitle = PrefixUtils.removePrefix(unreadPrefix, formattedFolderTitle); + if(!confirm(`Feed already found in ${formattedFolderTitle}. Are you sure you want to add it again?`)) { + return; + } + } + const folderTitle = await browser.runtime.sendMessage({ msg: "subscribe", title, @@ -77,17 +92,8 @@ async function main() { siteUrl }); alert(I18N.getMessage("subscribe_subscribed", folderTitle)); - - document.querySelector("#subscribe-button").disabled = true; }); - // Disable Subscribe Button if the Feed is already in the Folder - const parentId = await Settings.getDefaultFolder(); - const bookmarks = (await LivemarkStore.getAll()).filter(x => x.parentId === parentId && x.feedUrl === feedUrl) - if (bookmarks.length > 0) { - document.querySelector("#subscribe-button").disabled = true; - } - setPreviewContent(`
${getPreviewHTML(feed)}
`); } catch (e) { console.log(e);