From 7eae0cee9099b2912a3586a7ba6edf7ee3aa9ffb Mon Sep 17 00:00:00 2001 From: Laan Tungir Date: Thu, 24 Sep 2026 16:29:17 -0400 Subject: [PATCH] Fix blossom server list parsing: treat plain BUD-03 server tags as upload-capable --- www/js/blossom-ui.mjs | 17 +++++++++++++++-- www/js/version.json | 6 +++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/www/js/blossom-ui.mjs b/www/js/blossom-ui.mjs index 70d9c6b..03bea77 100644 --- a/www/js/blossom-ui.mjs +++ b/www/js/blossom-ui.mjs @@ -187,10 +187,23 @@ function parseBlossomListEvent(event) { const url = normalizeUrl(tag[1]); if (!url) continue; + // BUD-03 defines only `["server", ""]` tags — there is no standard + // `upload`/`mirror` marker. A plain server tag means a general-purpose + // server that clients MUST upload to (BUD-03 "Client Upload + // Implementation"). The `upload`/`mirror` markers are a non-standard + // extension used by some clients (e.g. Amethyst) to express intent. + // + // Therefore: a server is upload-capable unless it is explicitly marked + // mirror-only. This keeps standard BUD-03 lists (no markers) working + // while still honoring explicit `mirror`-only entries. + const hasUploadMarker = tag.includes('upload'); + const hasMirrorMarker = tag.includes('mirror'); + const upload = hasUploadMarker || !hasMirrorMarker; + nextServers.push({ url, - upload: tag.includes('upload'), - mirror: tag.includes('mirror'), + upload, + mirror: hasMirrorMarker, healthy: false, warning: false, healthStatus: 0, diff --git a/www/js/version.json b/www/js/version.json index 749c69e..4f66af1 100644 --- a/www/js/version.json +++ b/www/js/version.json @@ -1,5 +1,5 @@ { - "VERSION": "v0.7.106", - "VERSION_NUMBER": "0.7.106", - "BUILD_DATE": "2026-09-17T15:17:21.161Z" + "VERSION": "v0.7.107", + "VERSION_NUMBER": "0.7.107", + "BUILD_DATE": "2026-09-24T20:29:17.829Z" }