Files
BSN-Chatsystem/insert_retro_links.py
T

75 lines
2.6 KiB
Python

#!/usr/bin/env python3
"""Insert partner-shop affiliate boxes into retro articles just before <h2>Quellen</h2>."""
import sys, os
WORKSPACE = "/home/hermes/workspace"
LINKS_DIR = "/tmp/retro_links"
# Map: safe_filename (in /tmp/retro_links/) -> article filename
GAMES = [
("Gloomhaven", "artikel_gloomhaven_retro_2026-06-15.html"),
("Spirit_Island", "artikel_spirit_island_retro_2026-06-15.html"),
("Wingspan", "artikel_wingspan_retro_2026-06-15.html"),
("Root", "artikel_root_retro_2026-06-15.html"),
("Nemesis", "artikel_nemesis_retro_2026-06-15.html"),
("7th_Continent", "artikel_7th_continent_retro_2026-06-15.html"),
("Tainted_Grail", "artikel_tainted_grail_retro_2026-06-15.html"),
("Sleeping_Gods", "artikel_sleeping_gods_retro_2026-06-15.html"),
("Oathsworn", "artikel_oathsworn_retro_2026-06-15.html"),
("Blood_on_the_Clocktower", "artikel_blood_on_the_clocktower_retro_2026-06-15.html"),
("Earthborne_Rangers", "artikel_earthborne_rangers_retro_2026-06-15.html"),
("Captain_Sonar", "artikel_captain_sonar_retro_2016_2026-06-12.html"),
("Vast-_The_Crystal_Caverns", "artikel_vast_crystal_caverns_retro_2016_2026-06-12.html"),
("The_Colonists", "artikel_the_colonists_retro_2016_2026-06-12.html"),
]
inserted = 0
skipped = 0
for safe_name, article_file in GAMES:
snippet_path = os.path.join(LINKS_DIR, f"{safe_name}.html")
article_path = os.path.join(WORKSPACE, article_file)
if not os.path.exists(snippet_path):
print(f"SKIP {article_file}: no snippet at {snippet_path}")
skipped += 1
continue
if not os.path.exists(article_path):
print(f"SKIP {article_file}: article not found")
skipped += 1
continue
with open(snippet_path) as f:
snippet = f.read().strip()
if not snippet or 'affiliate-box' not in snippet:
print(f"SKIP {article_file}: snippet empty or invalid")
skipped += 1
continue
with open(article_path) as f:
article = f.read()
if 'affiliate-box' in article:
print(f"SKIP {article_file}: already has affiliate box")
skipped += 1
continue
# Insert before <h2>Quellen</h2>
if '<h2>Quellen</h2>' not in article:
print(f"WARN {article_file}: no <h2>Quellen</h2> found, skipping")
skipped += 1
continue
article = article.replace('<h2>Quellen</h2>', snippet + '\n\n<h2>Quellen</h2>', 1)
with open(article_path, 'w') as f:
f.write(article)
print(f"OK {article_file}")
inserted += 1
print(f"\nDone. Inserted: {inserted}, Skipped: {skipped}")