fix: QC-Ratings aus 7 älteren Artikeln entfernt (CHECK 10)
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Fix article HTML format for Article-Server compatibility.
|
||||
Ensures: <p class="meta"> date, <meta name="description">, <meta name="keywords">
|
||||
Run: python3 fix_article_format.py /home/hermes/workspace/artikel.html
|
||||
"""
|
||||
import sys, re, os
|
||||
from datetime import datetime
|
||||
|
||||
def fix_article(filepath):
|
||||
with open(filepath, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
changed = False
|
||||
|
||||
# 1. Fix <div class="meta"> → <p class="meta">
|
||||
if re.search(r'<div class="meta">([^<]+)</div>', content):
|
||||
content = re.sub(r'<div class="meta">([^<]+)</div>', r'<p class="meta">\1</p>', content)
|
||||
changed = True
|
||||
print(f" ✓ <div class=\"meta\"> → <p class=\"meta\">")
|
||||
|
||||
# 2. Add <p class="meta"> if missing (using dateline or default)
|
||||
if '<p class="meta">' not in content:
|
||||
date_str = datetime.now().strftime("%d. %B %Y")
|
||||
# Try to extract date from dateline
|
||||
dl = re.search(r'<p class="dateline">([^<]+)</p>', content)
|
||||
if dl:
|
||||
date_str = dl.group(1).split('·')[0].strip()
|
||||
# Insert after <body> or after <h1>
|
||||
meta_line = f'<p class="meta">{date_str} · Lesezeit: ca. 5 Minuten</p>\n'
|
||||
if '<h1>' in content:
|
||||
content = re.sub(r'(</h1>\n)', r'\1' + meta_line, content, count=1)
|
||||
else:
|
||||
content = re.sub(r'(<body>\n)', r'\1' + meta_line, content, count=1)
|
||||
changed = True
|
||||
print(f" ✓ <p class=\"meta\"> hinzugefügt: {date_str}")
|
||||
|
||||
# 3. Add <meta name="description"> if missing
|
||||
if '<meta name="description" content="' not in content:
|
||||
title_m = re.search(r'<title>(.*?)</title>', content)
|
||||
if title_m:
|
||||
title = title_m.group(1).strip()
|
||||
desc = title[:160] + ('…' if len(title) > 160 else '')
|
||||
desc_tag = f'<meta name="description" content="{desc}">\n'
|
||||
content = re.sub(r'(<title>.*?</title>\n)', r'\1' + desc_tag, content, count=1)
|
||||
changed = True
|
||||
print(f" ✓ <meta name=\"description\"> hinzugefügt")
|
||||
|
||||
# 4. Add <meta name="keywords"> if missing
|
||||
if '<meta name="keywords" content="' not in content:
|
||||
kw_tag = '<meta name="keywords" content="Brettspiel, News, brettspiel-news.de">\n'
|
||||
content = re.sub(r'(<meta name="description".*?>\n)', r'\1' + kw_tag, content, count=1)
|
||||
changed = True
|
||||
print(f" ✓ <meta name=\"keywords\"> hinzugefügt")
|
||||
|
||||
if changed:
|
||||
with open(filepath, 'w') as f:
|
||||
f.write(content)
|
||||
return True
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
for f in sys.argv[1:]:
|
||||
print(f"{os.path.basename(f)}:")
|
||||
if fix_article(f):
|
||||
print(f" ✅ Gefixt")
|
||||
else:
|
||||
print(f" ✓ Bereits korrekt")
|
||||
Reference in New Issue
Block a user