63 lines
3.4 KiB
Markdown
63 lines
3.4 KiB
Markdown
# Polit-Scraper (Antifaschistisches Info-Tool Rottal-Inn)
|
|
|
|
Ein automatisiertes Überwachungswerkzeug für Webseiten und Nachrichtenportale, spezialisiert auf die Erkennung von rechten Aktivitäten, staatlicher Repression und linker Solidarität im Raum Niederbayern.
|
|
|
|
## 🚀 Kernfunktionen
|
|
|
|
- **Intelligente KI-Analyse:** Nutzt die Gemini-CLI, um Textänderungen aus einer dezidiert linken, antifaschistischen Perspektive zu bewerten.
|
|
- **Geografische Hierarchie:** Priorisiert Meldungen aus dem Kerngebiet (Pfarrkirchen, Eggenfelden) und dem Landkreis Rottal-Inn.
|
|
- **Cloudflare-Bypass:** Dank `cloudscraper` werden auch geschützte Seiten zuverlässig ausgelesen.
|
|
- **Worker-Architektur:** Modulares Design mit parallelen Analyzer-Instanzen (konfigurierbar) und dediziertem Notifier.
|
|
- **Effiziente Datenhaltung:** Nutzt eine SQLite-Datenbank zur Verwaltung von Analyse-Jobs und deren Status.
|
|
- **ntfy- & Signal-Benachrichtigungen:**
|
|
- **Public Kanal:** Relevante politische News.
|
|
- **Admin Kanal:** Technische Fehler, Website-Ausfälle und Statusmeldungen (Passwort-geschützt).
|
|
|
|
## 🛠 Technische Details
|
|
|
|
- **Sprache:** Python 3
|
|
- **Bibliotheken:** `cloudscraper`, `BeautifulSoup4`, `requests`, `python-dotenv`
|
|
- **KI-Integration:** Google Antigravity CLI (`agy`) mit Modell `gemini-3.5-flash`
|
|
- **Datenhaltung:** SQLite (`polit_scraper.db`)
|
|
- **Konfiguration:** `urls.txt` (Ziel-URLs), `gemini_instructions.md` (KI-Regelwerk) und `.env` (Zugangsdaten & Einstellungen)
|
|
|
|
## 📋 Installation & Setup
|
|
|
|
1. **Abhängigkeiten installieren:**
|
|
```bash
|
|
pip install cloudscraper beautifulsoup4 requests python-dotenv --break-system-packages
|
|
```
|
|
2. **Antigravity CLI (agy) & Pfad-Verlinkung:**
|
|
Installiere das `agy` CLI. Da die Worker-Hintergrundprozesse in einer eingeschränkten PATH-Umgebung laufen, muss zwingend ein globaler symbolischer Link angelegt werden:
|
|
```bash
|
|
ln -s /root/.local/bin/agy /usr/bin/agy
|
|
```
|
|
3. **Signal-Bot (Standalone-Client):**
|
|
Der Notifier sendet Benachrichtigungen über `signal-cli` (registriert z. B. als Standalone-Festnetznummer).
|
|
- Um Blockaden durch geänderte Sicherheitsnummern zu verhindern, ist in `notifier.py` das Flag `--trust-new-identities always` hinterlegt.
|
|
- Da `agy` OAuth-Tokens verschlüsselt speichern möchte, muss auf Headless-Servern ein D-Bus- und GNOME-Keyring-Dienst im Hintergrund laufen. Stelle sicher, dass die entsprechenden D-Bus-Umgebungsvariablen (wie `DBUS_SESSION_BUS_ADDRESS`) in der `.env` eingetragen sind.
|
|
4. **Konfiguration (`.env`):**
|
|
Erstelle eine `.env`-Datei basierend auf `.env.example` und setze deine Zugangsdaten (ntfy, Signal-Empfänger, D-Bus) sowie `MAX_ANALYZER_WORKERS`.
|
|
5. **Ziele definieren:**
|
|
URLs in die `urls.txt` eintragen (eine pro Zeile).
|
|
6. **Starten:**
|
|
Der `crawler.py` steuert automatisch die Analyzer-Worker und den Notifier:
|
|
```bash
|
|
python3 crawler.py
|
|
```
|
|
7. **Überwachung:**
|
|
Nutze den Live-Monitor für den Status der Abarbeitung:
|
|
```bash
|
|
python3 monitor.py
|
|
```
|
|
|
|
### KI-Regelwerk testen
|
|
Du kannst die KI-Analyse und dein Regelwerk (`gemini_instructions.md`) manuell testen, ohne Einträge in der Datenbank zu erzeugen oder Benachrichtigungen zu senden:
|
|
```bash
|
|
python3 analyzer.py --test
|
|
```
|
|
Gib den zu prüfenden Text im Terminal ein und beende die Eingabe mit **Strg+D**. Das Resultat der KI wird direkt ausgegeben.
|
|
|
|
## ⚖️ Lizenz & Zweck
|
|
Dieses Tool dient ausschließlich der antifaschistischen Informationsarbeit und dem Monitoring politischer Gegner.
|