1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/bower_components/emby-apiclient/apiclientex.js

1 line
6.3 KiB
JavaScript
Raw Normal View History

2017-01-27 18:07:14 -05:00
define(["apiclientcore","localassetmanager","events"],function(apiclientcorefactory,localassetmanager,events){"use strict";var localPrefix="local:",localViewPrefix="localview:";return function(serverAddress,clientName,applicationVersion,deviceName,deviceId,devicePixelRatio){function getUserViews(userId){return apiclientcore.getUserViews(userId).then(function(result){var serverInfo=apiclientcore.serverInfo();return serverInfo?getLocalView(serverInfo.Id,userId).then(function(localView){return localView&&(result.Items.push(localView),result.TotalRecordCount++),Promise.resolve(result)}):Promis.resolve(result)})}function getLocalView(serverId,userId){return localassetmanager.getViews(serverId,userId).then(function(views){var localView=null;return views.length>0&&(localView={Name:"Offline Items",ServerId:serverId,Id:"localview",Type:"localview"}),Promise.resolve(localView)})}function getItems(userId,options){var i,serverInfo=apiclientcore.serverInfo();if(serverInfo&&"localview"===options.ParentId)return localassetmanager.getViews(serverInfo.Id,userId).then(function(items){var result={Items:items,TotalRecordCount:items.length};return Promise.resolve(result)});if(serverInfo&&options&&(startsWith(options.ParentId,localViewPrefix)||startsWith(options.ParentId,localPrefix)))return localassetmanager.getViewItems(serverInfo.Id,userId,options.ParentId).then(function(items){items.forEach(function(item){item.Id=localPrefix+item.Id}),items.sort(function(a,b){return a.SortName.toLowerCase().localeCompare(b.SortName.toLowerCase())});var result={Items:items,TotalRecordCount:items.length};return Promise.resolve(result)});if(options&&options.ExcludeItemIds&&options.ExcludeItemIds.length){var exItems=options.ExcludeItemIds.split(",");for(i=0;i<exItems.length;i++)if(startsWith(exItems[i],localPrefix))return Promise.resolve(createEmptyList())}else if(options&&options.Ids&&options.Ids.length){var ids=options.Ids.split(","),hasLocal=!1;for(i=0;i<ids.length;i++)startsWith(ids[i],localPrefix)&&(hasLocal=!0);if(hasLocal)return localassetmanager.getItemsFromIds(serverInfo.Id,ids).then(function(items){items.forEach(function(item){item.Id=localPrefix+item.Id});var result={Items:items,TotalRecordCount:items.length};return Promise.resolve(result)})}return apiclientcore.getItems(userId,options)}function getItem(userId,itemId){itemId&&(itemId=itemId.toString());var serverInfo;return startsWith(itemId,localViewPrefix)&&(serverInfo=apiclientcore.serverInfo())?localassetmanager.getViews(serverInfo.Id,userId).then(function(items){var views=items.filter(function(item){return item.Id===itemId});return views.length>0?Promise.resolve(views[0]):Promise.reject()}):startsWith(itemId,localPrefix)&&(serverInfo=apiclientcore.serverInfo())?localassetmanager.getLocalItem(serverInfo.Id,stripStart(itemId,localPrefix)).then(function(item){return item.Item.Id=localPrefix+item.Item.Id,Promise.resolve(item.Item)}):apiclientcore.getItem(userId,itemId)}function getNextUpEpisodes(options){return options.SeriesId&&startsWith(options.SeriesId,localPrefix)?Promise.resolve(createEmptyList()):apiclientcore.getNextUpEpisodes(options)}function getSeasons(itemId,options){return startsWith(itemId,localPrefix)?(options.ParentId=itemId,getItems(apiclientcore.getCurrentUserId(),options)):apiclientcore.getSeasons(itemId,options)}function getEpisodes(itemId,options){return startsWith(options.SeasonId,localPrefix)?(options.ParentId=options.SeasonId,getItems(apiclientcore.getCurrentUserId(),options)):apiclientcore.getEpisodes(itemId,options)}function getThemeMedia(userId,itemId,inherit){return startsWith(itemId,localViewPrefix)||startsWith(itemId,localPrefix)?Promise.reject():apiclientcore.getThemeMedia(userId,itemId,inherit)}function getSimilarItems(itemId,options){return startsWith(itemId,localPrefix)?Promise.resolve(createEmptyList()):apiclientcore.getSimilarItems(itemId,options)}function updateFavoriteStatus(userId,itemId,isFavorite){return startsWith(itemId,localPrefix)?Promise.resolve():apiclientcore.updateFavoriteStatus(userId,itemId,isFavorite)}function getScaledImageUrl(itemId,options){i