bundle flvjs and shaka and move all libs to one folder

This commit is contained in:
dkanada 2019-10-01 00:51:56 +09:00
parent bbc5a5f491
commit 02a23ffaee
11 changed files with 86 additions and 155 deletions

View File

@ -14,10 +14,12 @@
"webpack-cli": "^3.2.3"
},
"dependencies": {
"flv.js": "^1.5.0",
"jstree": "^3.3.7",
"jquery": "^3.4.1",
"hls.js": "^0.12.4",
"howler": "^2.1.2",
"shaka-player": "^2.5.5",
"swiper": "^4.5.0",
"sortablejs": "^1.9.0",
"libjass": "^0.11.0"

View File

@ -4,6 +4,10 @@
// Use define from require.js not webpack's define
var _define = window.define;
// flvjs
var flvjs = require("flv.js");
_define("flvjs", function() { return flvjs; });
// jstree
var jstree = require("jstree");
require("jstree/dist/themes/default/style.css");
@ -21,6 +25,10 @@ _define("hlsjs", function() { return hlsjs; });
var howler = require("howler");
_define("howler", function() { return howler; });
// shaka
var shaka = require("shaka-player");
_define("shaka", function() { return shaka });
// swiper
var swiper = require("swiper");
require("swiper/dist/css/swiper.min.css");

View File

@ -430,13 +430,8 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
function loadUserSkinWithOptions(ctx) {
require(['queryString'], function (queryString) {
//var url = options.url;
//var index = url.indexOf('?');
var params = queryString.parse(ctx.querystring);
skinManager.loadUserSkin({
start: params.start
});
@ -444,16 +439,13 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
function validateRoles(apiClient, roles) {
return Promise.all(roles.split(',').map(function (role) {
return validateRole(apiClient, role);
}));
}
function validateRole(apiClient, role) {
if (role === 'admin') {
return apiClient.getCurrentUser().then(function (user) {
if (user.Policy.IsAdministrator) {
return Promise.resolve();
@ -480,7 +472,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
route: route,
path: ctx.path
};
//next();
ctx.handled = true;
}
@ -503,7 +494,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
function endsWith(str, srch) {
return str.lastIndexOf(srch) === srch.length - 1;
}
@ -513,6 +503,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
if (endsWith(baseRoute, '/') && !endsWith(baseRoute, '://')) {
baseRoute = baseRoute.substring(0, baseRoute.length - 1);
}
function baseUrl() {
return baseRoute;
}
@ -551,14 +542,11 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
function back() {
page.back();
}
function canGoBack() {
var curr = current();
if (!curr) {
return false;
}
@ -576,7 +564,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
function show(path, options) {
if (path.indexOf('/') !== 0 && path.indexOf('://') === -1) {
path = '/' + path;
}
@ -585,7 +572,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
path = path.replace(baseRoute, '');
if (currentRouteInfo && currentRouteInfo.path === path) {
// can't use this with home right now due to the back menu
if (currentRouteInfo.route.type !== 'home') {
loading.hide();
@ -594,7 +580,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
return new Promise(function (resolve, reject) {
resolveOnNextShow = resolve;
page.show(path, options);
});
@ -615,14 +600,12 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
function showItem(item, serverId, options) {
if (typeof (item) === 'string') {
var apiClient = serverId ? connectionManager.getApiClient(serverId) : connectionManager.currentApiClient();
apiClient.getItem(apiClient.getCurrentUserId(), item).then(function (item) {
appRouter.showItem(item, options);
});
} else {
if (arguments.length === 2) {
options = arguments[1];
}
@ -637,7 +620,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
var allRoutes = [];
function addRoute(path, newRoute) {
page(path, getHandler(newRoute));
allRoutes.push(newRoute);
}
@ -649,7 +631,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
var backdropContainer;
var backgroundContainer;
function setTransparency(level) {
if (!backdropContainer) {
backdropContainer = document.querySelector('.backdropContainer');
}
@ -662,8 +643,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
document.documentElement.classList.add('transparentDocument');
backgroundContainer.classList.add('backgroundContainer-transparent');
backdropContainer.classList.add('hide');
}
else if (level === 'backdrop' || level === 1) {
} else if (level === 'backdrop' || level === 1) {
backdrop.externalBackdrop(true);
document.documentElement.classList.add('transparentDocument');
backgroundContainer.classList.add('backgroundContainer-transparent');
@ -677,9 +657,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
function pushState(state, title, url) {
state.navigate = false;
page.pushState(state, title, url);
}
@ -690,40 +668,24 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
console.log('Setting page base to ' + baseRoute);
page.base(baseRoute);
}
setBaseRoute();
function syncNow() {
require(['localsync'], function (localSync) {
localSync.sync();
});
}
function invokeShortcut(id) {
if (id.indexOf('library-') === 0) {
id = id.replace('library-', '');
id = id.split('_');
appRouter.showItem(id[0], id[1]);
} else if (id.indexOf('item-') === 0) {
id = id.replace('item-', '');
id = id.split('_');
appRouter.showItem(id[0], id[1]);
} else {
id = id.split('_');
appRouter.show(appRouter.getRouteUrl(id[0], {
serverId: id[1]
}));
@ -740,6 +702,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
appRouter.canGoBack = canGoBack;
appRouter.current = current;
appRouter.beginConnectionWizard = beginConnectionWizard;
appRouter.invokeShortcut = invokeShortcut;
appRouter.showItem = showItem;
appRouter.setTransparency = setTransparency;
appRouter.getRoutes = getRoutes;
@ -751,7 +714,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
Backdrop: 1,
Full: 2
};
appRouter.invokeShortcut = invokeShortcut;
return appRouter;
});

View File

@ -2,7 +2,6 @@ define(['appStorage', 'events'], function (appStorage, events) {
'use strict';
function getKey(name, userId) {
if (userId) {
name = userId + '-' + name;
}
@ -15,20 +14,15 @@ define(['appStorage', 'events'], function (appStorage, events) {
}
AppSettings.prototype.enableAutoLogin = function (val) {
if (val != null) {
this.set('enableAutoLogin', val.toString());
}
return this.get('enableAutoLogin') !== 'false';
};
AppSettings.prototype.enableAutomaticBitrateDetection = function (isInNetwork, mediaType, val) {
var key = 'enableautobitratebitrate-' + mediaType + '-' + isInNetwork;
if (val != null) {
if (isInNetwork && mediaType === 'Audio') {
val = true;
}
@ -44,11 +38,8 @@ define(['appStorage', 'events'], function (appStorage, events) {
};
AppSettings.prototype.maxStreamingBitrate = function (isInNetwork, mediaType, val) {
var key = 'maxbitrate-' + mediaType + '-' + isInNetwork;
if (val != null) {
if (isInNetwork && mediaType === 'Audio') {
// nothing to do, this is always a max value
} else {
@ -65,7 +56,6 @@ define(['appStorage', 'events'], function (appStorage, events) {
};
AppSettings.prototype.maxStaticMusicBitrate = function (val) {
if (val !== undefined) {
this.set('maxStaticMusicBitrate', val);
}
@ -75,18 +65,15 @@ define(['appStorage', 'events'], function (appStorage, events) {
};
AppSettings.prototype.maxChromecastBitrate = function (val) {
if (val != null) {
this.set('chromecastBitrate1', val);
}
val = this.get('chromecastBitrate1');
return val ? parseInt(val) : null;
};
AppSettings.prototype.syncOnlyOnWifi = function (val) {
if (val != null) {
this.set('syncOnlyOnWifi', val.toString());
}
@ -95,7 +82,6 @@ define(['appStorage', 'events'], function (appStorage, events) {
};
AppSettings.prototype.syncPath = function (val) {
if (val != null) {
this.set('syncPath', val);
}
@ -104,13 +90,11 @@ define(['appStorage', 'events'], function (appStorage, events) {
};
AppSettings.prototype.cameraUploadServers = function (val) {
if (val != null) {
this.set('cameraUploadServers', val.join(','));
}
val = this.get('cameraUploadServers');
if (val) {
return val.split(',');
}
@ -119,7 +103,6 @@ define(['appStorage', 'events'], function (appStorage, events) {
};
AppSettings.prototype.runAtStartup = function (val) {
if (val != null) {
this.set('runatstartup', val.toString());
}
@ -128,9 +111,7 @@ define(['appStorage', 'events'], function (appStorage, events) {
};
AppSettings.prototype.set = function (name, value, userId) {
var currentValue = this.get(name, userId);
appStorage.setItem(getKey(name, userId), value);
if (currentValue !== value) {
@ -139,12 +120,10 @@ define(['appStorage', 'events'], function (appStorage, events) {
};
AppSettings.prototype.get = function (name, userId) {
return appStorage.getItem(getKey(name, userId));
};
AppSettings.prototype.enableSystemExternalPlayers = function (val) {
if (val != null) {
this.set('enableSystemExternalPlayers', val.toString());
}

View File

@ -223,7 +223,9 @@ var Dashboard = {
return capabilities = Object.assign(capabilities, appHost.getPushTokenInfo());
}
};
var AppInfo = {};
!function () {
"use strict";
@ -290,7 +292,7 @@ var AppInfo = {};
connectionManager.addApiClient(apiClient);
window.ApiClient = apiClient;
localApiClient = apiClient;
localApiClient = apiClient;
console.log("loaded ApiClient singleton");
});
@ -309,6 +311,10 @@ var AppInfo = {};
return "bower_components";
}
function getComponentsPath() {
return "components";
}
function getPlaybackManager(playbackManager) {
window.addEventListener("beforeunload", function () {
try {
@ -381,14 +387,13 @@ var AppInfo = {};
return self.ResizeObserver;
});
} else {
define("ResizeObserver", ["thirdparty/resize-observer-polyfill/ResizeObserver"], returnFirstDependency);
define("ResizeObserver", [getBowerPath() + "/resize-observer-polyfill/ResizeObserver"], returnFirstDependency);
}
}
function initRequireWithBrowser(browser) {
var bowerPath = getBowerPath();
var apiClientBowerPath = bowerPath + "/apiclient";
var componentsPath = "components";
var componentsPath = getComponentsPath();
define("filesystem", [componentsPath + "/filesystem"], returnFirstDependency);
@ -400,7 +405,7 @@ var AppInfo = {};
define("shell", [componentsPath + "/shell"], returnFirstDependency);
define("apiclient", [apiClientBowerPath + "/apiclient"], returnFirstDependency);
define("apiclient", [bowerPath + "/apiclient/apiclient"], returnFirstDependency);
if ("registerElement" in document) {
define("registerElement", []);
@ -434,7 +439,7 @@ var AppInfo = {};
define("loading", [componentsPath + "/loading/loading"], returnFirstDependency);
define("multi-download", [componentsPath + "/multidownload"], returnFirstDependency);
define("fileDownloader", [componentsPath + "/filedownloader"], returnFirstDependency);
define("localassetmanager", [apiClientBowerPath + "/localassetmanager"], returnFirstDependency);
define("localassetmanager", [bowerPath + "/apiclient/localassetmanager"], returnFirstDependency);
if ("cordova" === self.appMode || "android" === self.appMode) {
define("castSenderApiLoader", [], getDummyCastSenderApiLoader);
@ -442,9 +447,9 @@ var AppInfo = {};
define("castSenderApiLoader", [], getCastSenderApiLoader);
}
define("transfermanager", [apiClientBowerPath + "/sync/transfermanager"], returnFirstDependency);
define("filerepository", [apiClientBowerPath + "/sync/filerepository"], returnFirstDependency);
define("localsync", [apiClientBowerPath + "/sync/localsync"], returnFirstDependency);
define("transfermanager", [bowerPath + "/apiclient/sync/transfermanager"], returnFirstDependency);
define("filerepository", [bowerPath + "/apiclient/sync/filerepository"], returnFirstDependency);
define("localsync", [bowerPath + "/apiclient/sync/localsync"], returnFirstDependency);
}
function init() {
@ -560,64 +565,52 @@ var AppInfo = {};
// ensure that appHost is loaded in this point
require(['apphost', 'appRouter'], function (appHost, appRouter) {
var isInBackground = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync");
window.Emby = {};
console.log("onAppReady - loading dependencies");
if (browser.iOS) {
require(['css!css/ios.css']);
}
if (isInBackground) {
syncNow();
} else {
window.Emby.Page = appRouter;
if (browser.iOS) {
require(['css!css/ios.css']);
require(['emby-button', 'scripts/themeloader', 'libraryMenu', 'scripts/routes'], function () {
Emby.Page.start({
click: false,
hashbang: true
});
require(["components/thememediaplayer", "scripts/autobackdrops"]);
if (!browser.tv && !browser.xboxOne && !browser.ps4) {
require(["components/nowplayingbar/nowplayingbar"]);
}
window.Emby.Page = appRouter;
if (appHost.supports("remotecontrol")) {
require(["playerSelectionMenu", "components/playback/remotecontrolautoplay"]);
}
require(['emby-button', 'scripts/themeloader', 'libraryMenu', 'scripts/routes'], function () {
Emby.Page.start({
click: false,
hashbang: true
});
if (!appHost.supports("physicalvolumecontrol") || browser.touch) {
require(["components/playback/volumeosd"]);
}
require(["components/thememediaplayer", "scripts/autobackdrops"]);
require(["mediaSession", "serverNotifications"]);
if (!browser.tv && !browser.xboxOne && !browser.ps4) {
require(["components/nowplayingbar/nowplayingbar"]);
if (!browser.tv && !browser.xboxOne) {
require(["components/playback/playbackorientation"]);
registerServiceWorker();
if (window.Notification) {
require(["components/notifications/notifications"]);
}
}
if (appHost.supports("remotecontrol")) {
require(["playerSelectionMenu", "components/playback/remotecontrolautoplay"]);
}
require(["playerSelectionMenu", "fullscreenManager"]);
if (!appHost.supports("physicalvolumecontrol") || browser.touch) {
require(["components/playback/volumeosd"]);
}
require(["mediaSession", "serverNotifications"]);
if (!browser.tv && !browser.xboxOne) {
require(["components/playback/playbackorientation"]);
registerServiceWorker();
if (window.Notification) {
require(["components/notifications/notifications"]);
}
}
require(["playerSelectionMenu", "fullscreenManager"]);
if (appHost.supports("sync")) {
initLocalSyncEvents();
}
if (!AppInfo.isNativeApp && window.ApiClient) {
require(["css!" + ApiClient.getUrl("Branding/Css")]);
}
});
}
if (!AppInfo.isNativeApp && window.ApiClient) {
require(["css!" + ApiClient.getUrl("Branding/Css")]);
}
});
});
}
@ -631,20 +624,6 @@ var AppInfo = {};
}
}
function syncNow() {
require(["localsync"], function (localSync) {
localSync.sync();
});
}
function initLocalSyncEvents() {
require(["serverNotifications", "events"], function (serverNotifications, events) {
events.on(serverNotifications, "SyncJobItemReady", syncNow);
events.on(serverNotifications, "SyncJobCancelled", syncNow);
events.on(serverNotifications, "SyncJobItemCancelled", syncNow);
});
}
function onWebComponentsReady(browser) {
initRequireWithBrowser(browser);
@ -653,7 +632,7 @@ var AppInfo = {};
}
if (!window.Promise || browser.web0s) {
require(["thirdparty/native-promise-only/lib/npo.src"], init);
require([getBowerPath() + "/native-promise-only/lib/npo.src"], init);
} else {
init();
}
@ -664,24 +643,24 @@ var AppInfo = {};
(function () {
var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate());
var bowerPath = getBowerPath();
var apiClientBowerPath = bowerPath + "/apiclient";
var componentsPath = "components";
var componentsPath = getComponentsPath();
var paths = {
playlisteditor: componentsPath + "/playlisteditor/playlisteditor",
medialibrarycreator: componentsPath + "/medialibrarycreator/medialibrarycreator",
medialibraryeditor: componentsPath + "/medialibraryeditor/medialibraryeditor",
imageoptionseditor: componentsPath + "/imageoptionseditor/imageoptionseditor",
humanedate: componentsPath + "/humanedate",
apphost: componentsPath + "/apphost",
libraryBrowser: "scripts/librarybrowser",
events: apiClientBowerPath + "/events",
credentialprovider: apiClientBowerPath + "/credentialprovider",
events: bowerPath + "/apiclient/events",
credentialprovider: bowerPath + "/apiclient/credentialprovider",
connectionManagerFactory: bowerPath + "/apiclient/connectionmanager",
visibleinviewport: componentsPath + "/visibleinviewport",
browserdeviceprofile: componentsPath + "/browserdeviceprofile",
browser: componentsPath + "/browser",
inputManager: componentsPath + "/inputManager",
qualityoptions: componentsPath + "/qualityoptions",
page: "thirdparty/page",
page: bowerPath + "/page",
focusManager: componentsPath + "/focusManager",
datetime: componentsPath + "/datetime",
globalize: componentsPath + "/globalize",
@ -693,10 +672,8 @@ var AppInfo = {};
pluginManager: componentsPath + "/pluginManager",
packageManager: componentsPath + "/packagemanager"
};
paths.flvjs = "thirdparty/flvjs/flv.min";
paths.shaka = "thirdparty/shaka/shaka-player.compiled";
paths.apphost = componentsPath + "/apphost";
requirejs.onError = onRequireJsError;
requirejs.config({
waitSeconds: 0,
map: {
@ -706,13 +683,22 @@ var AppInfo = {};
}
},
bundles: {
bundle: ["jstree", "jQuery", "hlsjs", "howler", "swiper", "sortable", "libjass"]
bundle: [
"flvjs",
"jstree",
"jQuery",
"hlsjs",
"howler",
"shaka",
"swiper",
"sortable",
"libjass"
]
},
urlArgs: urlArgs,
paths: paths,
onError: onRequireJsError
});
requirejs.onError = onRequireJsError;
// Expose jQuery globally
require(["jQuery"], function(jQuery) {
@ -808,7 +794,7 @@ var AppInfo = {};
viewManager.dispatchPageEvents(true);
return viewManager;
});
define('appStorage', [apiClientBowerPath + '/appStorage'], returnFirstDependency);
define('appStorage', [bowerPath + "/apiclient/appStorage"], returnFirstDependency);
define("dashboardcss", ["css!css/dashboard"], returnFirstDependency);
define("slideshow", [componentsPath + "/slideshow/slideshow"], returnFirstDependency);
define("fetch", [bowerPath + "/fetch/fetch"], returnFirstDependency);
@ -824,13 +810,13 @@ var AppInfo = {};
define("viewSettings", [componentsPath + "/viewsettings/viewsettings"], returnFirstDependency);
define("filterMenu", [componentsPath + "/filtermenu/filtermenu"], returnFirstDependency);
define("sortMenu", [componentsPath + "/sortmenu/sortmenu"], returnFirstDependency);
define("serversync", [apiClientBowerPath + "/sync/serversync"], returnFirstDependency);
define("multiserversync", [apiClientBowerPath + "/sync/multiserversync"], returnFirstDependency);
define("mediasync", [apiClientBowerPath + "/sync/mediasync"], returnFirstDependency);
define("serversync", [bowerPath + "/apiclient/sync/serversync"], returnFirstDependency);
define("multiserversync", [bowerPath + "/apiclient/sync/multiserversync"], returnFirstDependency);
define("mediasync", [bowerPath + "/apiclient/sync/mediasync"], returnFirstDependency);
define("idb", [componentsPath + "/idb"], returnFirstDependency);
define("sanitizefilename", [componentsPath + "/sanitizefilename"], returnFirstDependency);
define("itemrepository", [apiClientBowerPath + "/sync/itemrepository"], returnFirstDependency);
define("useractionrepository", [apiClientBowerPath + "/sync/useractionrepository"], returnFirstDependency);
define("itemrepository", [bowerPath + "/apiclient/sync/itemrepository"], returnFirstDependency);
define("useractionrepository", [bowerPath + "/apiclient/sync/useractionrepository"], returnFirstDependency);
define("scroller", [componentsPath + "/scroller"], returnFirstDependency);
define("toast", [componentsPath + "/toast/toast"], returnFirstDependency);
define("scrollHelper", [componentsPath + "/scrollhelper"], returnFirstDependency);
@ -1133,9 +1119,11 @@ var AppInfo = {};
return require(["browser"], onWebComponentsReady);
}();
pageClassOn("viewshow", "standalonePage", function () {
document.querySelector(".skinHeader").classList.add("noHeaderRight");
});
pageClassOn("viewhide", "standalonePage", function () {
document.querySelector(".skinHeader").classList.remove("noHeaderRight");
});

View File

@ -1297,7 +1297,6 @@
"LabelHomeNetworkQuality": "Hjemme netværk kvalitet:",
"LabelHomeScreenSectionValue": "Hjemmeskærm sektion {0}:",
"LabelInternetQuality": "Internet kvalitet:",
"LabelLocalSyncStatusValue": "Status: {0}",
"LabelLogs": "Log:",
"LabelMatchType": "Passer til type:",
"LabelMaxBitrate": "Maks bitrate:",

File diff suppressed because one or more lines are too long