dev channel VDS publisher: send a User-Agent (Cloudflare refuses urllib's default with 403)

This commit is contained in:
CRTkafa 2026-10-23 23:17:05 +08:00
parent 39b2f73ad7
commit 9947ea1639

View file

@ -38,8 +38,13 @@ def key(v):
return tuple(int(x) for x in m.groups()) if m else None
def headers():
# Cloudflare refuses urllib's default User-Agent (403)
return {"Authorization": f"token {open(TOKEN).read().strip()}", "User-Agent": "storebound-desktop-dev"}
def get(url, binary=False):
req = urllib.request.Request(url, headers={"Authorization": f"token {open(TOKEN).read().strip()}"})
req = urllib.request.Request(url, headers=headers())
with urllib.request.urlopen(req, timeout=60) as r:
return r.read() if binary else json.loads(r.read())
@ -102,7 +107,7 @@ def publish(rel, v):
assert SAFE.match(dest) and name in sums, name
p = f"{inc}/{dest}"
log(f"{v}: fetching {name}")
req = urllib.request.Request(f"{FORGEJO}/attachments/{assets[name]['uuid']}", headers={"Authorization": f"token {open(TOKEN).read().strip()}"})
req = urllib.request.Request(f"{FORGEJO}/attachments/{assets[name]['uuid']}", headers=headers())
with urllib.request.urlopen(req, timeout=900) as r, open(p, "wb") as f:
shutil.copyfileobj(r, f, 1 << 20)
h = sha256(p)