From e147bbab3ab75a819afef2d5a4cb2702a973353e Mon Sep 17 00:00:00 2001 From: cho Date: Sun, 10 Mar 2024 00:55:53 -0800 Subject: [PATCH] added image feed deduplication based on src metadata --- web/js/imageFeed.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/web/js/imageFeed.js b/web/js/imageFeed.js index 3a77c29..b81089d 100644 --- a/web/js/imageFeed.js +++ b/web/js/imageFeed.js @@ -208,6 +208,7 @@ app.registerExtension({ name: "pysssss.ImageFeed", setup() { let visible = true; + const seenImages = new Map(); const showButton = $el("button.comfy-settings-btn", { textContent: "🖼️", style: { @@ -309,6 +310,13 @@ app.registerExtension({ }, }); + const deduplicateFeed = app.ui.settings.addSetting({ + id: "pysssss.ImageFeed.Deduplication", + name: "🐍 Image Feed Deduplication", + defaultValue: false, + type: "boolean" + }); + const clearButton = $el("button.pysssss-image-feed-btn.clear-btn", { textContent: "Clear", onclick: () => imageList.replaceChildren(), @@ -416,6 +424,14 @@ app.registerExtension({ } for (const src of detail.output.images) { + if (deduplicateFeed.value) { + // deduplicate the feed by ignoring images with the same filename/type/subfolder + const fingerprint = JSON.stringify({filename: src.filename, type: src.type, subfolder: src.subfolder}); + if (seenImages.has(fingerprint)) + continue; + seenImages.set(fingerprint, true); + } + const href = `./view?filename=${encodeURIComponent(src.filename)}&type=${ src.type }&subfolder=${encodeURIComponent(src.subfolder)}&t=${+new Date()}`;