feat(RECIPE-0009): complete iteration 0 — deduplication, notifications, UI improvements

This commit is contained in:
Giancarmine Salucci
2026-02-18 06:00:48 +01:00
parent 40e3fb0c1b
commit dfca35bde2
12 changed files with 864 additions and 395 deletions

View File

@@ -47,6 +47,21 @@ export class QueueManager {
/** Set of subscriber callbacks */
private subscribers: Set<QueueUpdateCallback> = new Set();
/**
* Find queue item by URL
*
* @param url - Instagram URL to search for
* @returns Existing queue item or undefined
*/
findByUrl(url: string): QueueItem | undefined {
for (const item of this.items.values()) {
if (item.url === url) {
return item;
}
}
return undefined;
}
/**
* Add URL to processing queue
*
@@ -60,6 +75,13 @@ export class QueueManager {
* ```
*/
enqueue(url: string): QueueItem {
// Check for duplicate URL
const existingItem = this.findByUrl(url);
if (existingItem) {
console.log(`[QueueManager] Duplicate URL detected: ${url}, returning existing item ${existingItem.id}`);
return existingItem;
}
const now = new Date().toISOString();
const item: QueueItem = {
id: uuidv4(),