diff --git a/js/directMessagesStore.js b/js/directMessagesStore.js index 4e9c4811..45653a2c 100644 --- a/js/directMessagesStore.js +++ b/js/directMessagesStore.js @@ -322,6 +322,3 @@ export async function clearDirectMessageSnapshot(pubkey) { return cleared; } -export function buildDirectMessageSnapshotPayload(entries) { - return normalizeSnapshotList(entries); -} diff --git a/js/reactionCounter.js b/js/reactionCounter.js index 648caef3..c5a2acd2 100644 --- a/js/reactionCounter.js +++ b/js/reactionCounter.js @@ -363,7 +363,7 @@ function getPointerSnapshot(pointerInput) { return snapshotState(state); } -export function ingestLocalReaction({ event, pointer }) { +function ingestLocalReaction({ event, pointer }) { if (!event || !pointer) { return; } @@ -785,7 +785,6 @@ export const reactionCounter = { }, }; -reactionCounter.ingestLocalReaction = ingestLocalReaction; reactionCounter.subscribe = subscribeToPointer; reactionCounter.unsubscribe = unsubscribeFromPointer; reactionCounter.getSnapshot = getPointerSnapshot; diff --git a/js/urlHealthObserver.js b/js/urlHealthObserver.js index 0cce8590..e28806ef 100644 --- a/js/urlHealthObserver.js +++ b/js/urlHealthObserver.js @@ -66,6 +66,3 @@ export function attachUrlHealthBadges(container, onCheck) { } } -export function refreshUrlHealthBadges(container) { - urlCardObserver.refresh(container); -} diff --git a/js/videoEventUtils.js b/js/videoEventUtils.js index 159bf2de..56eeb8a6 100644 --- a/js/videoEventUtils.js +++ b/js/videoEventUtils.js @@ -116,134 +116,3 @@ function traverseForInfoHashes(value, pushInfoHash) { } } -export function parseVideoEventPayload(event = {}) { - const rawContent = typeof event.content === "string" ? event.content : ""; - - let parsedContent = {}; - let parseError = null; - if (rawContent) { - try { - const parsed = JSON.parse(rawContent); - if (parsed && typeof parsed === "object") { - parsedContent = parsed; - } - } catch (err) { - parseError = err; - parsedContent = {}; - } - } - - const title = typeof parsedContent.title === "string" - ? parsedContent.title.trim() - : ""; - const thumbnail = typeof parsedContent.thumbnail === "string" - ? parsedContent.thumbnail.trim() - : ""; - - const magnetCandidates = []; - const infoHashCandidates = []; - const urlCandidates = []; - - const pushUnique = (arr, value) => { - if (!value || typeof value !== "string") return; - const trimmed = value.trim(); - if (!trimmed || arr.includes(trimmed)) return; - arr.push(trimmed); - }; - - const pushInfoHash = (candidate) => { - if (!candidate) return; - const normalized = candidate.toLowerCase(); - if (!/^[0-9a-f]{40}$/.test(normalized)) { - return; - } - if (infoHashCandidates.includes(normalized)) { - return; - } - infoHashCandidates.push(normalized); - }; - - const collectMagnetOrInfoHash = (value) => { - if (typeof value !== "string") { - return; - } - const trimmed = value.trim(); - if (!trimmed) { - return; - } - - if (MAGNET_URI_PATTERN.test(trimmed)) { - pushUnique(magnetCandidates, trimmed); - } - - extractInfoHashesFromString(trimmed, pushInfoHash); - - const urnMatch = trimmed.match(/^urn:btih:([0-9a-z]+)$/i); - if (urnMatch) { - pushInfoHash(urnMatch[1]); - } - }; - - if (typeof parsedContent.magnet === "string") { - collectMagnetOrInfoHash(parsedContent.magnet); - } - if (typeof parsedContent.url === "string") { - const parsedUrl = parsedContent.url.trim(); - if (parsedUrl && parsedUrl !== thumbnail) { - // Keep this guard so we don't duplicate thumbnail URLs in the playable URL list. - pushUnique(urlCandidates, parsedUrl); - } - // Legacy bitvid events sometimes embedded magnets/info-hashes in the URL field, so treat it accordingly. - collectMagnetOrInfoHash(parsedUrl); - } - - const tags = Array.isArray(event.tags) ? event.tags : []; - const urlTagKeys = new Set(["r", "url", "u"]); - for (const tag of tags) { - if (!Array.isArray(tag) || tag.length < 2) continue; - const key = typeof tag[0] === "string" ? tag[0] : ""; - const value = typeof tag[1] === "string" ? tag[1] : ""; - if (!value) continue; - - if (value.toLowerCase().startsWith("magnet:")) { - collectMagnetOrInfoHash(value); - continue; - } - - if (urlTagKeys.has(key) && /^https?:\/\//i.test(value)) { - pushUnique(urlCandidates, value); - } - - collectMagnetOrInfoHash(value); - } - - traverseForInfoHashes(parsedContent, pushInfoHash); - - const magnet = magnetCandidates.find(Boolean) || ""; - const infoHash = infoHashCandidates.find(Boolean) || ""; - const url = - urlCandidates.find( - (candidate) => candidate && !candidate.toLowerCase().startsWith("magnet:") - ) || ""; - - const rawVersion = parsedContent.version; - let version = 0; - if (typeof rawVersion === "number" && Number.isFinite(rawVersion)) { - version = rawVersion; - } else if (typeof rawVersion === "string") { - const parsedVersion = Number(rawVersion); - if (!Number.isNaN(parsedVersion)) { - version = parsedVersion; - } - } - - return { - parsedContent, - parseError, - title, - url, - magnet, - infoHash, - version, - }; -}