From e5883cd53c4dcdeec0091b0e875690335031b256 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 13 May 2026 13:36:57 -0400 Subject: [PATCH] fix(launcher): skip url files in sync --- .../(launcher)/launcher_background_sync.svelte | 16 ++++++++++++++-- .../(launcher)/launcher_file_cont.svelte | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/routes/events/[event_id]/(launcher)/launcher_background_sync.svelte b/src/routes/events/[event_id]/(launcher)/launcher_background_sync.svelte index b3f7262f..6f5bb1bd 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_background_sync.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_background_sync.svelte @@ -24,6 +24,16 @@ let sync_results: Record = $state({}); let sync_stats = $state({ total: 0, cached: 0, missing: 0 }); let last_heartbeat: string | null = $state(null); +function is_url_file(file_obj: any): boolean { + const filename = (file_obj?.filename ?? '') as string; + const extension = (file_obj?.extension ?? '').toLowerCase(); + return ( + filename.startsWith('https://') || + filename.startsWith('http://') || + extension === 'url' + ); +} + // Loop Timings (Visible in UI) // WHY: Session was originally 15s which combined with the SWR background-refresh // pattern caused a continuous API call every 15s even on cache hits. 60s is still @@ -294,11 +304,13 @@ async function run_sync_cycle() { .anyOf(all_for_ids) .toArray(); - sync_stats.total = files.length; + const cacheable_files = files.filter((file_obj) => !is_url_file(file_obj)); + + sync_stats.total = cacheable_files.length; let cached_count = 0; let missing_count = 0; - for (const file_obj of files) { + for (const file_obj of cacheable_files) { // Re-check pause flag each iteration — a sync cycle can run for many // seconds if there are missing files, so we must honour a pause request // mid-loop rather than waiting for the entire batch to finish. diff --git a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte index 58d8b033..5b51392d 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte @@ -110,7 +110,8 @@ let is_online: boolean = $state(typeof navigator !== 'undefined' ? navigator.onL */ const is_url = $derived( (event_file_obj?.filename ?? '').startsWith('https://') || - (event_file_obj?.filename ?? '').startsWith('http://') + (event_file_obj?.filename ?? '').startsWith('http://') || + (event_file_obj?.extension ?? '').toLowerCase() === 'url' ); let screen_saver_exts = ['jpg', 'png', 'PNG', 'webp'];