Remove global using directive for LME.Common.Playerjs from GlobalUsings.cs
and add explicit using statements in module Invoke files that reference
PlayerJsDecoder. This improves namespace clarity and reduces unnecessary
global imports across the codebase.
Move the PlayerJsDecoder class from Shared.Engine to LME.Common.Playerjs
namespace to align with the common library structure. Update global usings
in GlobalUsings.cs and add references to PlayerJsDecoder.cs in module
manifest files to reflect the new namespace location.
Add PlayerJsDecoder class with comprehensive methods for extracting player
payloads from HTML content, handling atob-encoded strings, and parsing JSON
configurations. The implementation includes regex patterns for various
encoding schemes, loose JSON parsing with trailing comma tolerance, and
helper function resolution. Additionally, configure global usings for
Shared.Services, Shared.Services.Hybrid, and Shared.Models.Base to improve
type accessibility across the shared library.
Move PlayerPayload class into PlayerJsDecoder.cs and rename namespace to
Shared.Engine. Remove linked source file references from anime projects
(AnimeON, Mikai, NMoonAnime) to prevent duplicate compilation and ensure
single source of truth through Shared.dll.
Move PlayerJsDecoder and PlayerPayload from LME.Shared to LME.Common.Playerjs
namespace. Replace ProjectReference with direct Compile includes for source files
in AnimeON, Mikai, and NMoonAnime projects. Update all using directives to
reference the new namespace across Invoke files.
Note: Controller.cs contains a typo (Firts instead of First) that requires
correction in a subsequent commit.
Move player payload extraction and decoding logic from individual modules
(AnimeON, Mikai, NMoonAnime) into a new LME.Shared library. This reduces
code duplication and centralizes the parsing logic for better maintainability.
The new PlayerJsDecoder class handles various player script formats including
atob-encoded payloads, JSON.parse helpers, and different file payload structures.
All consuming modules now reference the shared project and use the common decoder.
Also fix typo in NMoonAnime Controller (Firts -> First).