import type { SukebeiMagnet } from "@/crawlers/sukebei.db"; export interface MagnetDiff { added: SukebeiMagnet[]; stillPresent: SukebeiMagnet[]; } /** * Split the current sukebei result against a known set of magnetIds. * * - `added` are magnets we have never seen before for this work. * - `stillPresent` are already-known magnets re-observed this run. * * Sukebei never "unlists" cleanly, so we do not surface a `removed` set. */ export const diffMagnets = (previousIds: Set, current: SukebeiMagnet[]): MagnetDiff => { const added: SukebeiMagnet[] = []; const stillPresent: SukebeiMagnet[] = []; for (const m of current) { if (previousIds.has(m.magnetId)) stillPresent.push(m); else added.push(m); } return { added, stillPresent }; };