feat(x): X (Twitter) als Bezugsquelle pro Lage
X-Accounts werden analog zu Telegram als Quelle (source_type=x_account) konfiguriert und pro Lage ueber include_x zugeschaltet. Der Scraper (feeds/x_parser.py, twscrape) liest Account-Timelines, optional ueber einen HTTP-Proxy mit Fallback auf direkten Abruf ueber die Server-IP. - DB-Migration include_x, Pydantic-Modelle, incidents-Router - Orchestrator-X-Pipeline plus Haiku-Account-Vorselektion - sources-Router /x/validate, x_account-Typ in Stats und Frontend - Lage-Einstellungen: X-Toggle neben international und Telegram - twscrape als Abhaengigkeit Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -97,6 +97,19 @@ TELEGRAM_API_ID = int(os.environ.get("TELEGRAM_API_ID", "0"))
|
||||
TELEGRAM_API_HASH = os.environ.get("TELEGRAM_API_HASH", "")
|
||||
TELEGRAM_SESSION_PATH = os.environ.get("TELEGRAM_SESSION_PATH", "/home/claude-dev/.telegram/telegram_session")
|
||||
|
||||
# X / Twitter (twscrape) -- siehe feeds/x_parser.py
|
||||
# Scraper liest Account-Timelines konfigurierter X-Quellen (source_type='x_account').
|
||||
X_SCRAPER_ENABLED = os.environ.get("X_SCRAPER_ENABLED", "true").lower() == "true"
|
||||
# twscrape-Account-Store (SQLite). Liegt ausserhalb des Repos.
|
||||
X_ACCOUNTS_DB_PATH = os.environ.get("X_ACCOUNTS_DB_PATH", "/home/claude-dev/.x-scraper/accounts.db")
|
||||
# HTTP-Proxy fuer den X-Egress (tinyproxy am RUTX11 ueber WireGuard).
|
||||
# Leer = direkter Abruf ueber die Server-IP. Bei gesetztem Wert prueft der
|
||||
# Parser den Proxy vor jedem Lauf und faellt bei Ausfall auf direkt zurueck.
|
||||
X_PROXY_URL = os.environ.get("X_PROXY_URL", "")
|
||||
# Max. Posts pro Account-Timeline und Recency-Fenster in Tagen.
|
||||
X_POST_CAP_PER_ACCOUNT = int(os.environ.get("X_POST_CAP_PER_ACCOUNT", "40"))
|
||||
X_RECENCY_DAYS = int(os.environ.get("X_RECENCY_DAYS", "14"))
|
||||
|
||||
# Health-Check (genutzt von services/source_health.py)
|
||||
HEALTH_CHECK_USER_AGENT = os.environ.get(
|
||||
"HEALTH_CHECK_USER_AGENT",
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren