1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

basic skeleton for epub reader

This commit is contained in:
dkanada 2020-05-05 23:02:05 +09:00 committed by Daniyar Itegulov
parent 1e269f2b27
commit 8478b0ed56
No known key found for this signature in database
GPG key ID: 4DB862B7839037FD
6 changed files with 54 additions and 3 deletions

View file

@ -0,0 +1,35 @@
define(['connectionManager', 'dom'], function (connectionManager, dom) {
'use strict';
function BookPlayer() {
var self = this;
self.name = 'Book Player';
self.type = 'mediaplayer';
self.id = 'bookplayer';
self.priority = 1;
}
BookPlayer.prototype.play = function (values) {
var serverId = values.items[0].ServerId
var apiClient = connectionManager.getApiClient(serverId);
var options = values;
require(['epubjs', 'appFooter-shared'], function (epubjs, appFooter) {
appFooter.element.insertAdjacentHTML('beforebegin', '<div id="bookPlayer"></div>');
var element = document.getElementById('bookPlayer');
var downloadHref = apiClient.getItemDownloadUrl(options.items[0].Id);
var book = epubjs.default(downloadHref, { openAs: 'epub' });
var rendition = book.renderTo(element, { method: "continuous", width: "100%", height: "100%" });
var displayed = rendition.display();
});
};
BookPlayer.prototype.canPlayMediaType = function (mediaType) {
return (mediaType || '').toLowerCase() === 'book';
};
return BookPlayer;
});

View file

@ -2182,7 +2182,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
// Only used internally
self.getCurrentTicks = getCurrentTicks;
function playPhotos(items, options, user) {
function playOther(items, options, user) {
var playStartIndex = options.startIndex || 0;
var player = getPlayer(items[playStartIndex], options);
@ -2211,9 +2211,9 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
return Promise.reject();
}
if (firstItem.MediaType === 'Photo') {
if (firstItem.MediaType === 'Photo' || firstItem.MediaType === 'Book') {
return playPhotos(items, options, user);
return playOther(items, options, user);
}
var apiClient = connectionManager.getApiClient(firstItem.ServerId);