EmbyCrackedClient/web/tv/favorites.js

1 line
3.8 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import layoutManager from"./../modules/layoutmanager.js";import cardBuilder from"./../modules/cardbuilder/cardbuilder.js";import BaseTab from"./../modules/tabbedview/basetab.js";import"./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";function TvFavoritesTab(view,params){BaseTab.apply(this,arguments),this.view=view,this.params=params,this.apiClient=connectionManager.getApiClient(params.serverId);var seriesItemsContainer=view.querySelector(".seriesItems"),seriesItemsContainer=(seriesItemsContainer.getListOptions=getSeriesListOptions.bind(this),seriesItemsContainer.fetchData=fetchSeriesData.bind(this),seriesItemsContainer.parentContainer=view.querySelector(".favoriteSeriesSection"),this.seriesItemsContainer=seriesItemsContainer,this.addFocusBehavior(this.seriesItemsContainer),view.querySelector(".episodeItems"));seriesItemsContainer.getListOptions=getEpisodesListOptions.bind(this),seriesItemsContainer.fetchData=fetchEpisodeData.bind(this),seriesItemsContainer.parentContainer=view.querySelector(".favoriteEpisodesSection"),this.episodeItemsContainer=seriesItemsContainer,this.addFocusBehavior(this.episodeItemsContainer),params.parentId&&(this.seriesItemsContainer.setAttribute("data-parentid",params.parentId),this.episodeItemsContainer.setAttribute("data-parentid",params.parentId))}function fetchSeriesData(items){var apiClient=this.apiClient,parentId=this.params.parentId;return apiClient.getItems(apiClient.getCurrentUserId(),{SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"Series",Recursive:!0,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear,EndDate,Status",ImageTypeLimit:1,EnableImageTypes:this.getRequestedImageTypes(),StartIndex:0,parentId:parentId,IsFavorite:!0})}function getSeriesListOptions(items){var enableFocusPreview=this.enableFocusPreview();return{renderer:cardBuilder,options:{shape:"auto",centerText:!0,fields:enableFocusPreview?[]:["Name","ProductionYear"],bottomPadding:enableFocusPreview?"focuspreview":null},virtualScrollLayout:"vertical-grid"}}function fetchEpisodeData(items){var apiClient=this.apiClient,parentId=this.params.parentId;return apiClient.getItems(apiClient.getCurrentUserId(),{SortBy:"SeriesName,SortName",SortOrder:"Ascending",IncludeItemTypes:"Episode",Recursive:!0,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",ImageTypeLimit:1,EnableImageTypes:this.getRequestedImageTypes(),StartIndex:0,parentId:parentId,IsFavorite:!0})}function getEpisodesListOptions(items){return{renderer:cardBuilder,options:{shape:"auto",fields:["ParentName","Name"],centerText:!0},virtualScrollLayout:"vertical-grid"}}Object.assign(TvFavoritesTab.prototype,BaseTab.prototype),TvFavoritesTab.prototype.enablePushDownFocusPreview=function(){return layoutManager.tv&&"y"===this.scrollDirection()},TvFavoritesTab.prototype.onResume=function(options){if(BaseTab.prototype.onResume.apply(this,arguments),options.refresh){var promises=[];promises.push(this.seriesItemsContainer.resume(options)),promises.push(this.episodeItemsContainer.resume(options));let instance=this;Promise.all(promises).then(function(){options.autoFocus&&instance.autoFocus(),instance.fillFocusPreviewIfNeeded()})}},TvFavoritesTab.prototype.onPause=function(){BaseTab.prototype.onPause.apply(this,arguments);var seriesItemsContainer=this.seriesItemsContainer,seriesItemsContainer=(seriesItemsContainer&&seriesItemsContainer.pause&&seriesItemsContainer.pause(),this.episodeItemsContainer);seriesItemsContainer&&seriesItemsContainer.pause&&seriesItemsContainer.pause()},TvFavoritesTab.prototype.destroy=function(){BaseTab.prototype.destroy.apply(this,arguments),this.seriesItemsContainer=null,this.episodeItemsContainer=null};export default TvFavoritesTab;