From 3cb1cb2613dd8c7cbfb829733832b29e4dfcf73d Mon Sep 17 00:00:00 2001 From: Keep Creating Online Date: Fri, 3 Jan 2025 16:44:28 -0500 Subject: [PATCH] update --- src/script.js | 68 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/src/script.js b/src/script.js index 25db9c0..caf8c93 100644 --- a/src/script.js +++ b/src/script.js @@ -176,26 +176,60 @@ document.addEventListener('DOMContentLoaded', () => { let failureCount = 0; relayUrls.forEach((url) => { - for (const event of loadedEvents) { - try { - const success = pool.publish([url], event); // Publish event to relay - if (success) { - successCount++; - console.log(`Event broadcasted successfully to ${url}`); - statusDiv.innerHTML += `
Event broadcasted successfully to ${url}`; - } else { - failureCount++; - console.error(`Relay ${url} rejected the event.`); - statusDiv.innerHTML += `
Relay ${url} rejected the event.`; + try { + const sub = pool.sub([url], [filter]); + + subscriptions.push(sub); + + sub.on('event', (event) => { + if (!eventIds.has(event.id)) { + switch (event.kind) { + case 0: + console.log('Profile Metadata captured:', event); + break; + case 2: + console.log('Relay Recommendation captured:', event); + break; + case 3: + console.log('Contact List captured:', event); + break; + case 4: + console.log('Encrypted DM captured:', event); + break; + case 30023: + console.log('Long-Form Content captured:', event); + break; + default: + console.log('Other event captured:', event); + } + collectedEvents.push(event); // Store the raw event data + eventIds.add(event.id); } - } catch (err) { - failureCount++; - console.error(`Broadcast failed for ${url}:`, err); - statusDiv.innerHTML += `
Broadcast failed for ${url}: ${err.message}`; - } + }); + + sub.on('eose', () => { + eoseTracker[url] = true; + console.log(`EOSE received from ${url}`); + statusDiv.innerHTML += `
EOSE received from ${url}`; + checkCompletion(); + }); + + sub.on('error', (err) => { + console.error(`Error on ${url}:`, err); + statusDiv.innerHTML += `
Error on ${url}: ${err.message}`; + // Mark the relay as complete to avoid stalling collection + eoseTracker[url] = true; + checkCompletion(); + }); + } catch (err) { + console.error(`Subscription failed for ${url}:`, err); + statusDiv.innerHTML += `
Subscription failed for ${url}: ${err.message}`; + // Mark the relay as complete to avoid stalling collection + eoseTracker[url] = true; + checkCompletion(); } }); - + pool.close(); statusDiv.innerHTML += `
Broadcast complete: ${successCount} success(es), ${failureCount} failure(s).`; }