VG-Wort: Zählmarken-Pool-Integration via subprocess

- _handle_publish() ruft vgwort_pool.py get auf
- Pixel-Tag auto in articletext vor </article> eingebaut
- Live getestet: Pixel korrekt (15371, vg09.met.vgwort.de)
- Pool-Script: ~/.hermes/vgwort_pool.py
This commit is contained in:
Hermes Agent
2026-06-18 22:39:10 +02:00
parent 2f356ddfb8
commit eb59327086
+25 -6
View File
@@ -948,13 +948,32 @@ h1{color:#c0392b;}p{color:#888;}</style></head>
# Generate alias from title # Generate alias from title
alias = re.sub(r'[^a-z0-9]+', '-', title.lower().strip())[:100] alias = re.sub(r'[^a-z0-9]+', '-', title.lower().strip())[:100]
# ── Inject VG-Wort pixel ─────────────────────────────────── # ── VG-Wort Zählmarke aus Pool holen & einbauen ─────────
if VG_WORT_PIXEL_HTML and VG_WORT_COUNTER_ID: vgwort_pixel_html = ""
# Insert pixel right before closing </article> or at the end of body try:
if '</article>' in article_body: import subprocess
article_body = article_body.replace('</article>', f'{VG_WORT_PIXEL_HTML}\n</article>') result = subprocess.run(
["python3", os.path.expanduser("~/.hermes/vgwort_pool.py"), "get"],
capture_output=True, text=True, timeout=30
)
if result.returncode == 0:
pixel_data = json.loads(result.stdout)
if pixel_data.get("ok"):
vgwort_pixel_html = pixel_data.get("pixel_html", "")
print(f"[VG-Wort] Zählmarke {pixel_data.get('public_id')} eingebaut, "
f"Pool: {pixel_data.get('pool_remaining')} übrig", flush=True)
else: else:
article_body = article_body.rstrip() + f'\n{VG_WORT_PIXEL_HTML}\n' print(f"[VG-Wort] FEHLER: {pixel_data.get('error', 'unbekannt')}", flush=True)
else:
print(f"[VG-Wort] Pool-Script fehlgeschlagen: {result.stderr}", flush=True)
except Exception as e:
print(f"[VG-Wort] Ausnahme: {e}", flush=True)
if vgwort_pixel_html:
if '</article>' in article_body:
article_body = article_body.replace('</article>', f'{vgwort_pixel_html}\n</article>')
else:
article_body = article_body.rstrip() + f'\n{vgwort_pixel_html}\n'
# ── Joomla API call ───────────────────────────────────────── # ── Joomla API call ─────────────────────────────────────────
headers = { headers = {