#!/usr/bin/env python3 """Final Top-30 SO Deals HTML with verified images.""" import re from datetime import datetime NOW = datetime.now().strftime("%d.%m.%Y %H:%M") OUT = "/home/hermes/workspace/spiele_offensive_top30.html" # Verified images from product pages (fetched individually) img_map = { "1026921": "1026921_3.jpg", "1028349": "Article_000001028349_2025-07-18_13_05_12_921000.jpg", "1030474": "1030474.jpg", "1033566": "Box_894d0185-a2aa-4f24-a3c8-10070ccc6304_2048x2048.webp", "1028724": "1028724.jpg", "1030971": "main.jpg", "1026525": "1026525.jpg", "1029919": "1029919.jpg", "1031362": "Article_000001031362_2024-03-28_07_29_07_259500.jpg", "1034548": "20260505_103317.png", "1024744": "1024744.jpg", "1028441": "1028441.jpg", "1027906": "1027906.jpg", "1027919": "1027919.jpg", "1027138": "1027138.jpg", "1034592": "1031998_main.webp", "1029966": "MAIN.png", "1027053": "1027053.jpg", "1025619": "1025619.jpg", "1029965": "1029965.jpg", "1030312": "1030312.jpg", "1028661": "Article_000001028661_2025-06-12_13_34_35_190800.png", "1013706": "1013706.jpg", "1032108": "Article_000001032108_2026-04-08_14_04_52_467900.png", "1031736": "1031736.png", "1034433": "1034433.jpg", "1030392": "1030392.jpg", "1030811": "1030811.jpg", "1003800": "1003800.jpg", "1034354": "schnipptrickcover_hoch_rgb.jpg", "1024430": "1024430.jpg", "1026552": "cnoxu9yw.jpg", "1029637": "1029637.jpg", "1027584": "1027584.jpg", "1031069": "1031069_main.jpg", "1032911": "1032911.webp", "1034007": "4002051687427.jpg", "1014267": "1014267.jpg", } def img_url(aid): fn = img_map.get(aid) if not fn: return None return "https://mediaservice.happyshops.com/ANY/Article/{}/width=200/{}".format( int(aid).__format__("012d"), fn) with open("/home/hermes/workspace/spiele_offensive_deals.html") as f: dhtml = f.read() deals = [] for m in re.finditer( r'