diff --git a/app/build/fetch-deps.js b/app/build/fetch-deps.js index 89690ba..8460b06 100644 --- a/app/build/fetch-deps.js +++ b/app/build/fetch-deps.js @@ -49,7 +49,10 @@ function get(url, redirects = 5) { if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) { res.resume(); if (!redirects) return reject(new Error(`${url}: too many redirects`)); - return resolve(get(new URL(res.headers.location, url).href, redirects - 1)); + let next; + try { next = new URL(res.headers.location, url).href; } + catch { return reject(new Error(`${url}: bad redirect ${res.headers.location}`)); } + return resolve(get(next, redirects - 1)); } if (res.statusCode !== 200) return reject(new Error(`${url}: HTTP ${res.statusCode}`)); const chunks = []; diff --git a/ui/frame_apk.py b/ui/frame_apk.py index 6ad8536..53fd58a 100644 --- a/ui/frame_apk.py +++ b/ui/frame_apk.py @@ -204,8 +204,8 @@ def apk_info(path): } try: info['icon_png'] = _icon_png(z, names, _icons(app.get('icon'), res)) - except (zipfile.BadZipFile, RuntimeError, OSError): - pass # a missing icon shouldn't stop the install + except Exception: # noqa: BLE001 - any unreadable icon just means no icon + pass return info