6 Commits

Author SHA1 Message Date
Felix
a2071449f9 fix(uakino): group movie stream entries when voice tabs are absent
Handle playlist items differently when `playlists-lists` voice tabs are
missing so film pages no longer collapse multiple stream versions into a
single fallback voice group.

When tabs are absent, treat each `li` as a stream variant and resolve its
target voice by `data-voice` (or item text) with on-demand group creation.
Keep existing tab-based matching logic unchanged for serial/episode layouts.
2026-05-15 19:40:06 +03:00
Felix
9e677b4113 refactor(uakino): remove PlayerJS decode fallback from Ashdi resolver
Drop the secondary PlayerJsDecoder extraction path and keep complex VOD
payloads untouched by returning the original value. Align the module
manifest by removing the now-unused shared PlayerJsDecoder dependency.
2026-05-15 19:30:42 +03:00
Felix
15ff1ee10c refactor(uakino): centralize Ashdi VOD resolution and dedupe movie streams
Move Ashdi URL handling into a dedicated resolver in `UAKinoInvoke` and
reuse it from controller paths instead of appending query params inline.

Resolve Ashdi pages to direct player file URLs, with fallback extraction
strategies and safe error handling, then build stream links from resolved
targets.

Avoid duplicate movie entries by skipping already processed resolved URLs,
and propagate the selected season number when rendering episode metadata.
2026-05-15 19:26:55 +03:00
Felix
80f0869401 fix(uakino): add HTML page fallback when playlist API returns no data
Handle cases where UAKino playlist requests return empty results by
resolving stream URLs directly from the content page HTML.

Add a fallback parser that extracts video sources from `link[itemprop=video]`
or `iframe#pre`, and use it to return playable movie or single-episode
responses instead of failing immediately.

Ensure Ashdi links consistently include `multivoice` for movie playback,
including episode file URLs, to improve stream compatibility.
2026-05-15 19:06:29 +03:00
Felix
a54bc0e435 refactor(uakino): restructure search results into grouped season entries
Replace flat search result handling with a grouped model where each show
contains a list of season entries, enabling deterministic serial flow for
single-show and multi-season matches.

Update controller logic to branch serial/movie processing against grouped
results, add explicit season selection handling, and reuse selected season
URLs on follow-up requests.

Adjust search parsing to collect raw items, filter non-content entries, and
group by normalized show identity before caching, removing early year-based
filtering from cached returns.
2026-05-15 19:05:01 +03:00
Felix
317cb6292c feat(uakino): add UAKino online source module
Add new online source module for UAKino website providing movie and series search and playback functionality. Includes controller, model definitions, online API integration, search implementation with caching, and module initialization. Implements similar result handling for multiple search results and serial/movie playback differentiation.
2026-05-15 18:46:00 +03:00