beep
This commit is contained in:
36
apps/web/scripts/verify-images.py
Normal file
36
apps/web/scripts/verify-images.py
Normal file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Verify all plant image URLs work."""
|
||||
import json
|
||||
import urllib.parse
|
||||
import urllib.request
|
||||
import urllib.error
|
||||
import time
|
||||
import sys
|
||||
|
||||
with open('src/data/plants.json') as f:
|
||||
plants = json.load(f)
|
||||
|
||||
def check_url(url):
|
||||
time.sleep(0.5)
|
||||
req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
|
||||
try:
|
||||
resp = urllib.request.urlopen(req, timeout=10)
|
||||
ct = resp.headers.get('Content-Type', '')
|
||||
cl = resp.headers.get('Content-Length', '?')
|
||||
if 'image' in ct:
|
||||
return (True, f'HTTP {resp.status} {ct} {cl}B')
|
||||
return (False, f'not image: {ct}')
|
||||
except urllib.error.HTTPError as e:
|
||||
return (False, f'HTTP {e.code}')
|
||||
except Exception as e:
|
||||
return (False, str(e))
|
||||
|
||||
all_ok = True
|
||||
for plant in plants:
|
||||
ok, msg = check_url(plant['imageUrl'])
|
||||
status = '✅' if ok else '❌'
|
||||
if not ok:
|
||||
all_ok = False
|
||||
print(f' {plant["id"]:20s} {status} {msg}')
|
||||
|
||||
sys.exit(0 if all_ok else 1)
|
||||
Reference in New Issue
Block a user