108 lines
3.8 KiB
Python
108 lines
3.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Automatischer Fix für article-data.json Fetch-URLs in Flask
|
|
Ersetzt relative URLs durch /static/ URLs
|
|
"""
|
|
|
|
import re
|
|
import os
|
|
from pathlib import Path
|
|
|
|
def fix_html_file(html_path):
|
|
"""Ersetzt die alten Fetch-URLs durch die neuen Flask-URLs"""
|
|
|
|
if not os.path.exists(html_path):
|
|
print(f"❌ Datei nicht gefunden: {html_path}")
|
|
return False
|
|
|
|
print(f"📖 Öffne: {html_path}")
|
|
|
|
with open(html_path, 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
original_content = content
|
|
changes = []
|
|
|
|
# Fix 1: fetch('article-data.json') → fetch('/static/article-data.json')
|
|
if "fetch('article-data.json')" in content or 'fetch("article-data.json")' in content:
|
|
content = content.replace("fetch('article-data.json')", "fetch('/static/article-data.json')")
|
|
content = content.replace('fetch("article-data.json")', 'fetch("/static/article-data.json")')
|
|
changes.append("✓ article-data.json URL aktualisiert")
|
|
|
|
# Fix 2: fetch('config.json') → fetch('/static/config.json')
|
|
if "fetch('config.json')" in content or 'fetch("config.json")' in content:
|
|
content = content.replace("fetch('config.json')", "fetch('/static/config.json')")
|
|
content = content.replace('fetch("config.json")', 'fetch("/static/config.json")')
|
|
changes.append("✓ config.json URL aktualisiert")
|
|
|
|
# Fix 3: register('service-worker.js') → register('/static/service-worker.js')
|
|
if "register('service-worker.js')" in content or 'register("service-worker.js")' in content:
|
|
content = content.replace("register('service-worker.js')", "register('/static/service-worker.js')")
|
|
content = content.replace('register("service-worker.js")', 'register("/static/service-worker.js")')
|
|
changes.append("✓ service-worker.js URL aktualisiert")
|
|
|
|
if content != original_content:
|
|
# Backup erstellen
|
|
backup_path = html_path + ".backup"
|
|
with open(backup_path, 'w', encoding='utf-8') as f:
|
|
f.write(original_content)
|
|
print(f"💾 Backup erstellt: {backup_path}")
|
|
|
|
# Neue Version speichern
|
|
with open(html_path, 'w', encoding='utf-8') as f:
|
|
f.write(content)
|
|
|
|
print(f"✅ HTML aktualisiert: {html_path}")
|
|
for change in changes:
|
|
print(f" {change}")
|
|
return True
|
|
else:
|
|
print("⚠️ Keine Änderungen notwendig (URLs sind bereits korrekt)")
|
|
return False
|
|
|
|
def check_static_files():
|
|
"""Prüft ob die benötigten Dateien im static/ Ordner sind"""
|
|
print("\n🔍 Prüfe static/ Verzeichnis...")
|
|
|
|
files_to_check = ['article-data.json', 'config.json']
|
|
found = []
|
|
missing = []
|
|
|
|
for filename in files_to_check:
|
|
path = os.path.join('static', filename)
|
|
if os.path.exists(path):
|
|
size = os.path.getsize(path)
|
|
found.append(f" ✓ {filename} ({size} bytes)")
|
|
else:
|
|
missing.append(f" ❌ {filename} (NICHT GEFUNDEN)")
|
|
|
|
for msg in found:
|
|
print(msg)
|
|
for msg in missing:
|
|
print(msg)
|
|
|
|
return len(missing) == 0
|
|
|
|
if __name__ == "__main__":
|
|
print("=" * 60)
|
|
print("Fix für article-data.json Flask-URLs")
|
|
print("=" * 60)
|
|
|
|
html_file = "templates/roll_calculator.html"
|
|
|
|
success = fix_html_file(html_file)
|
|
files_ok = check_static_files()
|
|
|
|
print("\n" + "=" * 60)
|
|
if success or files_ok:
|
|
print("✅ Fix abgeschlossen!")
|
|
print("\n📝 Nächste Schritte:")
|
|
print(" 1. Browser neuladen (Ctrl+Shift+R)")
|
|
print(" 2. Öffne Browser Console (F12)")
|
|
print(" 3. Du solltest sehen:")
|
|
print(" 'Article data loaded: XXX items'")
|
|
print(" 'Config updated from file'")
|
|
else:
|
|
print("⚠️ Keine Änderungen nötig")
|
|
print("=" * 60)
|