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);