bugfix
This commit is contained in:
42
helpers.py
42
helpers.py
@@ -1582,18 +1582,48 @@ def is_valid_wikipedia_article_url(url):
|
|||||||
logger.warning(f"URL-Check fehlgeschlagen (Request-Fehler): {url[:100]} - {e}")
|
logger.warning(f"URL-Check fehlgeschlagen (Request-Fehler): {url[:100]} - {e}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# 12. ALIGNMENT DEMO UTILITY
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
def is_valid_wikipedia_article_url(url):
|
def is_valid_wikipedia_article_url(url):
|
||||||
# ... (Code dieser Funktion bleibt unverändert) ...
|
"""
|
||||||
|
Prüft, ob eine Wikipedia-URL auf einen tatsächlich existierenden Artikel verweist.
|
||||||
|
Erkennt "red links" (nicht existierende Seiten), die trotzdem Status 200 zurückgeben.
|
||||||
|
"""
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
if not url or not "wikipedia.org/wiki/" in url.lower():
|
||||||
|
return False
|
||||||
|
|
||||||
|
headers = {"User-Agent": random.choice(USER_AGENTS)}
|
||||||
|
try:
|
||||||
|
# GET-Request ist nötig, um Weiterleitungen zu folgen
|
||||||
|
response = requests.get(url, timeout=7, allow_redirects=True, headers=headers)
|
||||||
|
|
||||||
|
# 1. Primär-Check: Prüfe die finale URL auf den 'redlink=1' Parameter
|
||||||
|
if 'action=edit&redlink=1' in response.url:
|
||||||
|
logger.warning(f"URL-Check fehlgeschlagen (redlink=1): {url[:100]}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
# 2. Sekundär-Check: Prüfe auf Status-Code und typische "Seite existiert nicht"-Texte
|
||||||
|
if response.status_code == 200:
|
||||||
|
content_lower = response.text.lower()
|
||||||
|
# Deutsche und englische Phrasen für nicht-existente Seiten
|
||||||
|
if "diese seite existiert nicht" in content_lower or "wikipedia does not have an article with this exact name" in content_lower:
|
||||||
|
logger.warning(f"URL-Check fehlgeschlagen (Text 'Seite existiert nicht' gefunden): {url[:100]}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
logger.debug(f"URL-Check erfolgreich (200 OK, kein Redlink): {url[:100]}")
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
logger.warning(f"URL-Check fehlgeschlagen (Status {response.status_code}): {url[:100]}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
logger.warning(f"URL-Check fehlgeschlagen (Request-Fehler): {url[:100]} - {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# 12. ALIGNMENT DEMO UTILITY
|
# 12. ALIGNMENT DEMO UTILITY
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
def alignment_demo(sheet_handler):
|
def alignment_demo(sheet_handler):
|
||||||
"""
|
"""
|
||||||
Schreibt die Header-Struktur (basierend auf v2.1.4, 71 Spalten) ins Google Sheet zur Dokumentation.
|
Schreibt die Header-Struktur (basierend auf v2.1.4, 71 Spalten) ins Google Sheet zur Dokumentation.
|
||||||
Dies ist die Single Source of Truth für die Spaltenbedeutung. Version mit ungekürzten Texten.
|
Dies ist die Single Source of Truth für die Spaltenbedeutung. Version mit ungekürzten Texten.
|
||||||
|
|||||||
Reference in New Issue
Block a user