Introduce a new configuration option `magic_apn` that allows automatic enabling of APN for Ashdi streams when using the inner player. The configuration is an object with an `ashdi` property that specifies the host to use for Ashdi APN.
Changes include:
- Add `TryGetMagicAshdiHost` method to parse `magic_apn` configuration
- Add `NormalizeHost`
BREAKING CHANGE: All module routes changed from /{module} to /lite/{module}
- Implement IModuleLoaded and IModuleOnline interfaces across all modules
- Add HttpHydra support to all Invoke classes for HTTP request handling
- Replace ModuleInvoke.Conf() with ModuleInvoke.Init() in all ModInit classes
- Convert loadKit() from async to synchronous calls in all controllers
- Replace direct AppInit.conf.online.with_search.Add() with reflection-based
RegisterWithSearch() method for decoupled module registration
- Simplify cacheTime() logic by removing mikrotik/multiaccess conditionals
- Add GlobalUsings.cs to all modules for shared namespace imports
- Update OnlineApi to use ModuleOnlineItem instead of value tuples
- Bump all module versions to new major versions
- Replace monolithic extraction with modular methods for better maintainability
- Add support for decoding obfuscated player payloads (atob, XOR encryption)
- Implement robust JSON parsing with loose parsing and trailing comma handling
- Add regex patterns for season/episode number extraction
- Improve handling of nested series structures with multiple seasons
Update ResolveMalId method to accept and process a source parameter, enabling different resolution logic for tmdb and hikka sources. TMDB source now returns null, while HIKKA source uses kinopoiskId when available.
- Add ResolveMalId helper to resolve effective MAL ID from mal_id or kinopoisk_id
- Remove original_title from Search method signature and cache keys
- Simplify BuildSearchUrl to prioritize query parameters (mal_id > imdb_id > title)
Add CollapseNearDuplicates method to filter near-duplicate torrent results based on quality, size, seeders, peers, season, voice, and title. Improve BuildRid to use guid/details as stable identifiers when infohash is unavailable. Add season labels to release display in Controller. Add Guid property to JackettResult model.
Removes all UaTUT-related code including:
- Search and resolution methods in MakhnoInvoke.cs
- Search result processing in Controller.cs
- API host configuration in ModInit.cs
This completes the migration to KlonFUN service for content resolution.
Extract StripMoviePrefix method across all movie providers to remove year
prefixes (e.g., "2023 - Movie Title" → "Movie Title") from displayed titles.
Simplify label construction in UaTUT controller by removing redundant movie
name prefix from variant labels.
Add new `webcorshost` configuration option that allows routing all HTTP requests through a CORS proxy for modules that require it. This feature enables compatibility with modules that need CORS bypass while maintaining support for existing features like `streamproxy` and `apn`. Also reduces disconnect time from max 16 hours to 4 hours for improved reconnection behavior.
- Reorganize sources into TVShows/Movies and Anime/Dorama categories
- Update module list in repository.yaml to reflect current services
- Replace CikavaIdeya and UAKino with Mikai and Makhno services
- Update APN support section with current available sources
Update version numbers for AnimeON, Bamboo, CikavaIdeya, Makhno, Mikai,
UAKino, UaTUT, Uaflix, and Unimay modules to reflect latest releases.
Note that CikavaIdeya and UAKino have unusual binary-looking version
numbers that appear intentional.
Rename variables used to store search results across multiple controllers
to follow a consistent naming pattern (checkSeasons, checkEpisodes, checkResults)
instead of generic names like seasons, episodesInfo, and searchResults.
This improves code readability and maintains uniform variable naming
across the codebase.