Repository navigation
Conversation
|
I think this would fit ARVIO better if we implement the VOD browsing within the existing Library instead of adding a separate VOD section next to TV. I’d keep the TV section unchanged and use it purely for live IPTV. The VOD catalogue from IPTV can be exposed as another source/filter inside Library, since Movies, Series etc. already conceptually belong there. So I’d suggest keeping the underlying IPTV VOD catalogue/caching/matching work from this PR, but moving the browsing UI into Library rather than introducing a separate VOD destination. |
|
Like Himanth said, adding something in topbar is not in Arvio's vission. Great Pr tho, we can use this. Thanks! |
IPTV VOD was only used behind the scenes, as an extra source when a TMDB title was opened. There was no way to browse the provider's own movie and series catalogue. - New "VOD" top-bar entry (and mobile bottom-bar tab) next to TV, opening an IPTV VOD screen: Movies / Series tabs, the provider's own categories with counts, "Recently added", search, and a poster grid. - Selecting a title opens ARVIO's normal Details page when the provider tags a TMDB id, otherwise the cleaned name + year is matched on TMDB. Movies that still cannot be matched play directly from the provider. - Xtream VOD/series wire models now keep artwork, rating and added date; disk caches are versioned (v2) so they are refetched once with artwork. - The player skips scrobbling and watch history for synthetic ids (<= 0) used by the direct-play fallback. - English and Hebrew strings. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Review feedback on ProdigyV21#730: a VOD destination in the top bar is not where this belongs. The TV screen goes back to being live-only and the top-bar entry is gone; the catalogue, its caches and the TMDB matching stay and the browsing UI moves into Library, next to the home servers. The tab reuses what is already there: the sources rail lists "All", "Recently added" and the provider's own categories (empty ones hidden), the Library's own search box searches it, and Filters > Type chooses between the provider's movie and series catalogues — two separate lists on its side, so there is no combined option and no sort, the order being the provider's own. The tab only appears when a playlist can actually serve VOD, and goes away again when that playlist does. The catalogue is read the first time the tab is opened rather than when Library is, so opening Library still costs only a config read. Deletes the standalone VOD screen and the strings that belonged to it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
447b3eb to
c2ee8cd
Compare
The catalogue read starts from an effect, so the first frame of the tab rendered an empty grid as "No titles found" before anything had been asked for; it now says it is loading until the first read finishes. Opening a title the provider did not tag with a TMDB id costs a lookup before anything happens on screen, so that wait is shown too, using the state the view model was already tracking for it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Do you have screenshots of it and tested it? @test01203 |
Summary
IPTV subscriptions carry a VOD catalogue — often thousands of movies and series — that ARVIO could reach only indirectly: an IPTV copy shows up as a source on a Details page you already found some other way. There was no way to browse what the provider actually has.
This adds that catalogue to Library, as a tab, next to the home servers. The TV screen is untouched and stays live-only.
Reworked from the first version of this PR, which added a VOD destination to the top bar. Per @Himanth-reddy and @ProdigyV21 that is not where it belongs: the data layer, caching and TMDB matching are kept, the browsing UI moved into Library, and the top-bar entry is gone entirely.
What the tab does
Data layer
IptvRepository.getVodBrowseCatalog(series)reads the provider's movie or series list through the same memory and disk caches that already back IPTV VOD source matching, so the second visit is instant. Three browse-only fields were added to the Xtream models (stream_icon/cover,rating,added/last_modified) and the disk cache filenames bumped to_v2so an older cache without them is re-read once.Titles carry provider noise —
EN -,|HE|,[4K],1080p, a trailing year — socleanIptvTitlestrips it for both the TMDB lookup and the card label.A title with no TMDB match plays under a negative synthetic id, and the player skips history and scrobbling for ids <= 0 so an unmatched stream cannot write junk into Continue Watching.
Test plan
./gradlew :app:compilePlayDebugKotlin./gradlew :app:testPlayDebugUnitTestCleanIptvTitleTestcovers the provider prefixes, quality tags and trailing years.