Quellen-Bereinigung: Duplikate, Kategorien, Domains, URLs

DB:
- 7 Duplikate deaktiviert (tagesschau Atom, Spiegel, Zeit HTTP,
  BBC/ORF/CNN Subdomain-Duplikate)
- tomshardware + medium deaktiviert (kaum OSINT-relevant)
- Kategorien korrigiert: ft.com/bloomberg→international,
  n-tv→qualitaetszeitung, diverse Tech→fachmedien
- Domain-Spalte normalisiert: feeds.bbci.co.uk→bbc.com,
  rss.sueddeutsche.de→sueddeutsche.de, on.orf.at→orf.at etc.
- Leere URLs bei web_sources gefüllt, Anzeigenamen korrigiert

Code (source_rules.py):
- _DOMAIN_ALIASES Map für Subdomain→kanonische Domain Zuordnung
- _extract_domain() nutzt Alias-Map für konsistente Gruppierung

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-03-04 23:35:33 +01:00
Ursprung 7672bbcad6
Commit 731a66ac80

Datei anzeigen

@@ -169,13 +169,27 @@ def _normalize_url(url: str) -> str:
return url return url
# Subdomain → kanonische Domain Zuordnung
_DOMAIN_ALIASES = {
"feeds.bbci.co.uk": "bbc.com",
"rss.sueddeutsche.de": "sueddeutsche.de",
"on.orf.at": "orf.at",
"rss.orf.at": "orf.at",
"rss.dw.com": "dw.com",
"newsfeed.zeit.de": "zeit.de",
"reutersagency.com": "reuters.com",
"edition.cnn.com": "cnn.com",
"rsshub.app": "apnews.com",
}
def _extract_domain(url: str) -> str: def _extract_domain(url: str) -> str:
"""Domain aus URL extrahieren (ohne www.).""" """Domain aus URL extrahieren (ohne www., mit Alias-Normalisierung)."""
parsed = urlparse(url) parsed = urlparse(url)
domain = parsed.hostname or "" domain = parsed.hostname or ""
if domain.startswith("www."): if domain.startswith("www."):
domain = domain[4:] domain = domain[4:]
return domain return _DOMAIN_ALIASES.get(domain, domain)
def _detect_category(domain: str) -> str: def _detect_category(domain: str) -> str: