How vojtechgero/animelistwpf works
AnimeListWpf is a desktop anime and manga collection manager. Users search or enter a MAL ID to add titles, then browse, filter, sort, track progress, refresh metadata, and manage a JSON-backed list. It also imports title names by searching MAL and exposes statistics and export features. The sampled code confirms the main persistence, lookup, and update flows; some UI wiring and unsampled window behavior are represented only where the tree supports a path.
Main entry points: MainWindow.xaml.cs Collection window · MalContext.cs MAL lookup client · AddWindow.xaml.cs Add title window · FileHandleWindow.xaml.cs Text import window
Components 21
Desktop UI
- Collection window
AnimeListWpf/MainWindow.xaml.cs - Search and details
AnimeListWpf/Views/UserControls/SearchAndDescription.xaml.cs - Add title window
AnimeListWpf/Views/AddWindow.xaml.cs - Text import window
AnimeListWpf/Views/FileHandleWindow.xaml.cs - Metadata update window
AnimeListWpf/Views/UpdateWindow.xaml.cs - Statistics window
AnimeListWpf/Views/StatsWindow.xaml - Search result controls
AnimeListWpf/Views/UserControls/AddContent.xaml.cs
Catalog workflows
- Sorting and search
AnimeListWpf/Services/StringOps.cs
Models and storage
- Content models
AnimeListWpf/Models/AContent.cs - Anime model
AnimeListWpf/Models/Anime.cs - Manga model
AnimeListWpf/Models/Manga.cs - Imported record model
AnimeListWpf/Models/UnclassifiedContent.cs - JSON list handler
AnimeListWpf/Services/FileHandler.cs - Content mapper
AnimeListWpf/Services/ContentMapper.cs
External services
- MAL lookup client
AnimeListWpf/Services/MalContext.cs - Image service
AnimeListWpf/Services/ImageService.cs
Other components
- User
- MyAnimeList API
- Image host
- AnimeList JSON
AnimeList.json - Title-name file
Connections 27
- User → Collection window: uses
- Collection window → JSON list handler: loads and saves
- JSON list handler → AnimeList JSON: reads and writes
- JSON list handler → Content mapper: maps records
- Content mapper → Imported record model: converts from
- Content mapper → Anime model: creates
- Content mapper → Manga model: creates
- Collection window → Sorting and search: filters search
- Collection window → Search and details: shows selection
- Search and details → Collection window: invokes actions
- Collection window → Add title window: opens add flow
- Add title window → MAL lookup client: searches or fetches
- MAL lookup client → MyAnimeList API: requests metadata
- MAL lookup client → Anime model: builds anime
- MAL lookup client → Manga model: builds manga
- Add title window → Search result controls: populates results
- Add title window → Image service: sets image service
- Image service → Image host: downloads images
- Add title window → Collection window: adds chosen title
- Collection window → Text import window: opens text import
- Text import window → Title-name file: reads names
- Text import window → MAL lookup client: searches each name
- Text import window → Collection window: adds matched title
- Collection window → Metadata update window: opens refresh flow
- Metadata update window → MAL lookup client: fetches current metadata
- Collection window → Statistics window: opens statistics
- Collection window → JSON list handler: imports and exports