EmbyCrackedClient/web/item/linkeditems.js

1 line
14 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import layoutManager from"./../modules/layoutmanager.js";import cardBuilder from"./../modules/cardbuilder/cardbuilder.js";import listView from"./../modules/listview/listview.js";import globalize from"./../modules/common/globalize.js";import userSettings from"./../modules/common/usersettings/usersettings.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";function getCardOptions(options,scrollX){return{renderer:cardBuilder,options:Object.assign({shape:"autooverflow",fields:["Name","ProductionYear"],centerText:!0,overlayPlayButton:!0,focusTransformTitleAdjust:!0},options),virtualScrollLayout:scrollX?"horizontal-grid":null}}function getGenericCardOptions(){var instance=this.instance,linkedItemType=this.linkedItemType,scrollX=this.scrollX,parentItemType=instance.options.item?.Type;switch(linkedItemType){case"MusicArtist":return getCardOptions({fields:["Name"],round:!0},scrollX);case"Playlist":return getCardOptions({fields:["Name"]},scrollX);case"MusicAlbum":case"MusicVideo":return getCardOptions({fields:"MusicArtist"===parentItemType?["Name","ProductionYear"]:["ParentName","Name"]},scrollX);case"Season":case"Episode":return getCardOptions({fields:["ParentName","Name"]},scrollX);case"Person":case"Folder":return getCardOptions({fields:["Name"]},scrollX);default:return getCardOptions({},scrollX)}}function getListViewOptions(items,options){return{renderer:listView,options:Object.assign({action:"playallfromhere",overlayPlayButton:!1,verticalWrap:!0,mediaInfo:!1,enableSideMediaInfo:!1,enableUserDataButtons:!1,fields:["Name","ParentName"]},options),virtualScrollLayout:"horizontal-grid"}}function enableWrappedListView(){return!layoutManager.tv}function addParentItemToQuery(instance,query){var instance=instance.options,params=instance.params,item=instance.item,instance=params.parentId,params=(instance&&(query.ParentId=instance),item.Type);switch(params){case"Genre":case"MusicGenre":case"GameGenre":query.GenreIds=item.Id;break;case"Studio":query.StudioIds=item.Id;break;case"Person":query.PersonIds=item.Id;break;case"MusicArtist":query.ArtistIds=item.Id;break;case"Tag":query.TagIds=item.Id;break;case"BoxSet":case"Folder":query.ParentId=item.Id}}function fetchArtists(query,instance,scrollX){var apiClient=instance.getApiClient();return query=Object.assign({SortBy:"SortName",SortOrder:"Ascending",Recursive:!0,Fields:instance.getRequestedItemFields()+",PrimaryImageAspectRatio",StartIndex:0,ImageTypeLimit:1,EnableTotalRecordCount:!!scrollX,EnableImageTypes:"Primary"},query),addParentItemToQuery(instance,query),apiClient.getArtists(apiClient.getCurrentUserId(),query)}function fetchBoxSetChildrenItems(query,instance,item,linkedItemType,scrollX){if("BoxSet"!==item.Type)return Promise.resolve({Items:[],TotalRecordCount:0});var apiClient=connectionManager.getApiClient(item);let sortBy=userSettings.itemSortBy(item.Id)||"default";"default"===sortBy&&(sortBy="DisplayOrder");var sortOrder=(sortBy=apiClient.isMinServerVersion("4.8.0.16")?sortBy:null)?userSettings.itemSortOrder(item.Id):null;return linkedItemType&&(query.IncludeItemTypes=linkedItemType),query=Object.assign({ParentId:item.Id,ImageTypeLimit:1,Fields:instance.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear,Status,EndDate",EnableTotalRecordCount:!!scrollX,sortBy:sortBy,sortOrder:sortOrder},query),console.log("query start index: "+query.StartIndex),apiClient.getItems(apiClient.getCurrentUserId(),query).then(function(result){for(let i=0,length=result.Items.length;i<length;i++)result.Items[i].CollectionId=item.Id;return result})}function fetchItems(query){var instance=this.instance,linkedItemType=this.linkedItemType,scrollX=this.scrollX,item=instance.options.item,itemType=item.Type;if("BoxSet"===itemType)return fetchBoxSetChildrenItems(query,instance,item,linkedItemType,scrollX);if("MusicArtist"===linkedItemType)return fetchArtists(query,instance,scrollX);let sortBy="SortName",sortOrder="Ascending";"MusicVideo"===linkedItemType&&"MusicArtist"===itemType&&(sortBy="ProductionYea