add source page url, open with e key

This commit is contained in:
Johannes
2026-03-13 21:32:54 +01:00
parent 9e1ea6d938
commit dbec447b39
2 changed files with 8 additions and 4 deletions

11
app.py
View File

@@ -38,16 +38,19 @@ def scrape_images(query, page=0):
except requests.RequestException as e: except requests.RequestException as e:
return [], str(e) return [], str(e)
# Bing encodes original image URLs as murl":"https://..." # Bing HTML-encodes image data: purl = source page, murl = image URL
raw_urls = re.findall(r'murl":"(https?://[^&]+)"', resp.text) entries = re.findall(
r'purl":"(https?://[^&]+)".*?murl":"(https?://[^&]+)"',
resp.text,
)
seen = set() seen = set()
images = [] images = []
for img_url in raw_urls: for page_url, img_url in entries:
if img_url in seen: if img_url in seen:
continue continue
seen.add(img_url) seen.add(img_url)
images.append({"url": img_url}) images.append({"url": img_url, "source": page_url})
if len(images) >= 30: if len(images) >= 30:
break break

View File

@@ -246,6 +246,7 @@ document.addEventListener("keydown", e => {
if (e.key === "ArrowRight") next_image(); if (e.key === "ArrowRight") next_image();
else if (e.key === "ArrowLeft") prev_image(); else if (e.key === "ArrowLeft") prev_image();
else if (e.key === "Escape") close_gallery(); else if (e.key === "Escape") close_gallery();
else if (e.key === "e" && images[current_idx]?.source) window.open(images[current_idx].source, "_blank");
}); });
// ── event listeners ──────────────────────────────────────────────────────── // ── event listeners ────────────────────────────────────────────────────────