Achims Usenet-App
NNTP-Reader und Binär-Client mit SABnzbd-Integration
- Python
- PySide6
- NNTP
- SQLite
- FTS5
Desktop-Client für Usenet: liest Text-Newsgroups, indexiert deren Header in einer lokalen SQLite-Datenbank mit FTS5-Volltextsuche und schickt markierte Binär-Releases als selbstgebaute NZB an ein lokales SABnzbd. Hybride Architektur — direkt am NNTP-Server für Reader-Funktionen, Indexer-API später optional.
Features
- Verbindung zum Newshosting via
pynntp(TLS:563), 8 parallele Reader-Connections im Default - Inkrementeller Header-Sync mit Chunk-basiertem
XOVER, abbrechbar, parallelisierbar (gemessen 1,7× Speedup bei 4 Workern) - Lokaler Cache: SQLite + FTS5 auf
subjectundfrom, chronologisch überdate_unix-Spalte sortierbar - Group-Browser: alle ~111 k Newshosting-Gruppen filterbar, Multi-Select-Abo
- Header-View mit Release-Grouping: yEnc-Segmente werden zu Releases zusammengefasst statt 1 Zeile pro Segment
- Bild-Vorschau (yEnc-Decode mit
sabyenc3) - NZB-Builder aus markierten Releases, direkt-Übergabe an SABnzbd
- Sync-Modi: inkrementell, letzte N Artikel, seit Datum (per Bisection), Vollsync — mit Pro-Lauf-Cap
Großgruppen-Härtung
Für Gruppen mit Millionen Headern wurde mehrfach optimiert:
asynchrone Dialoge (warn_later/info_later via QTimer),
Bulk-Delete ohne FTS-Trigger, abbrechbarer Parallel-Sync mit
monotonem Präfix-Tracking, FTS-Suche per JOIN statt N+1, chunk-
bounded INSERT-Counts statt Full-Group-Scans.
Stack
Python 3.13, PySide6, qasync (asyncio↔Qt), pynntp, httpx,
lxml, sabyenc3, SQLite mit FTS5.