Files
BSN-Chatsystem/joomla_publish.py
Hermes Agent b3b6b702d1 chore: vollständiger Workspace-Snapshot 03.07.2026
- publish_gatekeeper.py (neues Gatekeeper-System)
- 4 Premium-Artikel: Veggie Match, Berlin 1960, Wild Tiled West, Scream Park
- Alle kumulierten Artikel, Scripts, Medien und Caches
2026-07-03 11:35:39 +02:00

139 lines
8.4 KiB
Python

#!/home/hermes/venv/bin/python3
"""Upload Lacrimosa graphic and create Joomla article"""
import json, base64, urllib.request
# Read token
with open('/home/hermes/.hermes/joomla_token.txt') as f:
TOKEN = f.read().strip()
BASE = 'https://www.brettspiel-news.de/api/index.php/v1'
HEADERS = {
'X-Joomla-Token': TOKEN,
'Content-Type': 'application/json',
'Accept': 'application/vnd.api+json',
}
# Step 1: Upload image
print("Step 1: Upload image...")
with open('/tmp/deal_Lacrimosa.jpg', 'rb') as f:
b64 = base64.b64encode(f.read()).decode()
payload = json.dumps({'path': 'Spiele/2026/deal_lacrimosa_20260703.jpg', 'content': b64}).encode()
req = urllib.request.Request(f'{BASE}/media/files', data=payload, headers=HEADERS, method='POST')
resp = urllib.request.urlopen(req)
result = resp.read().decode()
print(f"Upload response: {result[:200]}")
# Step 2: Create article (state=0, catid=61, access=6)
print("\nStep 2: Create article...")
title = "Mozarts letztes Requiem \u2013 und du musst es finanzieren: Lacrimosa heute 73 \u0025 reduziert"
introtext = """<p>Mozart ist tot. Seine letzte bewusste Handlung: die Komposition des Lacrimosa-Satzes seines Requiems. Ihr seid seine Mäzene \u2013 und müsst nun mit der Witwe verhandeln, das unvollendete Werk fertigstellen und euer eigenes Vermächtnis sichern. <strong>Lacrimosa</strong>, das atmosphärische Eurogame von Gerard Ascensi und Ferran Renalias, ist heute bei der Spiele-Offensive für <strong>14,99 \u20ac</strong> zu haben \u2013 satte <strong>73 \u0025 unter UVP</strong> (55,52 \u20ac).</p>
<hr id="system-readmore" />"""
fulltext = """<h2>Das Spiel: Mozart, Tod und tiefe Strategie</h2>
<p>Lacrimosa (2022, KOSMOS/Devir) ist ein strategisches Kennerspiel f\u00fcr 1\u20134 Personen ab 14 Jahren mit einer Spieldauer von etwa 90 Minuten. Es verbindet ein ungew\u00f6hnliches historisch-musikalisches Thema mit sauberen Eurogame-Mechaniken: Ressourcenmanagement, Karten-Upgrade und Area Control.</p>
<p>Die Spieler schl\u00fcpfen in die Rolle von M\u00e4zenen, die Mozarts letztes Werk finanzieren und gleichzeitig ihr eigenes Verm\u00e4chtnis sichern wollen. \u00dcber f\u00fcnf Runden sammelt ihr Ressourcen, verbessert Karten, reist durch Europa und versucht, die Erinnerung an den gro\u00dfen Komponisten mitzugestalten \u2013 oder ihn in Vergessenheit geraten zu lassen.</p>
<div class="bsn-infobox">
<h3>Lacrimosa \u2013 Fakten</h3>
<table class="bsn-table">
<tr><td>Designer</td><td>Gerard Ascensi, Ferran Renalias</td></tr>
<tr><td>Verlag</td><td>KOSMOS (Deutsch), Devir (Original)</td></tr>
<tr><td>Spieler</td><td>1\u20134</td></tr>
<tr><td>Alter</td><td>ab 14 Jahren</td></tr>
<tr><td>Spieldauer</td><td>90 Minuten</td></tr>
<tr><td>BGG Rating</td><td>7,6 / 10 (5.077 Bewertungen)</td></tr>
<tr><td>BGG Weight</td><td>3,16 / 5</td></tr>
<tr><td>Platzierung</td><td>Rang 617 insgesamt, Rang 365 Strategie</td></tr>
</table>
</div>
<h2>F\u00fcr wen ist das Spiel?</h2>
<p>Lacrimosa richtet sich an erfahrene Vielspieler, die Wert auf thematische Tiefe und atmosph\u00e4rische Produktion legen. Mit einem BGG-Weight von 3,16 liegt es im soliden Kennerspiel-Bereich \u2013 komplex genug f\u00fcr echte Entscheidungen, aber nicht so schwergewichtig wie ein Lacerda.</p>
<p>Die Regeln sind nach etwa 30 Minuten erkl\u00e4rt, die strategische Tiefe entfaltet sich \u00fcber mehrere Partien. Besonders hervorzuheben: der Solo-Modus, der vom Spiel selbst in einer BGG-Umfrage mit 78 \u0025 Zustimmung bewertet wurde.</p>
<blockquote>
<p>\u201eEin wundersch\u00f6nes Spiel mit tollem Thema und noch besserer Mechanik. Endlich mal ein Eurogame, das nicht austauschbar wirkt.\u201c \u2013 BGG-Nutzer</p>
</blockquote>
<h2>Die nackten Zahlen</h2>
<table style="border-collapse: collapse; width: 100%; max-width: 500px;">
<tr style="background: #20228a; color: #fff;">
<th style="padding: 8px; text-align: left; border: 1px solid #ddd;">Detail</th>
<th style="padding: 8px; text-align: right; border: 1px solid #ddd;">Wert</th>
</tr>
<tr>
<td style="padding: 8px; border: 1px solid #ccc;">Aktueller Preis (Spiele-Offensive)</td>
<td style="padding: 8px; text-align: right; border: 1px solid #ccc; font-weight: bold; color: #b12704;">14,99 \u20ac</td>
</tr>
<tr style="background: #f9f9f9;">
<td style="padding: 8px; border: 1px solid #ccc;">UVP (unverbindliche Preisempfehlung)</td>
<td style="padding: 8px; text-align: right; border: 1px solid #ccc; text-decoration: line-through; color: #999;">55,52 \u20ac</td>
</tr>
<tr>
<td style="padding: 8px; border: 1px solid #ccc;">Ersparnis</td>
<td style="padding: 8px; text-align: right; border: 1px solid #ccc; font-weight: bold; color: #b12704;">40,53 \u20ac (\u221273 \u0025)</td>
</tr>
<tr style="background: #f9f9f9;">
<td style="padding: 8px; border: 1px solid #ccc;">Preis bei Amazon (KOSMOS)</td>
<td style="padding: 8px; text-align: right; border: 1px solid #ccc;">~45 \u20ac</td>
</tr>
</table>
<h2>Was die Community sagt</h2>
<p>Lacrimosa wird auf BGG mit soliden 7,6 von 10 Punkten bei \u00fcber 5.000 Bewertungen sehr gut bewertet. Gelobt werden vor allem:</p>
<ul>
<li><strong>Das Thema:</strong> Mozart, Requiem, M\u00e4zenatentum \u2013 kein austauschbares Setting, sondern historisch verankert</li>
<li><strong>Die Produktion:</strong> Enrique Corominas\u2019 Illustrationen und Jared Blands Karten-Design verleihen dem Spiel eine d\u00fcstere, barocke Atmosph\u00e4re</li>
<li><strong>Die Solo-Tauglichkeit:</strong> Der Automa-Modus gilt als einer der besseren im Eurogame-Bereich</li>
<li><strong>Wiederspielbarkeit:</strong> F\u00fcnf Runden, asymmetrische Startbedingungen, mehrere Wege zum Sieg</li>
</ul>
<p>Kritische Stimmen bem\u00e4ngeln die vergleichsweise geringe Spielerinteraktion \u2013 ein klassisches Multiplayer-Solit\u00e4re-Argument, das viele Eurogames betrifft.</p>
<h2>Fazit: Lohnt sich der Deal?</h2>
<p>F\u00fcr <strong>14,99 \u20ac</strong> bei einer UVP von 55,52 \u20ac ist Lacrimosa ein <strong>absoluter No-Brainer</strong>. Das Spiel kostet im normalen Handel selten unter 40 \u20ac \u2013 selbst die englische Devir-Version liegt bei Amazon aktuell um die 45 \u20ac. Mit 73 \u0025 Rabatt und 40,53 \u20ac Ersparnis ist dies mit Abstand der beste Preis, den wir je f\u00fcr Lacrimosa gesehen haben.</p>
<p style="text-align: center; margin: 2rem 0;">
<a href="https://www.spiele-offensive.de/index.php?cmd=artikel_anzeigen&aid=1029965&pid=505" target="_blank" rel="noopener" style="display: inline-block; background: #20228a; color: #fff; padding: 14px 32px; border-radius: 6px; text-decoration: none; font-size: 1.1rem; font-weight: bold;">\u27a4 Zum Deal bei Spiele-Offensive \u2013 14,99 \u20ac</a>
</p>
<span style="font-size:1.17em;font-weight:bold;display:block;margin:1em 0;"><strong>Quellen</strong></span>
<ol>
<li><a href="https://boardgamegeek.com/boardgame/348450/lacrimosa" target="_blank">BGG: Lacrimosa (348450)</a> \u2013 Rating, Weight, Community-Reviews (03.07.2026)</li>
<li><a href="https://www.spiele-offensive.de/index.php?cmd=artikel_anzeigen&aid=1029965" target="_blank">Spiele-Offensive: Lacrimosa</a> \u2013 Deal-Preis und UVP (03.07.2026)</li>
<li><a href="https://www.amazon.de/dp/B0C7RKGFYX" target="_blank">Amazon: Lacrimosa (KOSMOS)</a> \u2013 Cover-Bild und Preisvergleich (03.07.2026)</li>
</ol>
<p class="bsn-recherche"><em>Recherchestand: 03. Juli 2026, 09:15 Uhr</em></p>"""
article_payload = json.dumps({
"title": title,
"introtext": introtext,
"fulltext": fulltext,
"catid": 61,
"state": 0,
"access": 6,
"created_by": 560,
"language": "*",
"featured": 1,
"metadesc": "Mozarts letztes Requiem als Brettspiel: Lacrimosa heute 73 % reduziert bei Spiele-Offensive f\u00fcr nur 14,99 \u20ac (UVP 55,52 \u20ac). Kennerspiel mit BGG 7.6.",
"metakey": "Lacrimosa, Mozart, KOSMOS, Devir, Brettspiel, Deal, Angebote, Kennerspiel",
"metadata": {"author": "Daniel Krause", "robots": "index, follow"},
"images": {
"image_intro": "https://www.brettspiel-news.de/images/Spiele/2026/deal_lacrimosa_20260703.jpg#joomlaImage://local-images/Spiele/2026/deal_lacrimosa_20260703.jpg?width=&height="
}
}).encode()
req = urllib.request.Request(f'{BASE}/content/articles', data=article_payload, headers=HEADERS, method='POST')
resp = urllib.request.urlopen(req)
result = resp.read().decode()
print(f"Article response: {result[:500]}")
# Extract article ID
resp_json = json.loads(result)
article_id = resp_json['data']['id']
print(f"\nArticle ID: {article_id}")
print(f"Article URL: https://www.brettspiel-news.de/index.php?option=com_content&view=article&id={article_id}")