mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update components
This commit is contained in:
parent
28bb4ffd62
commit
6fb6168107
12 changed files with 113 additions and 241 deletions
|
@ -16,12 +16,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"version": "1.1.112",
|
"version": "1.1.113",
|
||||||
"_release": "1.1.112",
|
"_release": "1.1.113",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.1.112",
|
"tag": "1.1.113",
|
||||||
"commit": "e4b3d6c51534d2d0035e45ebfb486ea9959317aa"
|
"commit": "69a87cba28f55f11fcef19cef9e71329623c4635"
|
||||||
},
|
},
|
||||||
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
|
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
|
||||||
"_target": "^1.1.51",
|
"_target": "^1.1.51",
|
||||||
|
|
|
@ -14,10 +14,19 @@
|
||||||
|
|
||||||
var apiclientcore = new apiclientcorefactory(serverAddress, clientName, applicationVersion, deviceName, deviceId, devicePixelRatio);
|
var apiclientcore = new apiclientcorefactory(serverAddress, clientName, applicationVersion, deviceName, deviceId, devicePixelRatio);
|
||||||
|
|
||||||
|
var self = Object.assign(this, apiclientcore);
|
||||||
|
|
||||||
events.on(apiclientcore, 'websocketmessage', onWebSocketMessage);
|
events.on(apiclientcore, 'websocketmessage', onWebSocketMessage);
|
||||||
|
|
||||||
var self = this;
|
Object.defineProperty(self, 'onAuthenticated', {
|
||||||
|
get: function () { return apiclientcore.onAuthenticated; },
|
||||||
|
set: function (newValue) { apiclientcore.onAuthenticated = newValue; }
|
||||||
|
});
|
||||||
|
|
||||||
|
Object.defineProperty(self, 'enableAutomaticBitrateDetection', {
|
||||||
|
get: function () { return apiclientcore.enableAutomaticBitrateDetection; },
|
||||||
|
set: function (newValue) { apiclientcore.enableAutomaticBitrateDetection = newValue; }
|
||||||
|
});
|
||||||
|
|
||||||
function getUserViews(userId) {
|
function getUserViews(userId) {
|
||||||
|
|
||||||
|
@ -237,216 +246,6 @@
|
||||||
self.getSimilarItems = getSimilarItems;
|
self.getSimilarItems = getSimilarItems;
|
||||||
self.updateFavoriteStatus = updateFavoriteStatus;
|
self.updateFavoriteStatus = updateFavoriteStatus;
|
||||||
self.getScaledImageUrl = getScaledImageUrl;
|
self.getScaledImageUrl = getScaledImageUrl;
|
||||||
|
|
||||||
// Map "base" methods
|
|
||||||
self.serverAddress = apiclientcore.serverAddress;
|
|
||||||
self.serverInfo = apiclientcore.serverInfo;
|
|
||||||
self.serverId = apiclientcore.serverId;
|
|
||||||
self.getCurrentUser = apiclientcore.getCurrentUser;
|
|
||||||
self.isLoggedIn = apiclientcore.isLoggedIn;
|
|
||||||
self.getCurrentUserId = apiclientcore.getCurrentUserId;
|
|
||||||
self.accessToken = apiclientcore.accessToken;
|
|
||||||
self.deviceName = apiclientcore.deviceName;
|
|
||||||
self.deviceId = apiclientcore.deviceId;
|
|
||||||
self.appName = apiclientcore.appName;
|
|
||||||
self.appVersion = apiclientcore.appVersion;
|
|
||||||
self.clearAuthenticationInfo = apiclientcore.clearAuthenticationInfo;
|
|
||||||
self.setAuthenticationInfo = apiclientcore.setAuthenticationInfo;
|
|
||||||
self.encodeName = apiclientcore.encodeName;
|
|
||||||
self.setRequestHeaders = apiclientcore.setRequestHeaders;
|
|
||||||
self.ajax = apiclientcore.ajax;
|
|
||||||
self.fetch = apiclientcore.fetch;
|
|
||||||
self.getJSON = apiclientcore.getJSON;
|
|
||||||
self.fetchWithFailover = apiclientcore.fetchWithFailover;
|
|
||||||
self.get = apiclientcore.get;
|
|
||||||
self.getUrl = apiclientcore.getUrl;
|
|
||||||
self.updateServerInfo = apiclientcore.updateServerInfo;
|
|
||||||
self.isWebSocketSupported = apiclientcore.isWebSocketSupported;
|
|
||||||
self.ensureWebSocket = apiclientcore.ensureWebSocket;
|
|
||||||
self.openWebSocket = apiclientcore.openWebSocket;
|
|
||||||
self.closeWebSocket = apiclientcore.closeWebSocket;
|
|
||||||
self.sendWebSocketMessage = apiclientcore.sendWebSocketMessage;
|
|
||||||
self.isWebSocketOpen = apiclientcore.isWebSocketOpen;
|
|
||||||
self.isWebSocketOpenOrConnecting = apiclientcore.isWebSocketOpenOrConnecting;
|
|
||||||
self.getProductNews = apiclientcore.getProductNews;
|
|
||||||
self.getDownloadSpeed = apiclientcore.getDownloadSpeed;
|
|
||||||
self.detectBitrate = apiclientcore.detectBitrate;
|
|
||||||
//self.getItem = apiclientcore.getItem;
|
|
||||||
self.getRootFolder = apiclientcore.getRootFolder;
|
|
||||||
self.getNotificationSummary = apiclientcore.getNotificationSummary;
|
|
||||||
self.getNotifications = apiclientcore.getNotifications;
|
|
||||||
self.markNotificationsRead = apiclientcore.markNotificationsRead;
|
|
||||||
self.logout = apiclientcore.logout;
|
|
||||||
self.getRemoteImageProviders = apiclientcore.getRemoteImageProviders;
|
|
||||||
self.getAvailableRemoteImages = apiclientcore.getAvailableRemoteImages;
|
|
||||||
self.downloadRemoteImage = apiclientcore.downloadRemoteImage;
|
|
||||||
self.getLiveTvInfo = apiclientcore.getLiveTvInfo;
|
|
||||||
self.getLiveTvGuideInfo = apiclientcore.getLiveTvGuideInfo;
|
|
||||||
self.getLiveTvChannel = apiclientcore.getLiveTvChannel;
|
|
||||||
self.getLiveTvChannels = apiclientcore.getLiveTvChannels;
|
|
||||||
self.getLiveTvPrograms = apiclientcore.getLiveTvPrograms;
|
|
||||||
self.getLiveTvRecommendedPrograms = apiclientcore.getLiveTvRecommendedPrograms;
|
|
||||||
self.getLiveTvRecordings = apiclientcore.getLiveTvRecordings;
|
|
||||||
self.getLiveTvRecordingSeries = apiclientcore.getLiveTvRecordingSeries;
|
|
||||||
self.getLiveTvRecordingGroups = apiclientcore.getLiveTvRecordingGroups;
|
|
||||||
self.getLiveTvRecordingGroup = apiclientcore.getLiveTvRecordingGroup;
|
|
||||||
self.getLiveTvRecording = apiclientcore.getLiveTvRecording;
|
|
||||||
self.getLiveTvProgram = apiclientcore.getLiveTvProgram;
|
|
||||||
self.deleteLiveTvRecording = apiclientcore.deleteLiveTvRecording;
|
|
||||||
self.cancelLiveTvTimer = apiclientcore.cancelLiveTvTimer;
|
|
||||||
self.getLiveTvTimers = apiclientcore.getLiveTvTimers;
|
|
||||||
self.getLiveTvTimer = apiclientcore.getLiveTvTimer;
|
|
||||||
self.getNewLiveTvTimerDefaults = apiclientcore.getNewLiveTvTimerDefaults;
|
|
||||||
self.createLiveTvTimer = apiclientcore.createLiveTvTimer;
|
|
||||||
self.updateLiveTvTimer = apiclientcore.updateLiveTvTimer;
|
|
||||||
self.resetLiveTvTuner = apiclientcore.resetLiveTvTuner;
|
|
||||||
self.getLiveTvSeriesTimers = apiclientcore.getLiveTvSeriesTimers;
|
|
||||||
self.getFileOrganizationResults = apiclientcore.getFileOrganizationResults;
|
|
||||||
self.deleteOriginalFileFromOrganizationResult = apiclientcore.deleteOriginalFileFromOrganizationResult;
|
|
||||||
self.clearOrganizationLog = apiclientcore.clearOrganizationLog;
|
|
||||||
self.performOrganization = apiclientcore.performOrganization;
|
|
||||||
self.performEpisodeOrganization = apiclientcore.performEpisodeOrganization;
|
|
||||||
self.getLiveTvSeriesTimer = apiclientcore.getLiveTvSeriesTimer;
|
|
||||||
self.cancelLiveTvSeriesTimer = apiclientcore.cancelLiveTvSeriesTimer;
|
|
||||||
self.createLiveTvSeriesTimer = apiclientcore.createLiveTvSeriesTimer;
|
|
||||||
self.updateLiveTvSeriesTimer = apiclientcore.updateLiveTvSeriesTimer;
|
|
||||||
self.getRegistrationInfo = apiclientcore.getRegistrationInfo;
|
|
||||||
self.getSystemInfo = apiclientcore.getSystemInfo;
|
|
||||||
self.getPublicSystemInfo = apiclientcore.getPublicSystemInfo;
|
|
||||||
self.getInstantMixFromItem = apiclientcore.getInstantMixFromItem;
|
|
||||||
self.getEpisodes = apiclientcore.getEpisodes;
|
|
||||||
self.getDisplayPreferences = apiclientcore.getDisplayPreferences;
|
|
||||||
self.updateDisplayPreferences = apiclientcore.updateDisplayPreferences;
|
|
||||||
self.getSeasons = apiclientcore.getSeasons;
|
|
||||||
//self.getSimilarItems = apiclientcore.getSimilarItems;
|
|
||||||
self.getCultures = apiclientcore.getCultures;
|
|
||||||
self.getCountries = apiclientcore.getCountries;
|
|
||||||
self.getPluginSecurityInfo = apiclientcore.getPluginSecurityInfo;
|
|
||||||
self.getDirectoryContents = apiclientcore.getDirectoryContents;
|
|
||||||
self.getNetworkShares = apiclientcore.getNetworkShares;
|
|
||||||
self.getParentPath = apiclientcore.getParentPath;
|
|
||||||
self.getDrives = apiclientcore.getDrives;
|
|
||||||
self.getNetworkDevices = apiclientcore.getNetworkDevices;
|
|
||||||
self.cancelPackageInstallation = apiclientcore.cancelPackageInstallation;
|
|
||||||
self.refreshItem = apiclientcore.refreshItem;
|
|
||||||
self.installPlugin = apiclientcore.installPlugin;
|
|
||||||
self.restartServer = apiclientcore.restartServer;
|
|
||||||
self.shutdownServer = apiclientcore.shutdownServer;
|
|
||||||
self.getPackageInfo = apiclientcore.getPackageInfo;
|
|
||||||
self.getAvailableApplicationUpdate = apiclientcore.getAvailableApplicationUpdate;
|
|
||||||
self.getAvailablePluginUpdates = apiclientcore.getAvailablePluginUpdates;
|
|
||||||
self.getVirtualFolders = apiclientcore.getVirtualFolders;
|
|
||||||
self.getPhysicalPaths = apiclientcore.getPhysicalPaths;
|
|
||||||
self.getServerConfiguration = apiclientcore.getServerConfiguration;
|
|
||||||
self.getDevicesOptions = apiclientcore.getDevicesOptions;
|
|
||||||
self.getContentUploadHistory = apiclientcore.getContentUploadHistory;
|
|
||||||
self.getNamedConfiguration = apiclientcore.getNamedConfiguration;
|
|
||||||
self.getScheduledTasks = apiclientcore.getScheduledTasks;
|
|
||||||
self.startScheduledTask = apiclientcore.startScheduledTask;
|
|
||||||
self.getScheduledTask = apiclientcore.getScheduledTask;
|
|
||||||
self.getNextUpEpisodes = apiclientcore.getNextUpEpisodes;
|
|
||||||
self.stopScheduledTask = apiclientcore.stopScheduledTask;
|
|
||||||
self.getPluginConfiguration = apiclientcore.getPluginConfiguration;
|
|
||||||
self.getAvailablePlugins = apiclientcore.getAvailablePlugins;
|
|
||||||
self.uninstallPlugin = apiclientcore.uninstallPlugin;
|
|
||||||
self.removeVirtualFolder = apiclientcore.removeVirtualFolder;
|
|
||||||
self.addVirtualFolder = apiclientcore.addVirtualFolder;
|
|
||||||
self.updateVirtualFolderOptions = apiclientcore.updateVirtualFolderOptions;
|
|
||||||
self.renameVirtualFolder = apiclientcore.renameVirtualFolder;
|
|
||||||
self.addMediaPath = apiclientcore.addMediaPath;
|
|
||||||
self.updateMediaPath = apiclientcore.updateMediaPath;
|
|
||||||
self.removeMediaPath = apiclientcore.removeMediaPath;
|
|
||||||
self.deleteUser = apiclientcore.deleteUser;
|
|
||||||
self.deleteUserImage = apiclientcore.deleteUserImage;
|
|
||||||
self.deleteItemImage = apiclientcore.deleteItemImage;
|
|
||||||
self.deleteItem = apiclientcore.deleteItem;
|
|
||||||
self.stopActiveEncodings = apiclientcore.stopActiveEncodings;
|
|
||||||
self.reportCapabilities = apiclientcore.reportCapabilities;
|
|
||||||
self.updateItemImageIndex = apiclientcore.updateItemImageIndex;
|
|
||||||
self.getItemImageInfos = apiclientcore.getItemImageInfos;
|
|
||||||
self.getCriticReviews = apiclientcore.getCriticReviews;
|
|
||||||
self.getSessions = apiclientcore.getSessions;
|
|
||||||
self.uploadUserImage = apiclientcore.uploadUserImage;
|
|
||||||
self.uploadItemImage = apiclientcore.uploadItemImage;
|
|
||||||
self.getInstalledPlugins = apiclientcore.getInstalledPlugins;
|
|
||||||
self.getUser = apiclientcore.getUser;
|
|
||||||
self.getOfflineUser = apiclientcore.getOfflineUser;
|
|
||||||
self.getStudio = apiclientcore.getStudio;
|
|
||||||
self.getGenre = apiclientcore.getGenre;
|
|
||||||
self.getMusicGenre = apiclientcore.getMusicGenre;
|
|
||||||
self.getGameGenre = apiclientcore.getGameGenre;
|
|
||||||
self.getArtist = apiclientcore.getArtist;
|
|
||||||
self.getPerson = apiclientcore.getPerson;
|
|
||||||
self.getPublicUsers = apiclientcore.getPublicUsers;
|
|
||||||
self.getUsers = apiclientcore.getUsers;
|
|
||||||
self.getParentalRatings = apiclientcore.getParentalRatings;
|
|
||||||
self.getDefaultImageQuality = apiclientcore.getDefaultImageQuality;
|
|
||||||
self.getUserImageUrl = apiclientcore.getUserImageUrl;
|
|
||||||
self.getImageUrl = apiclientcore.getImageUrl;
|
|
||||||
//self.getScaledImageUrl = apiclientcore.getScaledImageUrl;
|
|
||||||
self.getThumbImageUrl = apiclientcore.getThumbImageUrl;
|
|
||||||
self.authenticateUserByName = apiclientcore.authenticateUserByName;
|
|
||||||
self.updateUserPassword = apiclientcore.updateUserPassword;
|
|
||||||
self.updateEasyPassword = apiclientcore.updateEasyPassword;
|
|
||||||
self.resetUserPassword = apiclientcore.resetUserPassword;
|
|
||||||
self.resetEasyPassword = apiclientcore.resetEasyPassword;
|
|
||||||
self.updateServerConfiguration = apiclientcore.updateServerConfiguration;
|
|
||||||
self.updateNamedConfiguration = apiclientcore.updateNamedConfiguration;
|
|
||||||
self.updateItem = apiclientcore.updateItem;
|
|
||||||
self.updatePluginSecurityInfo = apiclientcore.updatePluginSecurityInfo;
|
|
||||||
self.createUser = apiclientcore.createUser;
|
|
||||||
self.updateUser = apiclientcore.updateUser;
|
|
||||||
self.updateUserPolicy = apiclientcore.updateUserPolicy;
|
|
||||||
self.updateUserConfiguration = apiclientcore.updateUserConfiguration;
|
|
||||||
self.updateScheduledTaskTriggers = apiclientcore.updateScheduledTaskTriggers;
|
|
||||||
self.updatePluginConfiguration = apiclientcore.updatePluginConfiguration;
|
|
||||||
self.getAncestorItems = apiclientcore.getAncestorItems;
|
|
||||||
//self.getItems = apiclientcore.getItems;
|
|
||||||
self.getMovieRecommendations = apiclientcore.getMovieRecommendations;
|
|
||||||
self.getUpcomingEpisodes = apiclientcore.getUpcomingEpisodes;
|
|
||||||
self.getChannels = apiclientcore.getChannels;
|
|
||||||
self.getLatestChannelItems = apiclientcore.getLatestChannelItems;
|
|
||||||
//self.getUserViews = apiclientcore.getUserViews;
|
|
||||||
self.getArtists = apiclientcore.getArtists;
|
|
||||||
self.getAlbumArtists = apiclientcore.getAlbumArtists;
|
|
||||||
self.getGenres = apiclientcore.getGenres;
|
|
||||||
self.getMusicGenres = apiclientcore.getMusicGenres;
|
|
||||||
self.getGameGenres = apiclientcore.getGameGenres;
|
|
||||||
self.getPeople = apiclientcore.getPeople;
|
|
||||||
self.getStudios = apiclientcore.getStudios;
|
|
||||||
self.getLocalTrailers = apiclientcore.getLocalTrailers;
|
|
||||||
self.getGameSystems = apiclientcore.getGameSystems;
|
|
||||||
self.getAdditionalVideoParts = apiclientcore.getAdditionalVideoParts;
|
|
||||||
//self.getThemeMedia = apiclientcore.getThemeMedia;
|
|
||||||
self.getSearchHints = apiclientcore.getSearchHints;
|
|
||||||
self.getSpecialFeatures = apiclientcore.getSpecialFeatures;
|
|
||||||
self.getDateParamValue = apiclientcore.getDateParamValue;
|
|
||||||
self.markPlayed = apiclientcore.markPlayed;
|
|
||||||
self.markUnplayed = apiclientcore.markUnplayed;
|
|
||||||
//self.updateFavoriteStatus = apiclientcore.updateFavoriteStatus;
|
|
||||||
self.updateUserItemRating = apiclientcore.updateUserItemRating;
|
|
||||||
self.getItemCounts = apiclientcore.getItemCounts;
|
|
||||||
self.clearUserItemRating = apiclientcore.clearUserItemRating;
|
|
||||||
self.reportPlaybackStart = apiclientcore.reportPlaybackStart;
|
|
||||||
self.reportPlaybackProgress = apiclientcore.reportPlaybackProgress;
|
|
||||||
self.reportOfflineActions = apiclientcore.reportOfflineActions;
|
|
||||||
self.syncData = apiclientcore.syncData;
|
|
||||||
self.getReadySyncItems = apiclientcore.getReadySyncItems;
|
|
||||||
self.reportSyncJobItemTransferred = apiclientcore.reportSyncJobItemTransferred;
|
|
||||||
self.cancelSyncItems = apiclientcore.cancelSyncItems;
|
|
||||||
self.reportPlaybackStopped = apiclientcore.reportPlaybackStopped;
|
|
||||||
self.sendPlayCommand = apiclientcore.sendPlayCommand;
|
|
||||||
self.sendCommand = apiclientcore.sendCommand;
|
|
||||||
self.sendMessageCommand = apiclientcore.sendMessageCommand;
|
|
||||||
self.sendPlayStateCommand = apiclientcore.sendPlayStateCommand;
|
|
||||||
self.createPackageReview = apiclientcore.createPackageReview;
|
|
||||||
self.getPackageReviews = apiclientcore.getPackageReviews;
|
|
||||||
self.getSmartMatchInfos = apiclientcore.getSmartMatchInfos;
|
|
||||||
self.deleteSmartMatchEntries = apiclientcore.deleteSmartMatchEntries;
|
|
||||||
self.createPin = apiclientcore.createPin;
|
|
||||||
self.getPinStatus = apiclientcore.getPinStatus;
|
|
||||||
self.exchangePin = apiclientcore.exchangePin;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -276,12 +276,14 @@
|
||||||
|
|
||||||
function downloadFile(url, localItem) {
|
function downloadFile(url, localItem) {
|
||||||
|
|
||||||
return transfermanager.downloadFile(url, localItem);
|
var folder = filerepository.getLocalPath();
|
||||||
|
return transfermanager.downloadFile(url, folder, localItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
function downloadSubtitles(url, fileName) {
|
function downloadSubtitles(url, fileName) {
|
||||||
|
|
||||||
return transfermanager.downloadSubtitles(url, fileName);
|
var folder = filerepository.getLocalPath();
|
||||||
|
return transfermanager.downloadSubtitles(url, folder, fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getImageUrl(serverId, itemId, imageType, index) {
|
function getImageUrl(serverId, itemId, imageType, index) {
|
||||||
|
@ -296,7 +298,7 @@
|
||||||
function hasImage(serverId, itemId, imageType, index) {
|
function hasImage(serverId, itemId, imageType, index) {
|
||||||
|
|
||||||
var pathArray = getImagePath(serverId, itemId, imageType, index);
|
var pathArray = getImagePath(serverId, itemId, imageType, index);
|
||||||
var localFilePath = filerepository.getFullLocalPath(pathArray);
|
var localFilePath = filerepository.getFullMetadataPath(pathArray);
|
||||||
|
|
||||||
return filerepository.fileExists(localFilePath).then(function (exists) {
|
return filerepository.fileExists(localFilePath).then(function (exists) {
|
||||||
// TODO: Maybe check for broken download when file size is 0 and item is not queued
|
// TODO: Maybe check for broken download when file size is 0 and item is not queued
|
||||||
|
@ -316,7 +318,7 @@
|
||||||
function downloadImage(localItem, url, serverId, itemId, imageType, index) {
|
function downloadImage(localItem, url, serverId, itemId, imageType, index) {
|
||||||
|
|
||||||
var pathArray = getImagePath(serverId, itemId, imageType, index);
|
var pathArray = getImagePath(serverId, itemId, imageType, index);
|
||||||
var localFilePath = filerepository.getFullLocalPath(pathArray);
|
var localFilePath = filerepository.getFullMetadataPath(pathArray);
|
||||||
|
|
||||||
if (!localItem.AdditionalFiles) {
|
if (!localItem.AdditionalFiles) {
|
||||||
localItem.AdditionalFiles = [];
|
localItem.AdditionalFiles = [];
|
||||||
|
@ -331,7 +333,8 @@
|
||||||
|
|
||||||
localItem.AdditionalFiles.push(fileInfo);
|
localItem.AdditionalFiles.push(fileInfo);
|
||||||
|
|
||||||
return transfermanager.downloadImage(url, localFilePath);
|
var folder = filerepository.getMetadataPath();
|
||||||
|
return transfermanager.downloadImage(url, folder, localFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isDownloadFileInQueue(path) {
|
function isDownloadFileInQueue(path) {
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
define(['filerepository'], function (filerepository) {
|
define(['filerepository'], function (filerepository) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
function downloadFile(url, localPath) {
|
function downloadFile(url, folderName, localPath) {
|
||||||
|
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
function downloadSubtitles(url, localItem, subtitleStreamh) {
|
function downloadSubtitles(url, folderName, localItem) {
|
||||||
|
|
||||||
return Promise.resolve('');
|
return Promise.resolve('');
|
||||||
}
|
}
|
||||||
|
|
||||||
function downloadImage(url, serverId, itemId, imageTag) {
|
function downloadImage(url, folderName, serverId, itemId, imageTag) {
|
||||||
return Promise.resolve(false);
|
return Promise.resolve(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,12 +14,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"version": "1.4.462",
|
"version": "1.4.465",
|
||||||
"_release": "1.4.462",
|
"_release": "1.4.465",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.4.462",
|
"tag": "1.4.465",
|
||||||
"commit": "1beaad6a5a112a404e518ad16acfbdc6ca0c57cb"
|
"commit": "13b0fddbfbc24ac9dff0db7007be0cde3a94aed2"
|
||||||
},
|
},
|
||||||
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
||||||
"_target": "^1.2.1",
|
"_target": "^1.2.1",
|
||||||
|
|
|
@ -47,7 +47,8 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
self.set('maxStaticMusicBitrate', val);
|
self.set('maxStaticMusicBitrate', val);
|
||||||
}
|
}
|
||||||
|
|
||||||
return parseInt(self.get('maxStaticMusicBitrate') || '0') || null;
|
var defaultValue = 384000;
|
||||||
|
return parseInt(self.get('maxStaticMusicBitrate') || defaultValue.toString()) || defaultValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.maxChromecastBitrate = function (val) {
|
self.maxChromecastBitrate = function (val) {
|
||||||
|
|
|
@ -684,7 +684,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
self.stop = function () {
|
self.stop = function () {
|
||||||
castPlayer.sendMessage({
|
return castPlayer.sendMessage({
|
||||||
options: {},
|
options: {},
|
||||||
command: 'Stop'
|
command: 'Stop'
|
||||||
});
|
});
|
||||||
|
@ -726,7 +726,7 @@
|
||||||
return state.PositionTicks;
|
return state.PositionTicks;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.duration = function() {
|
self.duration = function () {
|
||||||
var state = self.lastPlayerData || {};
|
var state = self.lastPlayerData || {};
|
||||||
state = state.NowPlayingItem || {};
|
state = state.NowPlayingItem || {};
|
||||||
return state.RunTimeTicks;
|
return state.RunTimeTicks;
|
||||||
|
@ -941,10 +941,11 @@
|
||||||
|
|
||||||
self.endSession = function () {
|
self.endSession = function () {
|
||||||
|
|
||||||
self.stop();
|
self.stop().then(function () {
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
castPlayer.stopApp();
|
castPlayer.stopApp();
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
self.volumeUp = function () {
|
self.volumeUp = function () {
|
||||||
|
|
|
@ -514,7 +514,7 @@
|
||||||
|
|
||||||
html += '<div class="guideProgramNameText">' + program.Name + '</div>';
|
html += '<div class="guideProgramNameText">' + program.Name + '</div>';
|
||||||
|
|
||||||
var indicatorHtml;
|
var indicatorHtml = null;
|
||||||
if (program.IsLive && options.showLiveIndicator) {
|
if (program.IsLive && options.showLiveIndicator) {
|
||||||
indicatorHtml = '<span class="liveTvProgram guideProgramIndicator">' + globalize.translate('sharedcomponents#Live') + '</span>';
|
indicatorHtml = '<span class="liveTvProgram guideProgramIndicator">' + globalize.translate('sharedcomponents#Live') + '</span>';
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,9 +180,18 @@ define(['browser', 'pluginManager', 'events', 'apphost', 'loading', 'playbackMan
|
||||||
var list = [];
|
var list = [];
|
||||||
|
|
||||||
var video = document.createElement('video');
|
var video = document.createElement('video');
|
||||||
if (video.webkitSupportsPresentationMode && video.webkitSupportsPresentationMode('picture-in-picture') && typeof video.webkitSetPresentationMode === "function") {
|
//if (video.webkitSupportsPresentationMode && video.webkitSupportsPresentationMode('picture-in-picture') && typeof video.webkitSetPresentationMode === "function") {
|
||||||
|
// list.push('pictureinpicture');
|
||||||
|
//}
|
||||||
|
if (browser.ipad) {
|
||||||
|
|
||||||
|
// Unfortunately this creates a false positive on devices where its' not actually supported
|
||||||
|
if (navigator.userAgent.toLowerCase().indexOf('os 9') === -1) {
|
||||||
|
if (video.webkitSupportsPresentationMode && video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === "function") {
|
||||||
list.push('pictureinpicture');
|
list.push('pictureinpicture');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
57
dashboard-ui/bower_components/emby-webcomponents/playback/playbackvalidation.js
vendored
Normal file
57
dashboard-ui/bower_components/emby-webcomponents/playback/playbackvalidation.js
vendored
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
define(['playbackManager'], function (playbackManager) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
self.name = 'Playback validation';
|
||||||
|
self.type = 'preplayintercept';
|
||||||
|
self.id = 'playbackvalidation';
|
||||||
|
self.order = -1;
|
||||||
|
|
||||||
|
self.intercept = function (options) {
|
||||||
|
|
||||||
|
// Don't care about video backdrops or any kind of non-fullscreen playback
|
||||||
|
if (!options.fullscreen && options.mediaType === 'Video') {
|
||||||
|
return Promise.resolve();
|
||||||
|
}
|
||||||
|
|
||||||
|
return validatePlayback(options);
|
||||||
|
};
|
||||||
|
|
||||||
|
function validatePlayback(options) {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
require(["registrationServices"], function (registrationServices) {
|
||||||
|
registrationServices.validateFeature('playback', options).then(resolve, function () {
|
||||||
|
startAutoStopTimer();
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var autoStopTimeout;
|
||||||
|
var lockedTimeLimitMs = 63000;
|
||||||
|
|
||||||
|
function startAutoStopTimer() {
|
||||||
|
stopAutoStopTimer();
|
||||||
|
autoStopTimeout = setTimeout(onAutoStopTimeout, lockedTimeLimitMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onAutoStopTimeout() {
|
||||||
|
stopAutoStopTimer();
|
||||||
|
playbackManager.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
function stopAutoStopTimer() {
|
||||||
|
|
||||||
|
var timeout = autoStopTimeout;
|
||||||
|
if (timeout) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
autoStopTimeout = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
|
@ -616,13 +616,15 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPlaybackStopped(e, state) {
|
function onPlaybackStopped(e, stopInfo) {
|
||||||
|
|
||||||
console.log('nowplaying event: ' + e.type);
|
console.log('nowplaying event: ' + e.type);
|
||||||
var player = this;
|
var player = this;
|
||||||
|
|
||||||
|
if (stopInfo.nextMediaType !== 'Audio') {
|
||||||
hideNowPlayingBar();
|
hideNowPlayingBar();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function onPlayPauseStateChanged(e) {
|
function onPlayPauseStateChanged(e) {
|
||||||
|
|
||||||
|
|
|
@ -2371,7 +2371,7 @@ var AppInfo = {};
|
||||||
//'plugins/logoscreensaver/plugin',
|
//'plugins/logoscreensaver/plugin',
|
||||||
//'plugins/backdropscreensaver/plugin',
|
//'plugins/backdropscreensaver/plugin',
|
||||||
//'plugins/defaultsoundeffects/plugin',
|
//'plugins/defaultsoundeffects/plugin',
|
||||||
//'plugins/playbackvalidation/plugin'
|
'bower_components/emby-webcomponents/playback/playbackvalidation'
|
||||||
];
|
];
|
||||||
|
|
||||||
if (Dashboard.isRunningInCordova() && browser.android) {
|
if (Dashboard.isRunningInCordova() && browser.android) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue