Refactor(helpers): Remove duplicate code

This commit is contained in:
2025-11-07 14:59:40 +01:00
parent f6a5e0e160
commit 84410a41c1

View File

@@ -1552,43 +1552,6 @@ def scrape_website_details(url):
return f"k.A. (Allg. Fehler: {type(e).__name__})"
def is_valid_wikipedia_article_url(url):
"""
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
def is_valid_wikipedia_article_url(url):
"""
Prüft, ob eine Wikipedia-URL auf einen tatsächlich existierenden Artikel verweist.