An example WinUI 3 application demonstrating how to read and download content from Usenet (NNTP) newsgroups.
RadioObtainer connects to a Usenet provider via NNTP, scans newsgroup headers, and downloads yEnc-encoded binary posts. It serves as a reference implementation for working with the NNTP protocol, yEnc decoding, and header caching in a .NET desktop application.
dotnet build
On first launch, go to Settings to configure:
Settings are saved to %LocalAppData%\RadioObtainer\config.json.
Services/
NntpClient.cs — Low-level NNTP protocol implementation
DownloadService.cs — High-level scan and download orchestration
HeaderCache.cs — Compressed header cache persistence
YencDecoder.cs — yEnc binary decoding and multi-part assembly
LibraryScanner.cs — Local file library scanning
ConfigService.cs — JSON configuration persistence
Models/
AppConfig.cs — Configuration and provider models
RadioShow.cs — Domain models (ArticleHeader, PostGroup, etc.)
Pages/
BrowsePage.xaml.cs — Scan headers and download posts
GroupBrowserPage.xaml.cs — Discover newsgroups
LibraryPage.xaml.cs — View downloaded content
SettingsPage.xaml.cs — Configure provider and preferences
This project is provided as an example for educational purposes.