Merge pull request #816 from MrTimscampi/quiet
Make the console quieter by default
This commit is contained in:
commit
b3da19a596
56 changed files with 295 additions and 282 deletions
|
@ -241,7 +241,7 @@ define(['focusManager', 'layoutManager', 'dom', 'css!./style.css', 'paper-icon-b
|
||||||
try {
|
try {
|
||||||
btn = element.querySelector('.alphaPickerButton[data-value=\'' + value + '\']');
|
btn = element.querySelector('.alphaPickerButton[data-value=\'' + value + '\']');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('Error in querySelector: ' + err);
|
console.error('error in querySelector: ' + err);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (btn && btn !== selected) {
|
if (btn && btn !== selected) {
|
||||||
|
|
|
@ -387,13 +387,13 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
var apiClient = connectionManager.currentApiClient();
|
var apiClient = connectionManager.currentApiClient();
|
||||||
var pathname = ctx.pathname.toLowerCase();
|
var pathname = ctx.pathname.toLowerCase();
|
||||||
|
|
||||||
console.log('appRouter - processing path request ' + pathname);
|
console.debug('appRouter - processing path request ' + pathname);
|
||||||
|
|
||||||
var isCurrentRouteStartup = currentRouteInfo ? currentRouteInfo.route.startup : true;
|
var isCurrentRouteStartup = currentRouteInfo ? currentRouteInfo.route.startup : true;
|
||||||
var shouldExitApp = ctx.isBack && route.isDefaultRoute && isCurrentRouteStartup;
|
var shouldExitApp = ctx.isBack && route.isDefaultRoute && isCurrentRouteStartup;
|
||||||
|
|
||||||
if (!shouldExitApp && (!apiClient || !apiClient.isLoggedIn()) && !route.anonymous) {
|
if (!shouldExitApp && (!apiClient || !apiClient.isLoggedIn()) && !route.anonymous) {
|
||||||
console.log('appRouter - route does not allow anonymous access, redirecting to login');
|
console.debug('appRouter - route does not allow anonymous access, redirecting to login');
|
||||||
beginConnectionWizard();
|
beginConnectionWizard();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -408,10 +408,10 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
|
|
||||||
if (apiClient && apiClient.isLoggedIn()) {
|
if (apiClient && apiClient.isLoggedIn()) {
|
||||||
|
|
||||||
console.log('appRouter - user is authenticated');
|
console.debug('appRouter - user is authenticated');
|
||||||
|
|
||||||
if (route.isDefaultRoute) {
|
if (route.isDefaultRoute) {
|
||||||
console.log('appRouter - loading skin home page');
|
console.debug('appRouter - loading skin home page');
|
||||||
loadUserSkinWithOptions(ctx);
|
loadUserSkinWithOptions(ctx);
|
||||||
return;
|
return;
|
||||||
} else if (route.roles) {
|
} else if (route.roles) {
|
||||||
|
@ -425,7 +425,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('appRouter - proceeding to ' + pathname);
|
console.debug('appRouter - proceeding to ' + pathname);
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -672,7 +672,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
baseRoute = baseRoute.substring(0, baseRoute.length - 1);
|
baseRoute = baseRoute.substring(0, baseRoute.length - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Setting page base to ' + baseRoute);
|
console.debug('setting page base to ' + baseRoute);
|
||||||
page.base(baseRoute);
|
page.base(baseRoute);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -186,7 +186,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet
|
||||||
|
|
||||||
return !!cue.length;
|
return !!cue.length;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("error detecting cue support: " + err);
|
console.error("error detecting cue support: " + err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,7 +194,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet
|
||||||
function onAppVisible() {
|
function onAppVisible() {
|
||||||
if (isHidden) {
|
if (isHidden) {
|
||||||
isHidden = false;
|
isHidden = false;
|
||||||
console.log("triggering app resume event");
|
console.debug("triggering app resume event");
|
||||||
events.trigger(appHost, "resume");
|
events.trigger(appHost, "resume");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,7 +202,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet
|
||||||
function onAppHidden() {
|
function onAppHidden() {
|
||||||
if (!isHidden) {
|
if (!isHidden) {
|
||||||
isHidden = true;
|
isHidden = true;
|
||||||
console.log("app is hidden");
|
console.debug("app is hidden");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet
|
||||||
window.close();
|
window.close();
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("error closing application: " + err);
|
console.error("error closing application: " + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ define(["focusManager", "layoutManager"], function (focusManager, layoutManager)
|
||||||
activeElement = e.target;
|
activeElement = e.target;
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log("AutoFocuser enabled");
|
console.debug("AutoFocuser enabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -342,7 +342,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana
|
||||||
try {
|
try {
|
||||||
newIndexValue = datetime.toLocaleDateString(datetime.parseISO8601Date(item.PremiereDate), { weekday: 'long', month: 'long', day: 'numeric' });
|
newIndexValue = datetime.toLocaleDateString(datetime.parseISO8601Date(item.PremiereDate), { weekday: 'long', month: 'long', day: 'numeric' });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('error parsing timestamp for premiere date');
|
console.error('error parsing timestamp for premiere date');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (options.indexBy === 'ProductionYear') {
|
} else if (options.indexBy === 'ProductionYear') {
|
||||||
|
@ -738,7 +738,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana
|
||||||
airTimeText += ' - ' + datetime.getDisplayTime(date);
|
airTimeText += ' - ' + datetime.getDisplayTime(date);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error parsing date: " + item.StartDate);
|
console.error("error parsing date: " + item.StartDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,7 @@ define(['events'], function (events) {
|
||||||
var match;
|
var match;
|
||||||
|
|
||||||
while (match = linkRegExp.exec(text)) {
|
while (match = linkRegExp.exec(text)) {
|
||||||
// console.log(matches);
|
console.debug(matches);
|
||||||
var txt = match[0];
|
var txt = match[0];
|
||||||
var pos = match.index;
|
var pos = match.index;
|
||||||
var len = txt.length;
|
var len = txt.length;
|
||||||
|
@ -189,7 +189,7 @@ define(['events'], function (events) {
|
||||||
return apiClient.getPublicSystemInfo().then(function (info) {
|
return apiClient.getPublicSystemInfo().then(function (info) {
|
||||||
var localAddress = info.LocalAddress
|
var localAddress = info.LocalAddress
|
||||||
if (!localAddress) {
|
if (!localAddress) {
|
||||||
console.log("No valid local address returned, defaulting to external one")
|
console.debug("No valid local address returned, defaulting to external one")
|
||||||
localAddress = serverAddress;
|
localAddress = serverAddress;
|
||||||
}
|
}
|
||||||
addToCache(serverAddress, localAddress);
|
addToCache(serverAddress, localAddress);
|
||||||
|
|
|
@ -105,7 +105,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
this.sessionListener.bind(this),
|
this.sessionListener.bind(this),
|
||||||
this.receiverListener.bind(this));
|
this.receiverListener.bind(this));
|
||||||
|
|
||||||
console.log('chromecast.initialize');
|
console.debug('chromecast.initialize');
|
||||||
chrome.cast.initialize(apiConfig, this.onInitSuccess.bind(this), this.errorHandler);
|
chrome.cast.initialize(apiConfig, this.onInitSuccess.bind(this), this.errorHandler);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -114,14 +114,14 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.onInitSuccess = function () {
|
CastPlayer.prototype.onInitSuccess = function () {
|
||||||
this.isInitialized = true;
|
this.isInitialized = true;
|
||||||
console.log("chromecast init success");
|
console.debug("chromecast init success");
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generic error callback function
|
* Generic error callback function
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.onError = function () {
|
CastPlayer.prototype.onError = function () {
|
||||||
console.log("chromecast error");
|
console.debug("chromecast error");
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -177,10 +177,10 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.receiverListener = function (e) {
|
CastPlayer.prototype.receiverListener = function (e) {
|
||||||
if (e === 'available') {
|
if (e === 'available') {
|
||||||
console.log("chromecast receiver found");
|
console.debug("chromecast receiver found");
|
||||||
this.hasReceivers = true;
|
this.hasReceivers = true;
|
||||||
} else {
|
} else {
|
||||||
console.log("chromecast receiver list empty");
|
console.debug("chromecast receiver list empty");
|
||||||
this.hasReceivers = false;
|
this.hasReceivers = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -190,7 +190,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.sessionUpdateListener = function (isAlive) {
|
CastPlayer.prototype.sessionUpdateListener = function (isAlive) {
|
||||||
if (isAlive) {
|
if (isAlive) {
|
||||||
console.log('sessionUpdateListener: already alive');
|
console.debug('sessionUpdateListener: already alive');
|
||||||
} else {
|
} else {
|
||||||
this.session = null;
|
this.session = null;
|
||||||
this.deviceState = DEVICE_STATE.IDLE;
|
this.deviceState = DEVICE_STATE.IDLE;
|
||||||
|
@ -198,7 +198,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
document.removeEventListener("volumeupbutton", onVolumeUpKeyDown, false);
|
document.removeEventListener("volumeupbutton", onVolumeUpKeyDown, false);
|
||||||
document.removeEventListener("volumedownbutton", onVolumeDownKeyDown, false);
|
document.removeEventListener("volumedownbutton", onVolumeDownKeyDown, false);
|
||||||
|
|
||||||
console.log('sessionUpdateListener: setting currentMediaSession to null');
|
console.debug('sessionUpdateListener: setting currentMediaSession to null');
|
||||||
this.currentMediaSession = null;
|
this.currentMediaSession = null;
|
||||||
|
|
||||||
sendConnectionResult(false);
|
sendConnectionResult(false);
|
||||||
|
@ -211,7 +211,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
* session request in opt_sessionRequest.
|
* session request in opt_sessionRequest.
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.launchApp = function () {
|
CastPlayer.prototype.launchApp = function () {
|
||||||
console.log("chromecast launching app...");
|
console.debug("chromecast launching app...");
|
||||||
chrome.cast.requestSession(this.onRequestSessionSuccess.bind(this), this.onLaunchError.bind(this));
|
chrome.cast.requestSession(this.onRequestSessionSuccess.bind(this), this.onLaunchError.bind(this));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
* @param {Object} e A chrome.cast.Session object
|
* @param {Object} e A chrome.cast.Session object
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.onRequestSessionSuccess = function (e) {
|
CastPlayer.prototype.onRequestSessionSuccess = function (e) {
|
||||||
console.log("chromecast session success: " + e.sessionId);
|
console.debug("chromecast session success: " + e.sessionId);
|
||||||
this.onSessionConnected(e);
|
this.onSessionConnected(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -262,7 +262,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
* Callback function for launch error
|
* Callback function for launch error
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.onLaunchError = function () {
|
CastPlayer.prototype.onLaunchError = function () {
|
||||||
console.log("chromecast launch error");
|
console.debug("chromecast launch error");
|
||||||
this.deviceState = DEVICE_STATE.ERROR;
|
this.deviceState = DEVICE_STATE.ERROR;
|
||||||
sendConnectionResult(false);
|
sendConnectionResult(false);
|
||||||
};
|
};
|
||||||
|
@ -280,7 +280,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
* Callback function for stop app success
|
* Callback function for stop app success
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.onStopAppSuccess = function (message) {
|
CastPlayer.prototype.onStopAppSuccess = function (message) {
|
||||||
console.log(message);
|
console.debug(message);
|
||||||
|
|
||||||
this.deviceState = DEVICE_STATE.IDLE;
|
this.deviceState = DEVICE_STATE.IDLE;
|
||||||
this.castPlayerState = PLAYER_STATE.IDLE;
|
this.castPlayerState = PLAYER_STATE.IDLE;
|
||||||
|
@ -296,7 +296,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.loadMedia = function (options, command) {
|
CastPlayer.prototype.loadMedia = function (options, command) {
|
||||||
if (!this.session) {
|
if (!this.session) {
|
||||||
console.log("no session");
|
console.debug("no session");
|
||||||
return Promise.reject();
|
return Promise.reject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
};
|
};
|
||||||
|
|
||||||
CastPlayer.prototype.onPlayCommandSuccess = function () {
|
CastPlayer.prototype.onPlayCommandSuccess = function () {
|
||||||
//console.log('Message was sent to receiver ok.');
|
console.debug('Message was sent to receiver ok.');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -386,7 +386,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.onMediaDiscovered = function (how, mediaSession) {
|
CastPlayer.prototype.onMediaDiscovered = function (how, mediaSession) {
|
||||||
|
|
||||||
//console.log("chromecast new media session ID:" + mediaSession.mediaSessionId + ' (' + how + ')');
|
console.debug("chromecast new media session ID:" + mediaSession.mediaSessionId + ' (' + how + ')');
|
||||||
this.currentMediaSession = mediaSession;
|
this.currentMediaSession = mediaSession;
|
||||||
|
|
||||||
if (how === 'loadMedia') {
|
if (how === 'loadMedia') {
|
||||||
|
@ -405,7 +405,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
* @param {!Boolean} e true/false
|
* @param {!Boolean} e true/false
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.onMediaStatusUpdate = function (e) {
|
CastPlayer.prototype.onMediaStatusUpdate = function (e) {
|
||||||
//console.log("chromecast updating media: " + e);
|
console.debug("chromecast updating media: " + e);
|
||||||
if (e === false) {
|
if (e === false) {
|
||||||
this.castPlayerState = PLAYER_STATE.IDLE;
|
this.castPlayerState = PLAYER_STATE.IDLE;
|
||||||
}
|
}
|
||||||
|
@ -417,7 +417,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.setReceiverVolume = function (mute, vol) {
|
CastPlayer.prototype.setReceiverVolume = function (mute, vol) {
|
||||||
if (!this.currentMediaSession) {
|
if (!this.currentMediaSession) {
|
||||||
//console.log('this.currentMediaSession is null');
|
console.debug('this.currentMediaSession is null');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,7 +443,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
* Callback function for media command success
|
* Callback function for media command success
|
||||||
*/
|
*/
|
||||||
CastPlayer.prototype.mediaCommandSuccessCallback = function (info, e) {
|
CastPlayer.prototype.mediaCommandSuccessCallback = function (info, e) {
|
||||||
//console.log(info);
|
console.debug(info);
|
||||||
};
|
};
|
||||||
|
|
||||||
function normalizeImages(state) {
|
function normalizeImages(state) {
|
||||||
|
@ -493,7 +493,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
|
|
||||||
events.on(instance._castPlayer, eventName, function (e, data) {
|
events.on(instance._castPlayer, eventName, function (e, data) {
|
||||||
|
|
||||||
//console.log('cc: ' + eventName);
|
console.debug('cc: ' + eventName);
|
||||||
var state = instance.getPlayerStateInternal(data);
|
var state = instance.getPlayerStateInternal(data);
|
||||||
|
|
||||||
events.trigger(instance, eventName, [state]);
|
events.trigger(instance, eventName, [state]);
|
||||||
|
@ -520,14 +520,14 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
playbackManager.setActivePlayer(PlayerName, instance.getCurrentTargetInfo());
|
playbackManager.setActivePlayer(PlayerName, instance.getCurrentTargetInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('cc: connect');
|
console.debug('cc: connect');
|
||||||
// Reset this so that statechange will fire
|
// Reset this so that statechange will fire
|
||||||
instance.lastPlayerData = null;
|
instance.lastPlayerData = null;
|
||||||
});
|
});
|
||||||
|
|
||||||
events.on(instance._castPlayer, "playbackstart", function (e, data) {
|
events.on(instance._castPlayer, "playbackstart", function (e, data) {
|
||||||
|
|
||||||
console.log('cc: playbackstart');
|
console.debug('cc: playbackstart');
|
||||||
|
|
||||||
instance._castPlayer.initializeCastPlayer();
|
instance._castPlayer.initializeCastPlayer();
|
||||||
|
|
||||||
|
@ -537,7 +537,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
|
|
||||||
events.on(instance._castPlayer, "playbackstop", function (e, data) {
|
events.on(instance._castPlayer, "playbackstop", function (e, data) {
|
||||||
|
|
||||||
console.log('cc: playbackstop');
|
console.debug('cc: playbackstop');
|
||||||
var state = instance.getPlayerStateInternal(data);
|
var state = instance.getPlayerStateInternal(data);
|
||||||
|
|
||||||
events.trigger(instance, "playbackstop", [state]);
|
events.trigger(instance, "playbackstop", [state]);
|
||||||
|
@ -555,7 +555,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
|
|
||||||
events.on(instance._castPlayer, "playbackprogress", function (e, data) {
|
events.on(instance._castPlayer, "playbackprogress", function (e, data) {
|
||||||
|
|
||||||
//console.log('cc: positionchange');
|
console.debug('cc: positionchange');
|
||||||
var state = instance.getPlayerStateInternal(data);
|
var state = instance.getPlayerStateInternal(data);
|
||||||
|
|
||||||
events.trigger(instance, "timeupdate", [state]);
|
events.trigger(instance, "timeupdate", [state]);
|
||||||
|
@ -569,7 +569,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
|
|
||||||
events.on(instance._castPlayer, "playstatechange", function (e, data) {
|
events.on(instance._castPlayer, "playstatechange", function (e, data) {
|
||||||
|
|
||||||
//console.log('cc: playstatechange');
|
console.debug('cc: playstatechange');
|
||||||
var state = instance.getPlayerStateInternal(data);
|
var state = instance.getPlayerStateInternal(data);
|
||||||
|
|
||||||
events.trigger(instance, "pause", [state]);
|
events.trigger(instance, "pause", [state]);
|
||||||
|
@ -664,7 +664,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
|
||||||
|
|
||||||
normalizeImages(data);
|
normalizeImages(data);
|
||||||
|
|
||||||
//console.log(JSON.stringify(data));
|
console.debug(JSON.stringify(data));
|
||||||
|
|
||||||
if (triggerStateChange) {
|
if (triggerStateChange) {
|
||||||
events.trigger(this, "statechange", [data]);
|
events.trigger(this, "statechange", [data]);
|
||||||
|
|
|
@ -32,7 +32,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
|
||||||
try {
|
try {
|
||||||
parentNode.removeChild(elem);
|
parentNode.removeChild(elem);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('Error removing dialog element: ' + err);
|
console.error('error removing dialog element: ' + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ define([], function () {
|
||||||
});
|
});
|
||||||
window.addEventListener("test", null, opts);
|
window.addEventListener("test", null, opts);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log('error checking capture support');
|
console.debug('error checking capture support');
|
||||||
}
|
}
|
||||||
|
|
||||||
function addEventListenerWithOptions(target, type, handler, options) {
|
function addEventListenerWithOptions(target, type, handler, options) {
|
||||||
|
|
|
@ -467,7 +467,7 @@ define(['itemShortcuts', 'inputManager', 'connectionManager', 'playbackManager',
|
||||||
focusManager.focus(newElement);
|
focusManager.focus(newElement);
|
||||||
return;
|
return;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ define([], function () {
|
||||||
|
|
||||||
function fetchWithTimeout(url, options, timeoutMs) {
|
function fetchWithTimeout(url, options, timeoutMs) {
|
||||||
|
|
||||||
console.log('fetchWithTimeout: timeoutMs: ' + timeoutMs + ', url: ' + url);
|
console.debug('fetchWithTimeout: timeoutMs: ' + timeoutMs + ', url: ' + url);
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
@ -63,14 +63,14 @@ define([], function () {
|
||||||
fetch(url, options).then(function (response) {
|
fetch(url, options).then(function (response) {
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
|
|
||||||
console.log('fetchWithTimeout: succeeded connecting to url: ' + url);
|
console.debug('fetchWithTimeout: succeeded connecting to url: ' + url);
|
||||||
|
|
||||||
resolve(response);
|
resolve(response);
|
||||||
}, function (error) {
|
}, function (error) {
|
||||||
|
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
|
|
||||||
console.log('fetchWithTimeout: timed out connecting to url: ' + url);
|
console.debug('fetchWithTimeout: timed out connecting to url: ' + url);
|
||||||
|
|
||||||
reject();
|
reject();
|
||||||
});
|
});
|
||||||
|
@ -93,21 +93,17 @@ define([], function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
function ajax(request) {
|
function ajax(request) {
|
||||||
|
|
||||||
if (!request) {
|
if (!request) {
|
||||||
throw new Error("Request cannot be null");
|
throw new Error("Request cannot be null");
|
||||||
}
|
}
|
||||||
|
|
||||||
request.headers = request.headers || {};
|
request.headers = request.headers || {};
|
||||||
|
|
||||||
console.log('requesting url: ' + request.url);
|
console.debug('requesting url: ' + request.url);
|
||||||
|
|
||||||
return getFetchPromise(request).then(function (response) {
|
return getFetchPromise(request).then(function (response) {
|
||||||
|
console.debug('response status: ' + response.status + ', url: ' + request.url);
|
||||||
console.log('response status: ' + response.status + ', url: ' + request.url);
|
|
||||||
|
|
||||||
if (response.status < 400) {
|
if (response.status < 400) {
|
||||||
|
|
||||||
if (request.dataType === 'json' || request.headers.accept === 'application/json') {
|
if (request.dataType === 'json' || request.headers.accept === 'application/json') {
|
||||||
return response.json();
|
return response.json();
|
||||||
} else if (request.dataType === 'text' || (response.headers.get('Content-Type') || '').toLowerCase().indexOf('text/') === 0) {
|
} else if (request.dataType === 'text' || (response.headers.get('Content-Type') || '').toLowerCase().indexOf('text/') === 0) {
|
||||||
|
@ -118,10 +114,8 @@ define([], function () {
|
||||||
} else {
|
} else {
|
||||||
return Promise.reject(response);
|
return Promise.reject(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
}, function (err) {
|
}, function (err) {
|
||||||
|
console.error('request failed to url: ' + request.url);
|
||||||
console.log('request failed to url: ' + request.url);
|
|
||||||
throw err;
|
throw err;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ define(['dom', 'scrollManager'], function (dom, scrollManager) {
|
||||||
preventScroll: scrollManager.isEnabled()
|
preventScroll: scrollManager.isEnabled()
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('Error in focusManager.autoFocus: ' + err);
|
console.error('Error in focusManager.autoFocus: ' + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
|
||||||
var offset = newPct - left;
|
var offset = newPct - left;
|
||||||
var pctOfWidth = (offset / width) * 100;
|
var pctOfWidth = (offset / width) * 100;
|
||||||
|
|
||||||
//console.log(pctOfWidth);
|
|
||||||
var guideProgramName = cell.guideProgramName;
|
var guideProgramName = cell.guideProgramName;
|
||||||
if (!guideProgramName) {
|
if (!guideProgramName) {
|
||||||
guideProgramName = cell.querySelector('.guideProgramName');
|
guideProgramName = cell.querySelector('.guideProgramName');
|
||||||
|
@ -396,7 +395,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
|
||||||
try {
|
try {
|
||||||
program.StartDateLocal = datetime.parseISO8601Date(program.StartDate, { toLocal: true });
|
program.StartDateLocal = datetime.parseISO8601Date(program.StartDate, { toLocal: true });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('error parsing timestamp for start date');
|
console.error('error parsing timestamp for start date');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,7 +403,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
|
||||||
try {
|
try {
|
||||||
program.EndDateLocal = datetime.parseISO8601Date(program.EndDate, { toLocal: true });
|
program.EndDateLocal = datetime.parseISO8601Date(program.EndDate, { toLocal: true });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('error parsing timestamp for end date');
|
console.error('error parsing timestamp for end date');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -114,12 +114,12 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
|
|
||||||
if (!recoverDecodingErrorDate || (now - recoverDecodingErrorDate) > 3000) {
|
if (!recoverDecodingErrorDate || (now - recoverDecodingErrorDate) > 3000) {
|
||||||
recoverDecodingErrorDate = now;
|
recoverDecodingErrorDate = now;
|
||||||
console.log('try to recover media Error ...');
|
console.debug('try to recover media Error ...');
|
||||||
hlsPlayer.recoverMediaError();
|
hlsPlayer.recoverMediaError();
|
||||||
} else {
|
} else {
|
||||||
if (!recoverSwapAudioCodecDate || (now - recoverSwapAudioCodecDate) > 3000) {
|
if (!recoverSwapAudioCodecDate || (now - recoverSwapAudioCodecDate) > 3000) {
|
||||||
recoverSwapAudioCodecDate = now;
|
recoverSwapAudioCodecDate = now;
|
||||||
console.log('try to swap Audio Codec and recover media Error ...');
|
console.debug('try to swap Audio Codec and recover media Error ...');
|
||||||
hlsPlayer.swapAudioCodec();
|
hlsPlayer.swapAudioCodec();
|
||||||
hlsPlayer.recoverMediaError();
|
hlsPlayer.recoverMediaError();
|
||||||
} else {
|
} else {
|
||||||
|
@ -233,7 +233,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('error calling video.play: ' + err);
|
console.error('error calling video.play: ' + err);
|
||||||
return Promise.reject();
|
return Promise.reject();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -245,7 +245,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
try {
|
try {
|
||||||
player.unload();
|
player.unload();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
instance._castPlayer = null;
|
instance._castPlayer = null;
|
||||||
|
@ -258,7 +258,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
try {
|
try {
|
||||||
player.destroy();
|
player.destroy();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
instance._shakaPlayer = null;
|
instance._shakaPlayer = null;
|
||||||
|
@ -271,7 +271,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
try {
|
try {
|
||||||
player.destroy();
|
player.destroy();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
instance._hlsPlayer = null;
|
instance._hlsPlayer = null;
|
||||||
|
@ -286,7 +286,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
player.detachMediaElement();
|
player.detachMediaElement();
|
||||||
player.destroy();
|
player.destroy();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
instance._flvPlayer = null;
|
instance._flvPlayer = null;
|
||||||
|
@ -307,14 +307,14 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
|
|
||||||
hls.on(Hls.Events.ERROR, function (event, data) {
|
hls.on(Hls.Events.ERROR, function (event, data) {
|
||||||
|
|
||||||
console.log('HLS Error: Type: ' + data.type + ' Details: ' + (data.details || '') + ' Fatal: ' + (data.fatal || false));
|
console.error('HLS Error: Type: ' + data.type + ' Details: ' + (data.details || '') + ' Fatal: ' + (data.fatal || false));
|
||||||
|
|
||||||
switch (data.type) {
|
switch (data.type) {
|
||||||
case Hls.ErrorTypes.NETWORK_ERROR:
|
case Hls.ErrorTypes.NETWORK_ERROR:
|
||||||
// try to recover network error
|
// try to recover network error
|
||||||
if (data.response && data.response.code && data.response.code >= 400) {
|
if (data.response && data.response.code && data.response.code >= 400) {
|
||||||
|
|
||||||
console.log('hls.js response error code: ' + data.response.code);
|
console.debug('hls.js response error code: ' + data.response.code);
|
||||||
|
|
||||||
// Trigger failure differently depending on whether this is prior to start of playback, or after
|
// Trigger failure differently depending on whether this is prior to start of playback, or after
|
||||||
hls.destroy();
|
hls.destroy();
|
||||||
|
@ -343,7 +343,7 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
|
|
||||||
// This could be a CORS error related to access control response headers
|
// This could be a CORS error related to access control response headers
|
||||||
|
|
||||||
console.log('hls.js response error code: ' + data.response.code);
|
console.debug('hls.js response error code: ' + data.response.code);
|
||||||
|
|
||||||
// Trigger failure differently depending on whether this is prior to start of playback, or after
|
// Trigger failure differently depending on whether this is prior to start of playback, or after
|
||||||
hls.destroy();
|
hls.destroy();
|
||||||
|
@ -355,20 +355,20 @@ define(['appSettings', 'browser', 'events'], function (appSettings, browser, eve
|
||||||
onErrorInternal(instance, 'network');
|
onErrorInternal(instance, 'network');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log("fatal network error encountered, try to recover");
|
console.debug("fatal network error encountered, try to recover");
|
||||||
hls.startLoad();
|
hls.startLoad();
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case Hls.ErrorTypes.MEDIA_ERROR:
|
case Hls.ErrorTypes.MEDIA_ERROR:
|
||||||
console.log("fatal media error encountered, try to recover");
|
console.debug("fatal media error encountered, try to recover");
|
||||||
var currentReject = reject;
|
var currentReject = reject;
|
||||||
reject = null;
|
reject = null;
|
||||||
handleHlsJsMediaError(instance, currentReject);
|
handleHlsJsMediaError(instance, currentReject);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
||||||
console.log('Cannot recover from hls error - destroy and trigger error');
|
console.debug('Cannot recover from hls error - destroy and trigger error');
|
||||||
// cannot recover
|
// cannot recover
|
||||||
// Trigger failure differently depending on whether this is prior to start of playback, or after
|
// Trigger failure differently depending on whether this is prior to start of playback, or after
|
||||||
hls.destroy();
|
hls.destroy();
|
||||||
|
|
|
@ -16,7 +16,7 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
||||||
// Need to record the starting volume on each pass rather than querying elem.volume
|
// Need to record the starting volume on each pass rather than querying elem.volume
|
||||||
// This is due to iOS safari not allowing volume changes and always returning the system volume value
|
// This is due to iOS safari not allowing volume changes and always returning the system volume value
|
||||||
var newVolume = Math.max(0, startingVolume - 0.15);
|
var newVolume = Math.max(0, startingVolume - 0.15);
|
||||||
console.log('fading volume to ' + newVolume);
|
console.debug('fading volume to ' + newVolume);
|
||||||
elem.volume = newVolume;
|
elem.volume = newVolume;
|
||||||
|
|
||||||
if (newVolume <= 0) {
|
if (newVolume <= 0) {
|
||||||
|
@ -113,7 +113,7 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
||||||
bindEvents(elem);
|
bindEvents(elem);
|
||||||
|
|
||||||
var val = options.url;
|
var val = options.url;
|
||||||
console.log('playing url: ' + val);
|
console.debug('playing url: ' + val);
|
||||||
|
|
||||||
// Convert to seconds
|
// Convert to seconds
|
||||||
var seconds = (options.playerStartPositionTicks || 0) / 10000000;
|
var seconds = (options.playerStartPositionTicks || 0) / 10000000;
|
||||||
|
@ -298,7 +298,7 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
||||||
|
|
||||||
var errorCode = this.error ? (this.error.code || 0) : 0;
|
var errorCode = this.error ? (this.error.code || 0) : 0;
|
||||||
var errorMessage = this.error ? (this.error.message || '') : '';
|
var errorMessage = this.error ? (this.error.message || '') : '';
|
||||||
console.log('Media element error: ' + errorCode.toString() + ' ' + errorMessage);
|
console.error('media element error: ' + errorCode.toString() + ' ' + errorMessage);
|
||||||
|
|
||||||
var type;
|
var type;
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
try {
|
try {
|
||||||
parentNode.removeChild(elem);
|
parentNode.removeChild(elem);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('Error removing dialog element: ' + err);
|
console.error('error removing dialog element: ' + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -242,7 +242,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
|
|
||||||
loading.show();
|
loading.show();
|
||||||
|
|
||||||
console.log('prefetching hls playlist: ' + hlsPlaylistUrl);
|
console.debug('prefetching hls playlist: ' + hlsPlaylistUrl);
|
||||||
|
|
||||||
return connectionManager.getApiClient(item.ServerId).ajax({
|
return connectionManager.getApiClient(item.ServerId).ajax({
|
||||||
|
|
||||||
|
@ -251,7 +251,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
|
|
||||||
}).then(function () {
|
}).then(function () {
|
||||||
|
|
||||||
console.log('completed prefetching hls playlist: ' + hlsPlaylistUrl);
|
console.debug('completed prefetching hls playlist: ' + hlsPlaylistUrl);
|
||||||
|
|
||||||
loading.hide();
|
loading.hide();
|
||||||
streamInfo.url = hlsPlaylistUrl;
|
streamInfo.url = hlsPlaylistUrl;
|
||||||
|
@ -260,7 +260,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
|
|
||||||
}, function () {
|
}, function () {
|
||||||
|
|
||||||
console.log('error prefetching hls playlist: ' + hlsPlaylistUrl);
|
console.error('error prefetching hls playlist: ' + hlsPlaylistUrl);
|
||||||
|
|
||||||
loading.hide();
|
loading.hide();
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
|
@ -408,7 +408,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
lrd.media.streamType = cast.receiver.media.StreamType.OTHER;
|
lrd.media.streamType = cast.receiver.media.StreamType.OTHER;
|
||||||
lrd.media.customData = options;
|
lrd.media.customData = options;
|
||||||
|
|
||||||
console.log('loading media url into mediaManager');
|
console.debug('loading media url into media manager');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mediaManager.load(lrd);
|
mediaManager.load(lrd);
|
||||||
|
@ -418,7 +418,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
||||||
console.log('mediaManager error: ' + err);
|
console.debug('media manager error: ' + err);
|
||||||
return Promise.reject();
|
return Promise.reject();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -460,11 +460,11 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
protocol = cast.player.api.CreateSmoothStreamingProtocol(host);
|
protocol = cast.player.api.CreateSmoothStreamingProtocol(host);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('loading playback url: ' + url);
|
console.debug('loading playback url: ' + url);
|
||||||
console.log('contentType: ' + contentType);
|
console.debug('content type: ' + contentType);
|
||||||
|
|
||||||
host.onError = function (errorCode) {
|
host.onError = function (errorCode) {
|
||||||
console.log("Fatal Error - " + errorCode);
|
console.error("fatal Error - " + errorCode);
|
||||||
};
|
};
|
||||||
|
|
||||||
mediaElement.autoplay = false;
|
mediaElement.autoplay = false;
|
||||||
|
@ -499,7 +499,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
elem.removeEventListener('error', onError);
|
elem.removeEventListener('error', onError);
|
||||||
|
|
||||||
var val = options.url;
|
var val = options.url;
|
||||||
console.log('playing url: ' + val);
|
console.debug('playing url: ' + val);
|
||||||
|
|
||||||
// Convert to seconds
|
// Convert to seconds
|
||||||
var seconds = (options.playerStartPositionTicks || 0) / 10000000;
|
var seconds = (options.playerStartPositionTicks || 0) / 10000000;
|
||||||
|
@ -608,7 +608,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
} else if (currentTrackEvents) {
|
} else if (currentTrackEvents) {
|
||||||
setTrackEventsSubtitleOffset(currentTrackEvents, offsetValue);
|
setTrackEventsSubtitleOffset(currentTrackEvents, offsetValue);
|
||||||
} else {
|
} else {
|
||||||
console.log("No available track, cannot apply offset: ", offsetValue);
|
console.debug("No available track, cannot apply offset: ", offsetValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -727,15 +727,15 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
// https://msdn.microsoft.com/en-us/library/hh772507(v=vs.85).aspx
|
// https://msdn.microsoft.com/en-us/library/hh772507(v=vs.85).aspx
|
||||||
|
|
||||||
var elemAudioTracks = elem.audioTracks || [];
|
var elemAudioTracks = elem.audioTracks || [];
|
||||||
console.log('found ' + elemAudioTracks.length + ' audio tracks');
|
console.debug('found ' + elemAudioTracks.length + ' audio tracks');
|
||||||
|
|
||||||
for (i = 0, length = elemAudioTracks.length; i < length; i++) {
|
for (i = 0, length = elemAudioTracks.length; i < length; i++) {
|
||||||
|
|
||||||
if (audioIndex === i) {
|
if (audioIndex === i) {
|
||||||
console.log('setting audio track ' + i + ' to enabled');
|
console.debug('setting audio track ' + i + ' to enabled');
|
||||||
elemAudioTracks[i].enabled = true;
|
elemAudioTracks[i].enabled = true;
|
||||||
} else {
|
} else {
|
||||||
console.log('setting audio track ' + i + ' to disabled');
|
console.debug('setting audio track ' + i + ' to disabled');
|
||||||
elemAudioTracks[i].enabled = false;
|
elemAudioTracks[i].enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -911,7 +911,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
function onError() {
|
function onError() {
|
||||||
var errorCode = this.error ? (this.error.code || 0) : 0;
|
var errorCode = this.error ? (this.error.code || 0) : 0;
|
||||||
var errorMessage = this.error ? (this.error.message || '') : '';
|
var errorMessage = this.error ? (this.error.message || '') : '';
|
||||||
console.log('Media element error: ' + errorCode.toString() + ' ' + errorMessage);
|
console.error('media element error: ' + errorCode.toString() + ' ' + errorMessage);
|
||||||
|
|
||||||
var type;
|
var type;
|
||||||
|
|
||||||
|
@ -1115,9 +1115,10 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
|
|
||||||
function renderSsaAss(videoElement, track, item) {
|
function renderSsaAss(videoElement, track, item) {
|
||||||
if (supportsCanvas() && supportsWebWorkers()) {
|
if (supportsCanvas() && supportsWebWorkers()) {
|
||||||
|
console.debug('rendering subtitles with SubtitlesOctopus');
|
||||||
renderWithSubtitlesOctopus(videoElement, track, item);
|
renderWithSubtitlesOctopus(videoElement, track, item);
|
||||||
} else {
|
} else {
|
||||||
console.log('rendering subtitles with libjass');
|
console.debug('rendering subtitles with libjass');
|
||||||
renderWithLibjass(videoElement, track, item);
|
renderWithLibjass(videoElement, track, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1137,7 +1138,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
var videoElement = self._mediaElement;
|
var videoElement = self._mediaElement;
|
||||||
var width = videoElement.offsetWidth;
|
var width = videoElement.offsetWidth;
|
||||||
var height = videoElement.offsetHeight;
|
var height = videoElement.offsetHeight;
|
||||||
console.log('videoElement resized: ' + width + 'x' + height);
|
console.debug('videoElement resized: ' + width + 'x' + height);
|
||||||
renderer.resize(width, height, 0, 0);
|
renderer.resize(width, height, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1254,7 +1255,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
trackElement.removeCue(trackElement.cues[0]);
|
trackElement.removeCue(trackElement.cues[0]);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log('Error removing cue from textTrack');
|
console.error('error removing cue from textTrack');
|
||||||
}
|
}
|
||||||
|
|
||||||
trackElement.mode = 'disabled';
|
trackElement.mode = 'disabled';
|
||||||
|
@ -1268,7 +1269,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
fetchSubtitles(track, item).then(function (data) {
|
fetchSubtitles(track, item).then(function (data) {
|
||||||
|
|
||||||
// show in ui
|
// show in ui
|
||||||
console.log('downloaded ' + data.TrackEvents.length + ' track events');
|
console.debug('downloaded ' + data.TrackEvents.length + ' track events');
|
||||||
// add some cues to show the text
|
// add some cues to show the text
|
||||||
// in safari, the cues need to be added before setting the track mode to showing
|
// in safari, the cues need to be added before setting the track mode to showing
|
||||||
data.TrackEvents.forEach(function (trackEvent) {
|
data.TrackEvents.forEach(function (trackEvent) {
|
||||||
|
@ -1294,7 +1295,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
try {
|
try {
|
||||||
clock.seek(timeMs / 1000);
|
clock.seek(timeMs / 1000);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('Error in libjass: ' + err);
|
console.error('error in libjass: ' + err);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1327,7 +1328,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
|
|
||||||
function setCurrentTrackElement(streamIndex) {
|
function setCurrentTrackElement(streamIndex) {
|
||||||
|
|
||||||
console.log('Setting new text track index to: ' + streamIndex);
|
console.debug('setting new text track index to: ' + streamIndex);
|
||||||
|
|
||||||
var mediaStreamTextTracks = getMediaStreamTextTracks(self._currentPlayOptions.mediaSource);
|
var mediaStreamTextTracks = getMediaStreamTextTracks(self._currentPlayOptions.mediaSource);
|
||||||
|
|
||||||
|
@ -1369,7 +1370,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
track.removeCue(track.cues[0]);
|
track.removeCue(track.cues[0]);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log('Error removing cue from textTrack');
|
console.error('error removing cue from textTrack');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1590,7 +1591,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
};
|
};
|
||||||
|
|
||||||
function onPictureInPictureError(err) {
|
function onPictureInPictureError(err) {
|
||||||
console.log('Picture in picture error: ' + err.toString());
|
console.error('Picture in picture error: ' + err.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
HtmlVideoPlayer.prototype.setPictureInPictureEnabled = function (isEnabled) {
|
HtmlVideoPlayer.prototype.setPictureInPictureEnabled = function (isEnabled) {
|
||||||
|
|
|
@ -47,7 +47,7 @@ define(['dialogHelper', 'connectionManager', 'dom', 'loading', 'scrollHelper', '
|
||||||
};
|
};
|
||||||
reader.onabort = function () {
|
reader.onabort = function () {
|
||||||
loading.hide();
|
loading.hide();
|
||||||
console.log('File read cancelled');
|
console.debug('File read cancelled');
|
||||||
};
|
};
|
||||||
|
|
||||||
// Closure to capture the file information.
|
// Closure to capture the file information.
|
||||||
|
|
|
@ -62,7 +62,7 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun
|
||||||
startDate = datetime.parseISO8601Date(item.StartDate).getTime();
|
startDate = datetime.parseISO8601Date(item.StartDate).getTime();
|
||||||
endDate = datetime.parseISO8601Date(item.EndDate).getTime();
|
endDate = datetime.parseISO8601Date(item.EndDate).getTime();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
var now = new Date().getTime();
|
var now = new Date().getTime();
|
||||||
|
@ -174,7 +174,7 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun
|
||||||
return '<div class="unairedIndicator">Unaired</div>';
|
return '<div class="unairedIndicator">Unaired</div>';
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return '<div class="missingIndicator">Missing</div>';
|
return '<div class="missingIndicator">Missing</div>';
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
define(["inputManager", "layoutManager"], function (inputManager, layoutManager) {
|
define(["inputManager", "layoutManager"], function (inputManager, layoutManager) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
console.log("keyboardnavigation");
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Key name mapping.
|
* Key name mapping.
|
||||||
*/
|
*/
|
||||||
|
@ -45,7 +43,7 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager)
|
||||||
try {
|
try {
|
||||||
hasFieldKey = "key" in new KeyboardEvent("keydown");
|
hasFieldKey = "key" in new KeyboardEvent("keydown");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("error checking 'key' field");
|
console.error("error checking 'key' field");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasFieldKey) {
|
if (!hasFieldKey) {
|
||||||
|
@ -142,7 +140,7 @@ define(["inputManager", "layoutManager"], function (inputManager, layoutManager)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (capture) {
|
if (capture) {
|
||||||
console.log("Disabling default event handling");
|
console.debug("disabling default event handling");
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -269,7 +269,6 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
|
||||||
|
|
||||||
if (options.image !== false) {
|
if (options.image !== false) {
|
||||||
var imgUrl = options.imageSource === 'channel' ? getChannelImageUrl(item, downloadWidth) : getImageUrl(item, downloadWidth);
|
var imgUrl = options.imageSource === 'channel' ? getChannelImageUrl(item, downloadWidth) : getImageUrl(item, downloadWidth);
|
||||||
console.log(imgUrl);
|
|
||||||
var imageClass = isLargeStyle ? 'listItemImage listItemImage-large' : 'listItemImage';
|
var imageClass = isLargeStyle ? 'listItemImage listItemImage-large' : 'listItemImage';
|
||||||
|
|
||||||
if (isLargeStyle && layoutManager.tv) {
|
if (isLargeStyle && layoutManager.tv) {
|
||||||
|
|
|
@ -57,7 +57,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
|
||||||
|
|
||||||
miscInfo.push(text);
|
miscInfo.push(text);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error parsing date: " + item.StartDate);
|
console.error("error parsing date: " + item.StartDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
|
||||||
text = datetime.toLocaleDateString(date);
|
text = datetime.toLocaleDateString(date);
|
||||||
miscInfo.push(text);
|
miscInfo.push(text);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error parsing date: " + item.PremiereDate);
|
console.error("error parsing date: " + item.PremiereDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -176,7 +176,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
|
||||||
miscInfo.push(text);
|
miscInfo.push(text);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error parsing date: " + item.StartDate);
|
console.error("error parsing date: " + item.StartDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error parsing date: " + item.EndDate);
|
console.error("error parsing date: " + item.EndDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
|
||||||
text = globalize.translate('OriginalAirDateValue', datetime.toLocaleDateString(date));
|
text = globalize.translate('OriginalAirDateValue', datetime.toLocaleDateString(date));
|
||||||
miscInfo.push(text);
|
miscInfo.push(text);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error parsing date: " + item.PremiereDate);
|
console.error("error parsing date: " + item.PremiereDate);
|
||||||
}
|
}
|
||||||
} else if (item.ProductionYear) {
|
} else if (item.ProductionYear) {
|
||||||
miscInfo.push(item.ProductionYear);
|
miscInfo.push(item.ProductionYear);
|
||||||
|
@ -267,7 +267,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
|
||||||
text = datetime.parseISO8601Date(item.PremiereDate).getFullYear();
|
text = datetime.parseISO8601Date(item.PremiereDate).getFullYear();
|
||||||
miscInfo.push(text);
|
miscInfo.push(text);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error parsing date: " + item.PremiereDate);
|
console.error("error parsing date: " + item.PremiereDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -591,8 +591,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPlaybackStart(e, state) {
|
function onPlaybackStart(e, state) {
|
||||||
|
console.debug('nowplaying event: ' + e.type);
|
||||||
//console.log('nowplaying event: ' + e.type);
|
|
||||||
|
|
||||||
var player = this;
|
var player = this;
|
||||||
|
|
||||||
|
@ -637,7 +636,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||||
|
|
||||||
function onPlaybackStopped(e, state) {
|
function onPlaybackStopped(e, state) {
|
||||||
|
|
||||||
//console.log('nowplaying event: ' + e.type);
|
console.debug('nowplaying event: ' + e.type);
|
||||||
var player = this;
|
var player = this;
|
||||||
|
|
||||||
if (player.isLocalPlayer) {
|
if (player.isLocalPlayer) {
|
||||||
|
@ -663,7 +662,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||||
|
|
||||||
function onStateChanged(event, state) {
|
function onStateChanged(event, state) {
|
||||||
|
|
||||||
//console.log('nowplaying event: ' + e.type);
|
console.debug('nowplaying event: ' + e.type);
|
||||||
var player = this;
|
var player = this;
|
||||||
|
|
||||||
if (!state.NowPlayingItem || layoutManager.tv) {
|
if (!state.NowPlayingItem || layoutManager.tv) {
|
||||||
|
|
|
@ -57,7 +57,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
addPlaylistToPlaybackReport(playbackManagerInstance, info, player, serverId);
|
addPlaylistToPlaybackReport(playbackManagerInstance, info, player, serverId);
|
||||||
}
|
}
|
||||||
|
|
||||||
//console.log(method + '-' + JSON.stringify(info));
|
console.debug(method + '-' + JSON.stringify(info));
|
||||||
var apiClient = connectionManager.getApiClient(serverId);
|
var apiClient = connectionManager.getApiClient(serverId);
|
||||||
apiClient[method](info);
|
apiClient[method](info);
|
||||||
}
|
}
|
||||||
|
@ -1024,7 +1024,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
currentTargetInfo = targetInfo;
|
currentTargetInfo = targetInfo;
|
||||||
|
|
||||||
if (targetInfo) {
|
if (targetInfo) {
|
||||||
console.log('Active player: ' + JSON.stringify(targetInfo));
|
console.debug('Active player: ' + JSON.stringify(targetInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player && player.isLocalPlayer) {
|
if (player && player.isLocalPlayer) {
|
||||||
|
@ -2828,7 +2828,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
|
|
||||||
if (newItemInfo) {
|
if (newItemInfo) {
|
||||||
|
|
||||||
console.log('playing next track');
|
console.debug('playing next track');
|
||||||
|
|
||||||
var newItemPlayOptions = newItemInfo.item.playOptions || getDefaultPlayOptions();
|
var newItemPlayOptions = newItemInfo.item.playOptions || getDefaultPlayOptions();
|
||||||
|
|
||||||
|
@ -3118,7 +3118,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
// medianotsupported
|
// medianotsupported
|
||||||
var errorType = error.type;
|
var errorType = error.type;
|
||||||
|
|
||||||
console.log('playbackmanager playback error type: ' + (errorType || ''));
|
console.debug('playbackmanager playback error type: ' + (errorType || ''));
|
||||||
|
|
||||||
var streamInfo = error.streamInfo || getPlayerData(player).streamInfo;
|
var streamInfo = error.streamInfo || getPlayerData(player).streamInfo;
|
||||||
|
|
||||||
|
@ -3401,7 +3401,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
|
|
||||||
function getLiveStreamMediaInfo(player, streamInfo, mediaSource, liveStreamId, serverId) {
|
function getLiveStreamMediaInfo(player, streamInfo, mediaSource, liveStreamId, serverId) {
|
||||||
|
|
||||||
console.log('getLiveStreamMediaInfo');
|
console.debug('getLiveStreamMediaInfo');
|
||||||
|
|
||||||
streamInfo.lastMediaInfoQuery = new Date().getTime();
|
streamInfo.lastMediaInfoQuery = new Date().getTime();
|
||||||
|
|
||||||
|
@ -3961,7 +3961,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
};
|
};
|
||||||
|
|
||||||
PlaybackManager.prototype.sendCommand = function (cmd, player) {
|
PlaybackManager.prototype.sendCommand = function (cmd, player) {
|
||||||
console.log('MediaController received command: ' + cmd.Name);
|
console.debug('MediaController received command: ' + cmd.Name);
|
||||||
switch (cmd.Name) {
|
switch (cmd.Name) {
|
||||||
case 'SetRepeatMode':
|
case 'SetRepeatMode':
|
||||||
this.setRepeatMode(cmd.Arguments.RepeatMode, player);
|
this.setRepeatMode(cmd.Arguments.RepeatMode, player);
|
||||||
|
|
|
@ -9,7 +9,7 @@ define(['playbackManager', 'layoutManager', 'events'], function (playbackManager
|
||||||
|
|
||||||
function onOrientationChangeError(err) {
|
function onOrientationChangeError(err) {
|
||||||
orientationLocked = false;
|
orientationLocked = false;
|
||||||
console.log('error locking orientation: ' + err);
|
console.error('error locking orientation: ' + err);
|
||||||
}
|
}
|
||||||
|
|
||||||
events.on(playbackManager, 'playbackstart', function (e, player, state) {
|
events.on(playbackManager, 'playbackstart', function (e, player, state) {
|
||||||
|
@ -46,7 +46,7 @@ define(['playbackManager', 'layoutManager', 'events'], function (playbackManager
|
||||||
try {
|
try {
|
||||||
unlockOrientation();
|
unlockOrientation();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('error unlocking orientation: ' + err);
|
console.error('error unlocking orientation: ' + err);
|
||||||
}
|
}
|
||||||
orientationLocked = false;
|
orientationLocked = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,12 +32,12 @@ define(['events', 'playbackManager'], function (events, playbackManager) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!oldPlayer.isLocalPlayer) {
|
if (!oldPlayer.isLocalPlayer) {
|
||||||
console.log('Skipping remote control autoplay because oldPlayer is not a local player');
|
console.debug('Skipping remote control autoplay because oldPlayer is not a local player');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newPlayer.isLocalPlayer) {
|
if (newPlayer.isLocalPlayer) {
|
||||||
console.log('Skipping remote control autoplay because newPlayer is a local player');
|
console.debug('Skipping remote control autoplay because newPlayer is a local player');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ define(['events'], function (events) {
|
||||||
|
|
||||||
PluginManager.prototype.loadPlugin = function (url) {
|
PluginManager.prototype.loadPlugin = function (url) {
|
||||||
|
|
||||||
console.log('Loading plugin: ' + url);
|
console.debug('Loading plugin: ' + url);
|
||||||
var instance = this;
|
var instance = this;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
|
@ -19,7 +19,7 @@ if (HTMLElement.prototype.nativeFocus === undefined) {
|
||||||
|
|
||||||
focusElem.focus(opts);
|
focusElem.focus(opts);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("error checking preventScroll support");
|
console.error("error checking preventScroll support");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!supportsPreventScrollOption) {
|
if (!supportsPreventScrollOption) {
|
||||||
|
|
|
@ -127,7 +127,7 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||||
maxHeight: 300
|
maxHeight: 300
|
||||||
}) : null;
|
}) : null;
|
||||||
|
|
||||||
console.log("updateNowPlayingInfo");
|
console.debug("updateNowPlayingInfo");
|
||||||
setImageUrl(context, url);
|
setImageUrl(context, url);
|
||||||
if (item) {
|
if (item) {
|
||||||
backdrop.setBackdrops([item]);
|
backdrop.setBackdrops([item]);
|
||||||
|
@ -392,7 +392,7 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPlaybackStart(e, state) {
|
function onPlaybackStart(e, state) {
|
||||||
console.log("remotecontrol event: " + e.type);
|
console.debug("remotecontrol event: " + e.type);
|
||||||
var player = this;
|
var player = this;
|
||||||
onStateChanged.call(player, e, state);
|
onStateChanged.call(player, e, state);
|
||||||
}
|
}
|
||||||
|
@ -420,7 +420,7 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPlaybackStopped(e, state) {
|
function onPlaybackStopped(e, state) {
|
||||||
console.log("remotecontrol event: " + e.type);
|
console.debug("remotecontrol event: " + e.type);
|
||||||
var player = this;
|
var player = this;
|
||||||
|
|
||||||
if (!state.NextMediaType) {
|
if (!state.NextMediaType) {
|
||||||
|
|
|
@ -53,7 +53,7 @@ define(["events", "playbackManager", "pluginManager", "inputManager", "connectio
|
||||||
throw new Error("An existing screensaver is already active.");
|
throw new Error("An existing screensaver is already active.");
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Showing screensaver " + screensaver.name);
|
console.debug("Showing screensaver " + screensaver.name);
|
||||||
|
|
||||||
screensaver.show();
|
screensaver.show();
|
||||||
activeScreenSaver = screensaver;
|
activeScreenSaver = screensaver;
|
||||||
|
@ -71,7 +71,7 @@ define(["events", "playbackManager", "pluginManager", "inputManager", "connectio
|
||||||
|
|
||||||
function hide() {
|
function hide() {
|
||||||
if (activeScreenSaver) {
|
if (activeScreenSaver) {
|
||||||
console.log("Hiding screensaver");
|
console.debug("Hiding screensaver");
|
||||||
activeScreenSaver.hide();
|
activeScreenSaver.hide();
|
||||||
activeScreenSaver = null;
|
activeScreenSaver = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ define(["dom", "browser", "layoutManager"], function (dom, browser, layoutManage
|
||||||
|
|
||||||
elem.scrollTo(opts);
|
elem.scrollTo(opts);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("error checking ScrollToOptions support");
|
console.error("error checking ScrollToOptions support");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -392,7 +392,7 @@ define(['browser', 'layoutManager', 'dom', 'focusManager', 'ResizeObserver', 'sc
|
||||||
var currentStart = self._pos.cur;
|
var currentStart = self._pos.cur;
|
||||||
var currentEnd = currentStart + frameSize;
|
var currentEnd = currentStart + frameSize;
|
||||||
|
|
||||||
//console.log('offset:' + offset + ' currentStart:' + currentStart + ' currentEnd:' + currentEnd);
|
console.debug('offset:' + offset + ' currentStart:' + currentStart + ' currentEnd:' + currentEnd);
|
||||||
var isVisible = offset >= currentStart && (offset + size) <= currentEnd;
|
var isVisible = offset >= currentStart && (offset + size) <= currentEnd;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -33,7 +33,7 @@ define(['connectionManager', 'playbackManager', 'events', 'inputManager', 'focus
|
||||||
}
|
}
|
||||||
|
|
||||||
function processGeneralCommand(cmd, apiClient) {
|
function processGeneralCommand(cmd, apiClient) {
|
||||||
console.log('Received command: ' + cmd.Name);
|
console.debug('Received command: ' + cmd.Name);
|
||||||
switch (cmd.Name) {
|
switch (cmd.Name) {
|
||||||
case 'Select':
|
case 'Select':
|
||||||
inputManager.trigger('select');
|
inputManager.trigger('select');
|
||||||
|
@ -133,7 +133,7 @@ define(['connectionManager', 'playbackManager', 'events', 'inputManager', 'focus
|
||||||
focusManager.sendText(cmd.Arguments.String);
|
focusManager.sendText(cmd.Arguments.String);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
console.log('processGeneralCommand does not recognize: ' + cmd.Name);
|
console.debug('processGeneralCommand does not recognize: ' + cmd.Name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr
|
||||||
appHost.setThemeColor(color);
|
appHost.setThemeColor(color);
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('Error setting theme color: ' + err);
|
console.error('error setting theme color: ' + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr
|
||||||
sound.play();
|
sound.play();
|
||||||
currentSound = sound;
|
currentSound = sound;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('Error playing sound: ' + err);
|
console.error('error playing sound: ' + err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
|
||||||
try {
|
try {
|
||||||
appHost.setUserScalable(scalable);
|
appHost.setUserScalable(scalable);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('error in appHost.setUserScalable: ' + err);
|
console.error('error in appHost.setUserScalable: ' + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ define(['dom', 'playbackManager', 'connectionManager', 'events', 'mediaInfo', 'l
|
||||||
|
|
||||||
var secondsRemaining = Math.max(Math.round(getTimeRemainingMs(instance) / 1000), 0);
|
var secondsRemaining = Math.max(Math.round(getTimeRemainingMs(instance) / 1000), 0);
|
||||||
|
|
||||||
console.log('up next seconds remaining: ' + secondsRemaining);
|
console.debug('up next seconds remaining: ' + secondsRemaining);
|
||||||
|
|
||||||
var timeText = '<span class="upNextDialog-countdownText">' + globalize.translate('HeaderSecondsValue', secondsRemaining) + '</span>';
|
var timeText = '<span class="upNextDialog-countdownText">' + globalize.translate('HeaderSecondsValue', secondsRemaining) + '</span>';
|
||||||
|
|
||||||
|
|
|
@ -122,7 +122,7 @@ define(["jQuery", "loading", "libraryMenu", "globalize", "connectionManager", "e
|
||||||
confirm(msg, globalize.translate("HeaderConfirmPluginInstallation")).then(function () {
|
confirm(msg, globalize.translate("HeaderConfirmPluginInstallation")).then(function () {
|
||||||
alertCallback();
|
alertCallback();
|
||||||
}, function () {
|
}, function () {
|
||||||
console.log('plugin not installed');
|
console.debug('plugin not installed');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -203,7 +203,7 @@ define(["events", "layoutManager", "inputManager", "userSettings", "libraryMenu"
|
||||||
function loadSuggestionsTab(view, params, tabContent) {
|
function loadSuggestionsTab(view, params, tabContent) {
|
||||||
var parentId = params.topParentId;
|
var parentId = params.topParentId;
|
||||||
var userId = ApiClient.getCurrentUserId();
|
var userId = ApiClient.getCurrentUserId();
|
||||||
console.log("loadSuggestionsTab");
|
console.debug("loadSuggestionsTab");
|
||||||
loadResume(tabContent, userId, parentId);
|
loadResume(tabContent, userId, parentId);
|
||||||
loadLatest(tabContent, userId, parentId);
|
loadLatest(tabContent, userId, parentId);
|
||||||
loadSuggestions(tabContent, userId, parentId);
|
loadSuggestions(tabContent, userId, parentId);
|
||||||
|
|
|
@ -155,7 +155,7 @@ define(["browser", "layoutManager", "userSettings", "inputManager", "loading", "
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadSuggestionsTab(page, tabContent, parentId) {
|
function loadSuggestionsTab(page, tabContent, parentId) {
|
||||||
console.log("loadSuggestionsTab");
|
console.debug("loadSuggestionsTab");
|
||||||
loadLatest(tabContent, parentId);
|
loadLatest(tabContent, parentId);
|
||||||
loadRecentlyPlayed(tabContent, parentId);
|
loadRecentlyPlayed(tabContent, parentId);
|
||||||
loadFrequentlyPlayed(tabContent, parentId);
|
loadFrequentlyPlayed(tabContent, parentId);
|
||||||
|
|
|
@ -575,7 +575,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPlaybackStart(e, state) {
|
function onPlaybackStart(e, state) {
|
||||||
console.log("nowplaying event: " + e.type);
|
console.debug("nowplaying event: " + e.type);
|
||||||
var player = this;
|
var player = this;
|
||||||
onStateChanged.call(player, e, state);
|
onStateChanged.call(player, e, state);
|
||||||
resetUpNextDialog();
|
resetUpNextDialog();
|
||||||
|
@ -594,7 +594,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
||||||
function onPlaybackStopped(e, state) {
|
function onPlaybackStopped(e, state) {
|
||||||
currentRuntimeTicks = null;
|
currentRuntimeTicks = null;
|
||||||
resetUpNextDialog();
|
resetUpNextDialog();
|
||||||
console.log("nowplaying event: " + e.type);
|
console.debug("nowplaying event: " + e.type);
|
||||||
|
|
||||||
if ("Video" !== state.NextMediaType) {
|
if ("Video" !== state.NextMediaType) {
|
||||||
view.removeEventListener("viewbeforehide", onViewHideStopPlayback);
|
view.removeEventListener("viewbeforehide", onViewHideStopPlayback);
|
||||||
|
@ -725,14 +725,14 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
||||||
var endDate = datetime.parseISO8601Date(program.EndDate);
|
var endDate = datetime.parseISO8601Date(program.EndDate);
|
||||||
|
|
||||||
if (new Date().getTime() >= endDate.getTime()) {
|
if (new Date().getTime() >= endDate.getTime()) {
|
||||||
console.log("program info needs to be refreshed");
|
console.debug("program info needs to be refreshed");
|
||||||
var state = playbackManager.getPlayerState(player);
|
var state = playbackManager.getPlayerState(player);
|
||||||
onStateChanged.call(player, {
|
onStateChanged.call(player, {
|
||||||
type: "init"
|
type: "init"
|
||||||
}, state);
|
}, state);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error parsing date: " + program.EndDate);
|
console.error("error parsing date: " + program.EndDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ define(["layoutManager", "loading", "datetime", "libraryBrowser", "cardBuilder",
|
||||||
day: "numeric"
|
day: "numeric"
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('error parsing timestamp for upcoming tv shows');
|
console.error('error parsing timestamp for upcoming tv shows');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ define(["loading", "globalize", "dashboardcss", "emby-input", "emby-button", "em
|
||||||
}
|
}
|
||||||
|
|
||||||
function onUpdateUserComplete(result) {
|
function onUpdateUserComplete(result) {
|
||||||
console.log(result);
|
console.debug("user update complete: " + result);
|
||||||
loading.hide();
|
loading.hide();
|
||||||
nextWizardPage();
|
nextWizardPage();
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,8 +59,23 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function ApiClient(serverAddress, appName, appVersion, deviceName, deviceId, devicePixelRatio) {
|
function ApiClient(serverAddress, appName, appVersion, deviceName, deviceId, devicePixelRatio) {
|
||||||
if (!serverAddress) throw new Error("Must supply a serverAddress");
|
if (!serverAddress) {
|
||||||
console.log("ApiClient serverAddress: " + serverAddress), console.log("ApiClient appName: " + appName), console.log("ApiClient appVersion: " + appVersion), console.log("ApiClient deviceName: " + deviceName), console.log("ApiClient deviceId: " + deviceId), this._serverInfo = {}, this._serverAddress = serverAddress, this._deviceId = deviceId, this._deviceName = deviceName, this._appName = appName, this._appVersion = appVersion, this._devicePixelRatio = devicePixelRatio
|
throw new Error("Must supply a serverAddress");
|
||||||
|
}
|
||||||
|
|
||||||
|
console.debug("ApiClient serverAddress: " + serverAddress);
|
||||||
|
console.debug("ApiClient appName: " + appName);
|
||||||
|
console.debug("ApiClient appVersion: " + appVersion);
|
||||||
|
console.debug("ApiClient deviceName: " + deviceName);
|
||||||
|
console.debug("ApiClient deviceId: " + deviceId);
|
||||||
|
|
||||||
|
this._serverInfo = {};
|
||||||
|
this._serverAddress = serverAddress;
|
||||||
|
this._deviceId = deviceId;
|
||||||
|
this._deviceName = deviceName;
|
||||||
|
this._appName = appName;
|
||||||
|
this._appVersion = appVersion;
|
||||||
|
this._devicePixelRatio = devicePixelRatio;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setSavedEndpointInfo(instance, info) {
|
function setSavedEndpointInfo(instance, info) {
|
||||||
|
@ -68,13 +83,14 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTryConnectPromise(instance, url, state, resolve, reject) {
|
function getTryConnectPromise(instance, url, state, resolve, reject) {
|
||||||
console.log("getTryConnectPromise " + url), fetchWithTimeout(instance.getUrl("system/info/public", null, url), {
|
console.debug("getTryConnectPromise " + url);
|
||||||
|
fetchWithTimeout(instance.getUrl("system/info/public", null, url), {
|
||||||
method: "GET",
|
method: "GET",
|
||||||
accept: "application/json"
|
accept: "application/json"
|
||||||
}, 15e3).then(function() {
|
}, 15e3).then(function() {
|
||||||
state.resolved || (state.resolved = !0, console.log("Reconnect succeeded to " + url), instance.serverAddress(url), resolve())
|
state.resolved || (state.resolved = !0, console.debug("Reconnect succeeded to " + url), instance.serverAddress(url), resolve())
|
||||||
}, function() {
|
}, function() {
|
||||||
state.resolved || (console.log("Reconnect failed to " + url), ++state.rejects >= state.numAddresses && reject())
|
state.resolved || (console.error("Reconnect failed to " + url), ++state.rejects >= state.numAddresses && reject())
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +107,7 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
}), addressesStrings.push(addresses[addresses.length - 1].url)), serverInfo.RemoteAddress && -1 === addressesStrings.indexOf(serverInfo.RemoteAddress) && (addresses.push({
|
}), addressesStrings.push(addresses[addresses.length - 1].url)), serverInfo.RemoteAddress && -1 === addressesStrings.indexOf(serverInfo.RemoteAddress) && (addresses.push({
|
||||||
url: serverInfo.RemoteAddress,
|
url: serverInfo.RemoteAddress,
|
||||||
timeout: 200
|
timeout: 200
|
||||||
}), addressesStrings.push(addresses[addresses.length - 1].url)), console.log("tryReconnect: " + addressesStrings.join("|")), new Promise(function(resolve, reject) {
|
}), addressesStrings.push(addresses[addresses.length - 1].url)), console.debug("tryReconnect: " + addressesStrings.join("|")), new Promise(function(resolve, reject) {
|
||||||
var state = {};
|
var state = {};
|
||||||
state.numAddresses = addresses.length, state.rejects = 0, addresses.map(function(url) {
|
state.numAddresses = addresses.length, state.rejects = 0, addresses.map(function(url) {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
|
@ -103,7 +119,7 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
|
|
||||||
function tryReconnect(instance, retryCount) {
|
function tryReconnect(instance, retryCount) {
|
||||||
return retryCount = retryCount || 0, retryCount >= 20 ? Promise.reject() : tryReconnectInternal(instance).catch(function(err) {
|
return retryCount = retryCount || 0, retryCount >= 20 ? Promise.reject() : tryReconnectInternal(instance).catch(function(err) {
|
||||||
return console.log("error in tryReconnectInternal: " + (err || "")), new Promise(function(resolve, reject) {
|
return console.error("error in tryReconnectInternal: " + (err || "")), new Promise(function(resolve, reject) {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
tryReconnect(instance, retryCount + 1).then(resolve, reject)
|
tryReconnect(instance, retryCount + 1).then(resolve, reject)
|
||||||
}, 500)
|
}, 500)
|
||||||
|
@ -139,7 +155,7 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
|
|
||||||
function onWebSocketOpen() {
|
function onWebSocketOpen() {
|
||||||
var instance = this;
|
var instance = this;
|
||||||
console.log("web socket connection opened"), events.trigger(instance, "websocketopen")
|
console.debug("web socket connection opened"), events.trigger(instance, "websocketopen")
|
||||||
}
|
}
|
||||||
|
|
||||||
function onWebSocketError() {
|
function onWebSocketError() {
|
||||||
|
@ -149,7 +165,12 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
|
|
||||||
function setSocketOnClose(apiClient, socket) {
|
function setSocketOnClose(apiClient, socket) {
|
||||||
socket.onclose = function() {
|
socket.onclose = function() {
|
||||||
console.log("web socket closed"), apiClient._webSocket === socket && (console.log("nulling out web socket"), apiClient._webSocket = null), setTimeout(function() {
|
console.debug("web socket closed");
|
||||||
|
if (apiClient._webSocket === socket) {
|
||||||
|
console.debug("nulling out web socket");
|
||||||
|
apiClient._webSocket = null;
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
events.trigger(apiClient, "websocketclose")
|
events.trigger(apiClient, "websocketclose")
|
||||||
}, 0)
|
}, 0)
|
||||||
}
|
}
|
||||||
|
@ -244,24 +265,24 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
var lowered = url.toLowerCase();
|
var lowered = url.toLowerCase();
|
||||||
return "/" !== name.charAt(0) && (url += "/"), url += name, params && (params = paramsToString(params)) && (url += "?" + params), url
|
return "/" !== name.charAt(0) && (url += "/"), url += name, params && (params = paramsToString(params)) && (url += "?" + params), url
|
||||||
}, ApiClient.prototype.fetchWithFailover = function(request, enableReconnection) {
|
}, ApiClient.prototype.fetchWithFailover = function(request, enableReconnection) {
|
||||||
console.log("Requesting " + request.url), request.timeout = 3e4;
|
console.debug("Requesting " + request.url), request.timeout = 3e4;
|
||||||
var instance = this;
|
var instance = this;
|
||||||
return getFetchPromise(request).then(function(response) {
|
return getFetchPromise(request).then(function(response) {
|
||||||
return instance.lastFetch = (new Date).getTime(), response.status < 400 ? "json" === request.dataType || "application/json" === request.headers.accept ? response.json() : "text" === request.dataType || 0 === (response.headers.get("Content-Type") || "").toLowerCase().indexOf("text/") ? response.text() : response : (onFetchFail(instance, request.url, response), Promise.reject(response))
|
return instance.lastFetch = (new Date).getTime(), response.status < 400 ? "json" === request.dataType || "application/json" === request.headers.accept ? response.json() : "text" === request.dataType || 0 === (response.headers.get("Content-Type") || "").toLowerCase().indexOf("text/") ? response.text() : response : (onFetchFail(instance, request.url, response), Promise.reject(response))
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
if (error ? console.log("Request failed to " + request.url + " " + (error.status || "") + " " + error.toString()) : console.log("Request timed out to " + request.url), error && error.status || !enableReconnection) throw console.log("Reporting request failure"), onFetchFail(instance, request.url, {}), error;
|
if (error ? console.error("Request failed to " + request.url + " " + (error.status || "") + " " + error.toString()) : console.error("Request timed out to " + request.url), error && error.status || !enableReconnection) throw console.error("Reporting request failure"), onFetchFail(instance, request.url, {}), error;
|
||||||
console.log("Attempting reconnection");
|
console.debug("Attempting reconnection");
|
||||||
var previousServerAddress = instance.serverAddress();
|
var previousServerAddress = instance.serverAddress();
|
||||||
return tryReconnect(instance).then(function() {
|
return tryReconnect(instance).then(function() {
|
||||||
return console.log("Reconnect succeesed"), request.url = request.url.replace(previousServerAddress, instance.serverAddress()), instance.fetchWithFailover(request, !1)
|
return console.debug("Reconnect succeesed"), request.url = request.url.replace(previousServerAddress, instance.serverAddress()), instance.fetchWithFailover(request, !1)
|
||||||
}, function(innerError) {
|
}, function(innerError) {
|
||||||
throw console.log("Reconnect failed"), onFetchFail(instance, request.url, {}), innerError
|
throw console.error("Reconnect failed"), onFetchFail(instance, request.url, {}), innerError
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}, ApiClient.prototype.fetch = function(request, includeAuthorization) {
|
}, ApiClient.prototype.fetch = function(request, includeAuthorization) {
|
||||||
if (!request) throw new Error("Request cannot be null");
|
if (!request) throw new Error("Request cannot be null");
|
||||||
if (request.headers = request.headers || {}, !1 !== includeAuthorization && this.setRequestHeaders(request.headers), !1 === this.enableAutomaticNetworking || "GET" !== request.type) {
|
if (request.headers = request.headers || {}, !1 !== includeAuthorization && this.setRequestHeaders(request.headers), !1 === this.enableAutomaticNetworking || "GET" !== request.type) {
|
||||||
console.log("Requesting url without automatic networking: " + request.url);
|
console.debug("Requesting url without automatic networking: " + request.url);
|
||||||
var instance = this;
|
var instance = this;
|
||||||
return getFetchPromise(request).then(function(response) {
|
return getFetchPromise(request).then(function(response) {
|
||||||
return instance.lastFetch = (new Date).getTime(), response.status < 400 ? "json" === request.dataType || "application/json" === request.headers.accept ? response.json() : "text" === request.dataType || 0 === (response.headers.get("Content-Type") || "").toLowerCase().indexOf("text/") ? response.text() : response : (onFetchFail(instance, request.url, response), Promise.reject(response))
|
return instance.lastFetch = (new Date).getTime(), response.status < 400 ? "json" === request.dataType || "application/json" === request.headers.accept ? response.json() : "text" === request.dataType || 0 === (response.headers.get("Content-Type") || "").toLowerCase().indexOf("text/") ? response.text() : response : (onFetchFail(instance, request.url, response), Promise.reject(response))
|
||||||
|
@ -340,7 +361,7 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
if (!this.isWebSocketOpenOrConnecting() && this.isWebSocketSupported()) try {
|
if (!this.isWebSocketOpenOrConnecting() && this.isWebSocketSupported()) try {
|
||||||
this.openWebSocket()
|
this.openWebSocket()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("Error opening web socket: " + err)
|
console.error("error opening web socket: " + err)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var messageIdsReceived = {};
|
var messageIdsReceived = {};
|
||||||
|
@ -348,14 +369,14 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
var accessToken = this.accessToken();
|
var accessToken = this.accessToken();
|
||||||
if (!accessToken) throw new Error("Cannot open web socket without access token.");
|
if (!accessToken) throw new Error("Cannot open web socket without access token.");
|
||||||
var url = this.getUrl("socket");
|
var url = this.getUrl("socket");
|
||||||
url = replaceAll(url, "emby/socket", "embywebsocket"), url = replaceAll(url, "https:", "wss:"), url = replaceAll(url, "http:", "ws:"), url += "?api_key=" + accessToken, url += "&deviceId=" + this.deviceId(), console.log("opening web socket with url: " + url);
|
url = replaceAll(url, "emby/socket", "embywebsocket"), url = replaceAll(url, "https:", "wss:"), url = replaceAll(url, "http:", "ws:"), url += "?api_key=" + accessToken, url += "&deviceId=" + this.deviceId(), console.debug("opening web socket with url: " + url);
|
||||||
var webSocket = new WebSocket(url);
|
var webSocket = new WebSocket(url);
|
||||||
webSocket.onmessage = onWebSocketMessage.bind(this), webSocket.onopen = onWebSocketOpen.bind(this), webSocket.onerror = onWebSocketError.bind(this), setSocketOnClose(this, webSocket), this._webSocket = webSocket
|
webSocket.onmessage = onWebSocketMessage.bind(this), webSocket.onopen = onWebSocketOpen.bind(this), webSocket.onerror = onWebSocketError.bind(this), setSocketOnClose(this, webSocket), this._webSocket = webSocket
|
||||||
}, ApiClient.prototype.closeWebSocket = function() {
|
}, ApiClient.prototype.closeWebSocket = function() {
|
||||||
var socket = this._webSocket;
|
var socket = this._webSocket;
|
||||||
socket && socket.readyState === WebSocket.OPEN && socket.close()
|
socket && socket.readyState === WebSocket.OPEN && socket.close()
|
||||||
}, ApiClient.prototype.sendWebSocketMessage = function(name, data) {
|
}, ApiClient.prototype.sendWebSocketMessage = function(name, data) {
|
||||||
console.log("Sending web socket message: " + name);
|
console.debug("Sending web socket message: " + name);
|
||||||
var msg = {
|
var msg = {
|
||||||
MessageType: name
|
MessageType: name
|
||||||
};
|
};
|
||||||
|
@ -387,7 +408,7 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
}, ApiClient.prototype.updateServerInfo = function(server, serverUrl) {
|
}, ApiClient.prototype.updateServerInfo = function(server, serverUrl) {
|
||||||
if (null == server) throw new Error("server cannot be null");
|
if (null == server) throw new Error("server cannot be null");
|
||||||
if (this.serverInfo(server), !serverUrl) throw new Error("serverUrl cannot be null. serverInfo: " + JSON.stringify(server));
|
if (this.serverInfo(server), !serverUrl) throw new Error("serverUrl cannot be null. serverInfo: " + JSON.stringify(server));
|
||||||
console.log("Setting server address to " + serverUrl), this.serverAddress(serverUrl)
|
console.debug("Setting server address to " + serverUrl), this.serverAddress(serverUrl)
|
||||||
}, ApiClient.prototype.isWebSocketSupported = function() {
|
}, ApiClient.prototype.isWebSocketSupported = function() {
|
||||||
try {
|
try {
|
||||||
return null != WebSocket
|
return null != WebSocket
|
||||||
|
|
|
@ -2,7 +2,7 @@ define([], function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function onCachePutFail(e) {
|
function onCachePutFail(e) {
|
||||||
console.log(e);
|
console.error("cannot put to a cache: " + e);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCache(instance) {
|
function updateCache(instance) {
|
||||||
|
@ -45,7 +45,7 @@ define([], function() {
|
||||||
self.caches.open("embydata").then(onCacheOpened.bind(this));
|
self.caches.open("embydata").then(onCacheOpened.bind(this));
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("Error opening cache: " + err);
|
console.error("error opening cache: " + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,18 +95,18 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchWithTimeout(url, options, timeoutMs) {
|
function fetchWithTimeout(url, options, timeoutMs) {
|
||||||
console.log("fetchWithTimeout: timeoutMs: " + timeoutMs + ", url: " + url);
|
console.debug("fetchWithTimeout: timeoutMs: " + timeoutMs + ", url: " + url);
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
var timeout = setTimeout(reject, timeoutMs);
|
var timeout = setTimeout(reject, timeoutMs);
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options.credentials = "same-origin";
|
options.credentials = "same-origin";
|
||||||
fetch(url, options).then(function (response) {
|
fetch(url, options).then(function (response) {
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
console.log("fetchWithTimeout: succeeded connecting to url: " + url);
|
console.debug("fetchWithTimeout: succeeded connecting to url: " + url);
|
||||||
resolve(response);
|
resolve(response);
|
||||||
}, function (error) {
|
}, function (error) {
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
console.log("fetchWithTimeout: timed out connecting to url: " + url);
|
console.error("fetchWithTimeout: timed out connecting to url: " + url);
|
||||||
reject();
|
reject();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -118,9 +118,9 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
}
|
}
|
||||||
|
|
||||||
request.headers = request.headers || {};
|
request.headers = request.headers || {};
|
||||||
console.log("ConnectionManager requesting url: " + request.url);
|
console.debug("ConnectionManager requesting url: " + request.url);
|
||||||
return getFetchPromise(request).then(function (response) {
|
return getFetchPromise(request).then(function (response) {
|
||||||
console.log("ConnectionManager response status: " + response.status + ", url: " + request.url);
|
console.debug("ConnectionManager response status: " + response.status + ", url: " + request.url);
|
||||||
|
|
||||||
if (response.status < 400) {
|
if (response.status < 400) {
|
||||||
if ("json" === request.dataType || "application/json" === request.headers.accept) {
|
if ("json" === request.dataType || "application/json" === request.headers.accept) {
|
||||||
|
@ -132,7 +132,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
|
|
||||||
return Promise.reject(response);
|
return Promise.reject(response);
|
||||||
}, function (err) {
|
}, function (err) {
|
||||||
console.log("ConnectionManager request failed to url: " + request.url);
|
console.error("ConnectionManager request failed to url: " + request.url);
|
||||||
throw err;
|
throw err;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -227,7 +227,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
apiClient.enableAutomaticBitrateDetection = options.enableAutomaticBitrateDetection;
|
apiClient.enableAutomaticBitrateDetection = options.enableAutomaticBitrateDetection;
|
||||||
|
|
||||||
if (false !== options.enableWebSocket) {
|
if (false !== options.enableWebSocket) {
|
||||||
console.log("calling apiClient.ensureWebSocket");
|
console.debug("calling apiClient.ensureWebSocket");
|
||||||
apiClient.ensureWebSocket();
|
apiClient.ensureWebSocket();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -333,7 +333,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTryConnectPromise(url, connectionMode, state, resolve, reject) {
|
function getTryConnectPromise(url, connectionMode, state, resolve, reject) {
|
||||||
console.log("getTryConnectPromise " + url);
|
console.debug("getTryConnectPromise " + url);
|
||||||
ajax({
|
ajax({
|
||||||
url: getEmbyServerUrl(url, "system/info/public"),
|
url: getEmbyServerUrl(url, "system/info/public"),
|
||||||
timeout: defaultTimeout,
|
timeout: defaultTimeout,
|
||||||
|
@ -342,7 +342,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
if (!state.resolved) {
|
if (!state.resolved) {
|
||||||
state.resolved = true;
|
state.resolved = true;
|
||||||
console.log("Reconnect succeeded to " + url);
|
console.debug("Reconnect succeeded to " + url);
|
||||||
resolve({
|
resolve({
|
||||||
url: url,
|
url: url,
|
||||||
connectionMode: connectionMode,
|
connectionMode: connectionMode,
|
||||||
|
@ -351,7 +351,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
}
|
}
|
||||||
}, function () {
|
}, function () {
|
||||||
if (!state.resolved) {
|
if (!state.resolved) {
|
||||||
console.log("Reconnect failed to " + url);
|
console.error("Reconnect failed to " + url);
|
||||||
|
|
||||||
if (++state.rejects >= state.numAddresses) {
|
if (++state.rejects >= state.numAddresses) {
|
||||||
reject();
|
reject();
|
||||||
|
@ -391,7 +391,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
addressesStrings.push(addresses[addresses.length - 1].url);
|
addressesStrings.push(addresses[addresses.length - 1].url);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("tryReconnect: " + addressesStrings.join("|"));
|
console.debug("tryReconnect: " + addressesStrings.join("|"));
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
var state = {};
|
var state = {};
|
||||||
state.numAddresses = addresses.length;
|
state.numAddresses = addresses.length;
|
||||||
|
@ -458,7 +458,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Begin ConnectionManager constructor");
|
console.debug("Begin ConnectionManager constructor");
|
||||||
var self = this;
|
var self = this;
|
||||||
this._apiClients = [];
|
this._apiClients = [];
|
||||||
self._minServerVersion = "3.2.33";
|
self._minServerVersion = "3.2.33";
|
||||||
|
@ -530,7 +530,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
};
|
};
|
||||||
|
|
||||||
self.clearData = function () {
|
self.clearData = function () {
|
||||||
console.log("connection manager clearing data");
|
console.debug("connection manager clearing data");
|
||||||
var credentials = credentialProvider.credentials();
|
var credentials = credentialProvider.credentials();
|
||||||
credentials.Servers = [];
|
credentials.Servers = [];
|
||||||
credentialProvider.credentials(credentials);
|
credentialProvider.credentials(credentials);
|
||||||
|
@ -550,7 +550,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
events.trigger(self, "apiclientcreated", [apiClient]);
|
events.trigger(self, "apiclientcreated", [apiClient]);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("returning instance from getOrAddApiClient");
|
console.debug("returning instance from getOrAddApiClient");
|
||||||
return apiClient;
|
return apiClient;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -592,7 +592,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
};
|
};
|
||||||
|
|
||||||
self.logout = function () {
|
self.logout = function () {
|
||||||
console.log("begin connectionManager loguot");
|
console.debug("begin connectionManager loguot");
|
||||||
var promises = [];
|
var promises = [];
|
||||||
|
|
||||||
for (var i = 0, length = self._apiClients.length; i < length; i++) {
|
for (var i = 0, length = self._apiClients.length; i < length; i++) {
|
||||||
|
@ -628,7 +628,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getAvailableServers = function () {
|
self.getAvailableServers = function () {
|
||||||
console.log("Begin getAvailableServers");
|
console.debug("begin getAvailableServers");
|
||||||
var credentials = credentialProvider.credentials();
|
var credentials = credentialProvider.credentials();
|
||||||
return Promise.all([findServers()]).then(function (responses) {
|
return Promise.all([findServers()]).then(function (responses) {
|
||||||
var foundServers = responses[0];
|
var foundServers = responses[0];
|
||||||
|
@ -644,7 +644,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
};
|
};
|
||||||
|
|
||||||
self.connectToServers = function (servers, options) {
|
self.connectToServers = function (servers, options) {
|
||||||
console.log("Begin connectToServers, with " + servers.length + " servers");
|
console.debug("begin connectToServers, with " + servers.length + " servers");
|
||||||
var firstServer = servers.length ? servers[0] : null;
|
var firstServer = servers.length ? servers[0] : null;
|
||||||
|
|
||||||
if (firstServer) {
|
if (firstServer) {
|
||||||
|
@ -653,7 +653,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
result.State = "ServerSelection";
|
result.State = "ServerSelection";
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("resolving connectToServers with result.State: " + result.State);
|
console.debug("resolving connectToServers with result.State: " + result.State);
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -665,7 +665,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
};
|
};
|
||||||
|
|
||||||
self.connectToServer = function (server, options) {
|
self.connectToServer = function (server, options) {
|
||||||
console.log("begin connectToServer");
|
console.debug("begin connectToServer");
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
tryReconnect(server).then(function (result) {
|
tryReconnect(server).then(function (result) {
|
||||||
|
@ -674,14 +674,14 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
result = result.data;
|
result = result.data;
|
||||||
|
|
||||||
if (1 === compareVersions(self.minServerVersion(), result.Version)) {
|
if (1 === compareVersions(self.minServerVersion(), result.Version)) {
|
||||||
console.log("minServerVersion requirement not met. Server version: " + result.Version);
|
console.debug("minServerVersion requirement not met. Server version: " + result.Version);
|
||||||
resolve({
|
resolve({
|
||||||
State: "ServerUpdateNeeded",
|
State: "ServerUpdateNeeded",
|
||||||
Servers: [server]
|
Servers: [server]
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (server.Id && result.Id !== server.Id) {
|
if (server.Id && result.Id !== server.Id) {
|
||||||
console.log("http request succeeded, but found a different server Id than what was expected");
|
console.debug("http request succeeded, but found a different server Id than what was expected");
|
||||||
resolveFailure(self, resolve);
|
resolveFailure(self, resolve);
|
||||||
} else {
|
} else {
|
||||||
onSuccessfulConnection(server, result, connectionMode, serverUrl, options, resolve);
|
onSuccessfulConnection(server, result, connectionMode, serverUrl, options, resolve);
|
||||||
|
@ -695,7 +695,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
|
|
||||||
self.connectToAddress = function (address, options) {
|
self.connectToAddress = function (address, options) {
|
||||||
function onFail() {
|
function onFail() {
|
||||||
console.log("connectToAddress " + address + " failed");
|
console.error("connectToAddress " + address + " failed");
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
State: "Unavailable",
|
State: "Unavailable",
|
||||||
});
|
});
|
||||||
|
@ -741,7 +741,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
|
||||||
};
|
};
|
||||||
|
|
||||||
ConnectionManager.prototype.connect = function (options) {
|
ConnectionManager.prototype.connect = function (options) {
|
||||||
console.log("Begin connect");
|
console.debug("begin connect");
|
||||||
var instance = this;
|
var instance = this;
|
||||||
return instance.getAvailableServers().then(function (servers) {
|
return instance.getAvailableServers().then(function (servers) {
|
||||||
return instance.connectToServers(servers, options);
|
return instance.connectToServers(servers, options);
|
||||||
|
|
|
@ -4,7 +4,7 @@ define(["events", "appStorage"], function(events, appStorage) {
|
||||||
function ensure(instance, data) {
|
function ensure(instance, data) {
|
||||||
if (!instance._credentials) {
|
if (!instance._credentials) {
|
||||||
var json = appStorage.getItem(instance.key) || "{}";
|
var json = appStorage.getItem(instance.key) || "{}";
|
||||||
console.log("credentials initialized with: " + json), instance._credentials = JSON.parse(json), instance._credentials.Servers = instance._credentials.Servers || []
|
console.debug("credentials initialized with: " + json), instance._credentials = JSON.parse(json), instance._credentials.Servers = instance._credentials.Servers || []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ define(["filerepository", "itemrepository", "useractionrepository", "transferman
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function getLocalItem(serverId, itemId) {
|
function getLocalItem(serverId, itemId) {
|
||||||
return console.log("[lcoalassetmanager] Begin getLocalItem"), itemrepository.get(serverId, itemId)
|
return console.debug("localassetmanager: begin getLocalItem"), itemrepository.get(serverId, itemId)
|
||||||
}
|
}
|
||||||
|
|
||||||
function recordUserAction(action) {
|
function recordUserAction(action) {
|
||||||
|
@ -25,7 +25,7 @@ define(["filerepository", "itemrepository", "useractionrepository", "transferman
|
||||||
}
|
}
|
||||||
|
|
||||||
function getServerItems(serverId) {
|
function getServerItems(serverId) {
|
||||||
return console.log("[localassetmanager] Begin getServerItems"), itemrepository.getAll(serverId)
|
return console.debug("localassetmanager: begin getServerItems"), itemrepository.getAll(serverId)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getItemsFromIds(serverId, ids) {
|
function getItemsFromIds(serverId, ids) {
|
||||||
|
|
|
@ -3,7 +3,7 @@ define(["connectionManager"], function(connectionManager) {
|
||||||
var isSyncing;
|
var isSyncing;
|
||||||
return {
|
return {
|
||||||
sync: function(options) {
|
sync: function(options) {
|
||||||
return console.log("localSync.sync starting..."), isSyncing ? Promise.resolve() : (isSyncing = !0, new Promise(function(resolve, reject) {
|
return console.debug("localSync.sync starting..."), isSyncing ? Promise.resolve() : (isSyncing = !0, new Promise(function(resolve, reject) {
|
||||||
require(["multiserversync", "appSettings"], function(MultiServerSync, appSettings) {
|
require(["multiserversync", "appSettings"], function(MultiServerSync, appSettings) {
|
||||||
options = options || {}, options.cameraUploadServers = appSettings.cameraUploadServers(), (new MultiServerSync).sync(connectionManager, options).then(function() {
|
options = options || {}, options.cameraUploadServers = appSettings.cameraUploadServers(), (new MultiServerSync).sync(connectionManager, options).then(function() {
|
||||||
isSyncing = null, resolve()
|
isSyncing = null, resolve()
|
||||||
|
|
|
@ -2,9 +2,9 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function processDownloadStatus(apiClient, serverInfo, options) {
|
function processDownloadStatus(apiClient, serverInfo, options) {
|
||||||
return console.log("[mediasync] Begin processDownloadStatus"), localassetmanager.resyncTransfers().then(function() {
|
return console.debug("mediasync: begin processDownloadStatus"), localassetmanager.resyncTransfers().then(function() {
|
||||||
return localassetmanager.getServerItems(serverInfo.Id).then(function(items) {
|
return localassetmanager.getServerItems(serverInfo.Id).then(function(items) {
|
||||||
console.log("[mediasync] Begin processDownloadStatus getServerItems completed");
|
console.debug("mediasync: begin processDownloadStatus getServerItems completed");
|
||||||
var p = Promise.resolve(),
|
var p = Promise.resolve(),
|
||||||
cnt = 0;
|
cnt = 0;
|
||||||
return items.filter(function(item) {
|
return items.filter(function(item) {
|
||||||
|
@ -14,7 +14,9 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
return reportTransfer(apiClient, item)
|
return reportTransfer(apiClient, item)
|
||||||
}), cnt++
|
}), cnt++
|
||||||
}), p.then(function() {
|
}), p.then(function() {
|
||||||
return console.log("[mediasync] Exit processDownloadStatus. Items reported: " + cnt.toString()), Promise.resolve()
|
console.debug("mediasync: exit processDownloadStatus");
|
||||||
|
console.debug("items reported: " + cnt.toString());
|
||||||
|
return Promise.resolve();
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -23,39 +25,39 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
function reportTransfer(apiClient, item) {
|
function reportTransfer(apiClient, item) {
|
||||||
return localassetmanager.getItemFileSize(item.LocalPath).then(function(size) {
|
return localassetmanager.getItemFileSize(item.LocalPath).then(function(size) {
|
||||||
return size > 0 ? apiClient.reportSyncJobItemTransferred(item.SyncJobItemId).then(function() {
|
return size > 0 ? apiClient.reportSyncJobItemTransferred(item.SyncJobItemId).then(function() {
|
||||||
return item.SyncStatus = "synced", console.log("[mediasync] reportSyncJobItemTransferred called for " + item.LocalPath), localassetmanager.addOrUpdateLocalItem(item)
|
return item.SyncStatus = "synced", console.debug("mediasync: reportSyncJobItemTransferred called for " + item.LocalPath), localassetmanager.addOrUpdateLocalItem(item)
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
return console.error("[mediasync] Mediasync error on reportSyncJobItemTransferred", error), item.SyncStatus = "error", localassetmanager.addOrUpdateLocalItem(item)
|
return console.error("mediasync: mediasync error on reportSyncJobItemTransferred", error), item.SyncStatus = "error", localassetmanager.addOrUpdateLocalItem(item)
|
||||||
}) : localassetmanager.isDownloadFileInQueue(item.LocalPath).then(function(result) {
|
}) : localassetmanager.isDownloadFileInQueue(item.LocalPath).then(function(result) {
|
||||||
return result ? Promise.resolve() : (console.log("[mediasync] reportTransfer: Size is 0 and download no longer in queue. Deleting item."), localassetmanager.removeLocalItem(item).then(function() {
|
return result ? Promise.resolve() : (console.debug("mediasync: reportTransfer: Size is 0 and download no longer in queue. Deleting item."), localassetmanager.removeLocalItem(item).then(function() {
|
||||||
return console.log("[mediasync] reportTransfer: Item deleted."), Promise.resolve()
|
return console.debug("mediasync: reportTransfer: Item deleted."), Promise.resolve()
|
||||||
}, function(err2) {
|
}, function(err2) {
|
||||||
return console.log("[mediasync] reportTransfer: Failed to delete item.", err2), Promise.resolve()
|
return console.debug("mediasync: reportTransfer: Failed to delete item.", err2), Promise.resolve()
|
||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
return console.error("[mediasync] reportTransfer: error on getItemFileSize. Deleting item.", error), localassetmanager.removeLocalItem(item).then(function() {
|
return console.error("mediasync: reportTransfer: error on getItemFileSize. Deleting item.", error), localassetmanager.removeLocalItem(item).then(function() {
|
||||||
return console.log("[mediasync] reportTransfer: Item deleted."), Promise.resolve()
|
return console.debug("mediasync: reportTransfer: Item deleted."), Promise.resolve()
|
||||||
}, function(err2) {
|
}, function(err2) {
|
||||||
return console.log("[mediasync] reportTransfer: Failed to delete item.", err2), Promise.resolve()
|
return console.error("mediasync: reportTransfer: Failed to delete item.", err2), Promise.resolve()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function reportOfflineActions(apiClient, serverInfo) {
|
function reportOfflineActions(apiClient, serverInfo) {
|
||||||
return console.log("[mediasync] Begin reportOfflineActions"), localassetmanager.getUserActions(serverInfo.Id).then(function(actions) {
|
return console.debug("mediasync: begin reportOfflineActions"), localassetmanager.getUserActions(serverInfo.Id).then(function(actions) {
|
||||||
return actions.length ? apiClient.reportOfflineActions(actions).then(function() {
|
return actions.length ? apiClient.reportOfflineActions(actions).then(function() {
|
||||||
return localassetmanager.deleteUserActions(actions).then(function() {
|
return localassetmanager.deleteUserActions(actions).then(function() {
|
||||||
return console.log("[mediasync] Exit reportOfflineActions (actions reported and deleted.)"), Promise.resolve()
|
return console.debug("mediasync: exit reportOfflineActions (actions reported and deleted.)"), Promise.resolve()
|
||||||
})
|
})
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.error("[mediasync] error on apiClient.reportOfflineActions: " + err.toString()), localassetmanager.deleteUserActions(actions)
|
return console.error("mediasync: error on apiClient.reportOfflineActions: " + err.toString()), localassetmanager.deleteUserActions(actions)
|
||||||
}) : (console.log("[mediasync] Exit reportOfflineActions (no actions)"), Promise.resolve())
|
}) : (console.debug("mediasync: exit reportOfflineActions (no actions)"), Promise.resolve())
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function syncData(apiClient, serverInfo) {
|
function syncData(apiClient, serverInfo) {
|
||||||
return console.log("[mediasync] Begin syncData"), localassetmanager.getServerItems(serverInfo.Id).then(function(items) {
|
return console.debug("mediasync: begin syncData"), localassetmanager.getServerItems(serverInfo.Id).then(function(items) {
|
||||||
var completedItems = items.filter(function(item) {
|
var completedItems = items.filter(function(item) {
|
||||||
return item && ("synced" === item.SyncStatus || "error" === item.SyncStatus)
|
return item && ("synced" === item.SyncStatus || "error" === item.SyncStatus)
|
||||||
}),
|
}),
|
||||||
|
@ -67,16 +69,16 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
};
|
};
|
||||||
return apiClient.syncData(request).then(function(result) {
|
return apiClient.syncData(request).then(function(result) {
|
||||||
return afterSyncData(apiClient, serverInfo, result).then(function() {
|
return afterSyncData(apiClient, serverInfo, result).then(function() {
|
||||||
return console.log("[mediasync] Exit syncData"), Promise.resolve()
|
return console.debug("mediasync: exit syncData"), Promise.resolve()
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.error("[mediasync] Error in syncData: " + err.toString()), Promise.resolve()
|
return console.error("mediasync: error in syncData: " + err.toString()), Promise.resolve()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function afterSyncData(apiClient, serverInfo, syncDataResult) {
|
function afterSyncData(apiClient, serverInfo, syncDataResult) {
|
||||||
console.log("[mediasync] Begin afterSyncData");
|
console.debug("mediasync: begin afterSyncData");
|
||||||
var p = Promise.resolve();
|
var p = Promise.resolve();
|
||||||
return syncDataResult.ItemIdsToRemove && syncDataResult.ItemIdsToRemove.length > 0 && syncDataResult.ItemIdsToRemove.forEach(function(itemId) {
|
return syncDataResult.ItemIdsToRemove && syncDataResult.ItemIdsToRemove.length > 0 && syncDataResult.ItemIdsToRemove.forEach(function(itemId) {
|
||||||
p = p.then(function() {
|
p = p.then(function() {
|
||||||
|
@ -85,25 +87,25 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
}), p = p.then(function() {
|
}), p = p.then(function() {
|
||||||
return removeObsoleteContainerItems(serverInfo.Id)
|
return removeObsoleteContainerItems(serverInfo.Id)
|
||||||
}), p.then(function() {
|
}), p.then(function() {
|
||||||
return console.log("[mediasync] Exit afterSyncData"), Promise.resolve()
|
return console.debug("mediasync: exit afterSyncData"), Promise.resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeObsoleteContainerItems(serverId) {
|
function removeObsoleteContainerItems(serverId) {
|
||||||
return console.log("[mediasync] Begin removeObsoleteContainerItems"), localassetmanager.removeObsoleteContainerItems(serverId)
|
return console.debug("mediasync: begin removeObsoleteContainerItems"), localassetmanager.removeObsoleteContainerItems(serverId)
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeLocalItem(itemId, serverId) {
|
function removeLocalItem(itemId, serverId) {
|
||||||
return console.log("[mediasync] Begin removeLocalItem"), localassetmanager.getLocalItem(serverId, itemId).then(function(item) {
|
return console.debug("mediasync: begin removeLocalItem"), localassetmanager.getLocalItem(serverId, itemId).then(function(item) {
|
||||||
return item ? localassetmanager.removeLocalItem(item) : Promise.resolve()
|
return item ? localassetmanager.removeLocalItem(item) : Promise.resolve()
|
||||||
}, function(err2) {
|
}, function(err2) {
|
||||||
return console.error("[mediasync] removeLocalItem: Failed: ", err2), Promise.resolve()
|
return console.error("mediasync: removeLocalItem: Failed: ", err2), Promise.resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function getNewMedia(apiClient, downloadCount) {
|
function getNewMedia(apiClient, downloadCount) {
|
||||||
return console.log("[mediasync] Begin getNewMedia"), apiClient.getReadySyncItems(apiClient.deviceId()).then(function(jobItems) {
|
return console.debug("mediasync: begin getNewMedia"), apiClient.getReadySyncItems(apiClient.deviceId()).then(function(jobItems) {
|
||||||
console.log("[mediasync] getReadySyncItems returned " + jobItems.length + " items");
|
console.debug("mediasync: getReadySyncItems returned " + jobItems.length + " items");
|
||||||
var p = Promise.resolve(),
|
var p = Promise.resolve(),
|
||||||
currentCount = downloadCount;
|
currentCount = downloadCount;
|
||||||
return jobItems.forEach(function(jobItem) {
|
return jobItems.forEach(function(jobItem) {
|
||||||
|
@ -111,15 +113,15 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
return getNewItem(jobItem, apiClient)
|
return getNewItem(jobItem, apiClient)
|
||||||
}))
|
}))
|
||||||
}), p.then(function() {
|
}), p.then(function() {
|
||||||
return console.log("[mediasync] Exit getNewMedia"), Promise.resolve()
|
return console.debug("mediasync: exit getNewMedia"), Promise.resolve()
|
||||||
})
|
})
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.error("[mediasync] getReadySyncItems: Failed: ", err), Promise.resolve()
|
return console.error("mediasync: getReadySyncItems: Failed: ", err), Promise.resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function afterMediaDownloaded(apiClient, jobItem, localItem) {
|
function afterMediaDownloaded(apiClient, jobItem, localItem) {
|
||||||
return console.log("[mediasync] Begin afterMediaDownloaded"), getImages(apiClient, jobItem, localItem).then(function() {
|
return console.debug("mediasync: begin afterMediaDownloaded"), getImages(apiClient, jobItem, localItem).then(function() {
|
||||||
var libraryItem = jobItem.Item;
|
var libraryItem = jobItem.Item;
|
||||||
return downloadParentItems(apiClient, jobItem, libraryItem).then(function() {
|
return downloadParentItems(apiClient, jobItem, libraryItem).then(function() {
|
||||||
return getSubtitles(apiClient, jobItem, localItem)
|
return getSubtitles(apiClient, jobItem, localItem)
|
||||||
|
@ -128,21 +130,21 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createLocalItem(libraryItem, jobItem) {
|
function createLocalItem(libraryItem, jobItem) {
|
||||||
console.log("[localassetmanager] Begin createLocalItem");
|
console.debug("localassetmanager: begin createLocalItem");
|
||||||
var item = {
|
var item = {
|
||||||
Item: libraryItem,
|
Item: libraryItem,
|
||||||
ItemId: libraryItem.Id,
|
ItemId: libraryItem.Id,
|
||||||
ServerId: libraryItem.ServerId,
|
ServerId: libraryItem.ServerId,
|
||||||
Id: libraryItem.Id
|
Id: libraryItem.Id
|
||||||
};
|
};
|
||||||
return jobItem && (item.SyncJobItemId = jobItem.SyncJobItemId), console.log("[localassetmanager] End createLocalItem"), item
|
return jobItem && (item.SyncJobItemId = jobItem.SyncJobItemId), console.debug("localassetmanager: end createLocalItem"), item
|
||||||
}
|
}
|
||||||
|
|
||||||
function getNewItem(jobItem, apiClient) {
|
function getNewItem(jobItem, apiClient) {
|
||||||
console.log("[mediasync] Begin getNewItem");
|
console.debug("mediasync: begin getNewItem");
|
||||||
var libraryItem = jobItem.Item;
|
var libraryItem = jobItem.Item;
|
||||||
return localassetmanager.getLocalItem(libraryItem.ServerId, libraryItem.Id).then(function(existingItem) {
|
return localassetmanager.getLocalItem(libraryItem.ServerId, libraryItem.Id).then(function(existingItem) {
|
||||||
if (existingItem && ("queued" === existingItem.SyncStatus || "transferring" === existingItem.SyncStatus || "synced" === existingItem.SyncStatus) && (console.log("[mediasync] getNewItem: getLocalItem found existing item"), localassetmanager.enableBackgroundCompletion())) return Promise.resolve();
|
if (existingItem && ("queued" === existingItem.SyncStatus || "transferring" === existingItem.SyncStatus || "synced" === existingItem.SyncStatus) && (console.debug("mediasync: getNewItem: getLocalItem found existing item"), localassetmanager.enableBackgroundCompletion())) return Promise.resolve();
|
||||||
libraryItem.CanDelete = !1, libraryItem.CanDownload = !1, libraryItem.SupportsSync = !1, libraryItem.People = [], libraryItem.Chapters = [], libraryItem.Studios = [], libraryItem.SpecialFeatureCount = null, libraryItem.LocalTrailerCount = null, libraryItem.RemoteTrailers = [];
|
libraryItem.CanDelete = !1, libraryItem.CanDownload = !1, libraryItem.SupportsSync = !1, libraryItem.People = [], libraryItem.Chapters = [], libraryItem.Studios = [], libraryItem.SpecialFeatureCount = null, libraryItem.LocalTrailerCount = null, libraryItem.RemoteTrailers = [];
|
||||||
var localItem = createLocalItem(libraryItem, jobItem);
|
var localItem = createLocalItem(libraryItem, jobItem);
|
||||||
return localItem.SyncStatus = "queued", downloadMedia(apiClient, jobItem, localItem)
|
return localItem.SyncStatus = "queued", downloadMedia(apiClient, jobItem, localItem)
|
||||||
|
@ -169,7 +171,7 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
return localassetmanager.addOrUpdateLocalItem(localItem).then(function() {
|
return localassetmanager.addOrUpdateLocalItem(localItem).then(function() {
|
||||||
return Promise.resolve(localItem)
|
return Promise.resolve(localItem)
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.error("[mediasync] downloadItem failed: " + err.toString()), Promise.resolve(null)
|
return console.error("mediasync: downloadItem failed: " + err.toString()), Promise.resolve(null)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -183,12 +185,12 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function downloadMedia(apiClient, jobItem, localItem) {
|
function downloadMedia(apiClient, jobItem, localItem) {
|
||||||
console.log("[mediasync] downloadMedia: start.");
|
console.debug("mediasync: downloadMedia: start.");
|
||||||
var url = apiClient.getUrl("Sync/JobItems/" + jobItem.SyncJobItemId + "/File", {
|
var url = apiClient.getUrl("Sync/JobItems/" + jobItem.SyncJobItemId + "/File", {
|
||||||
api_key: apiClient.accessToken()
|
api_key: apiClient.accessToken()
|
||||||
});
|
});
|
||||||
return ensureLocalPathParts(localItem, jobItem), localassetmanager.downloadFile(url, localItem).then(function(result) {
|
return ensureLocalPathParts(localItem, jobItem), localassetmanager.downloadFile(url, localItem).then(function(result) {
|
||||||
console.log("[mediasync] downloadMedia-downloadFile returned path: " + result.path);
|
console.debug("mediasync: downloadMedia-downloadFile returned path: " + result.path);
|
||||||
var localPath = result.path,
|
var localPath = result.path,
|
||||||
libraryItem = localItem.Item;
|
libraryItem = localItem.Item;
|
||||||
if (localPath && libraryItem.MediaSources)
|
if (localPath && libraryItem.MediaSources)
|
||||||
|
@ -200,18 +202,18 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
return afterMediaDownloaded(apiClient, jobItem, localItem).then(function() {
|
return afterMediaDownloaded(apiClient, jobItem, localItem).then(function() {
|
||||||
return result.isComplete ? (localItem.SyncStatus = "synced", reportTransfer(apiClient, localItem)) : Promise.resolve()
|
return result.isComplete ? (localItem.SyncStatus = "synced", reportTransfer(apiClient, localItem)) : Promise.resolve()
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.log("[mediasync] downloadMedia: afterMediaDownloaded failed: " + err), Promise.reject(err)
|
return console.debug("mediasync: downloadMedia: afterMediaDownloaded failed: " + err), Promise.reject(err)
|
||||||
})
|
})
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.log("[mediasync] downloadMedia: addOrUpdateLocalItem failed: " + err), Promise.reject(err)
|
return console.debug("mediasync: downloadMedia: addOrUpdateLocalItem failed: " + err), Promise.reject(err)
|
||||||
})
|
})
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.log("[mediasync] downloadMedia: localassetmanager.downloadFile failed: " + err), Promise.reject(err)
|
return console.debug("mediasync: downloadMedia: localassetmanager.downloadFile failed: " + err), Promise.reject(err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function getImages(apiClient, jobItem, localItem) {
|
function getImages(apiClient, jobItem, localItem) {
|
||||||
console.log("[mediasync] Begin getImages");
|
console.debug("mediasync: begin getImages");
|
||||||
var p = Promise.resolve(),
|
var p = Promise.resolve(),
|
||||||
libraryItem = localItem.Item,
|
libraryItem = localItem.Item,
|
||||||
serverId = libraryItem.ServerId,
|
serverId = libraryItem.ServerId,
|
||||||
|
@ -249,15 +251,15 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
})), libraryItem.ParentPrimaryImageItemId && libraryItem.ParentPrimaryImageTag && (p = p.then(function() {
|
})), libraryItem.ParentPrimaryImageItemId && libraryItem.ParentPrimaryImageTag && (p = p.then(function() {
|
||||||
return downloadImage(localItem, apiClient, serverId, libraryItem.ParentPrimaryImageItemId, libraryItem.ParentPrimaryImageTag, "Primary")
|
return downloadImage(localItem, apiClient, serverId, libraryItem.ParentPrimaryImageItemId, libraryItem.ParentPrimaryImageTag, "Primary")
|
||||||
})), p.then(function() {
|
})), p.then(function() {
|
||||||
return console.log("[mediasync] Finished getImages"), localassetmanager.addOrUpdateLocalItem(localItem)
|
return console.debug("mediasync: finished getImages"), localassetmanager.addOrUpdateLocalItem(localItem)
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.log("[mediasync] Error getImages: " + err.toString()), Promise.resolve()
|
return console.error("mediasync: error getImages: " + err.toString()), Promise.resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function downloadImage(localItem, apiClient, serverId, itemId, imageTag, imageType, index) {
|
function downloadImage(localItem, apiClient, serverId, itemId, imageTag, imageType, index) {
|
||||||
return index = index || 0, localassetmanager.hasImage(serverId, itemId, imageType, index).then(function(hasImage) {
|
return index = index || 0, localassetmanager.hasImage(serverId, itemId, imageType, index).then(function(hasImage) {
|
||||||
if (hasImage) return console.log("[mediasync] downloadImage - skip existing: " + itemId + " " + imageType + "_" + index.toString()), Promise.resolve();
|
if (hasImage) return console.debug("mediasync: downloadImage - skip existing: " + itemId + " " + imageType + "_" + index.toString()), Promise.resolve();
|
||||||
var maxWidth = 400;
|
var maxWidth = 400;
|
||||||
"backdrop" === imageType && (maxWidth = null);
|
"backdrop" === imageType && (maxWidth = null);
|
||||||
var imageUrl = apiClient.getScaledImageUrl(itemId, {
|
var imageUrl = apiClient.getScaledImageUrl(itemId, {
|
||||||
|
@ -266,18 +268,18 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
maxWidth: maxWidth,
|
maxWidth: maxWidth,
|
||||||
api_key: apiClient.accessToken()
|
api_key: apiClient.accessToken()
|
||||||
});
|
});
|
||||||
return console.log("[mediasync] downloadImage " + itemId + " " + imageType + "_" + index.toString()), localassetmanager.downloadImage(localItem, imageUrl, serverId, itemId, imageType, index).then(function(result) {
|
return console.debug("mediasync: downloadImage " + itemId + " " + imageType + "_" + index.toString()), localassetmanager.downloadImage(localItem, imageUrl, serverId, itemId, imageType, index).then(function(result) {
|
||||||
return Promise.resolve(result)
|
return Promise.resolve(result)
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.log("[mediasync] Error downloadImage: " + err.toString()), Promise.resolve()
|
return console.error("mediasync: error downloadImage: " + err.toString()), Promise.resolve()
|
||||||
})
|
})
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
return console.log("[mediasync] Error downloadImage: " + err.toString()), Promise.resolve()
|
return console.error("mediasync: error downloadImage: " + err.toString()), Promise.resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSubtitles(apiClient, jobItem, localItem) {
|
function getSubtitles(apiClient, jobItem, localItem) {
|
||||||
if (console.log("[mediasync] Begin getSubtitles"), !jobItem.Item.MediaSources.length) return console.log("[mediasync] Cannot download subtitles because video has no media source info."), Promise.resolve();
|
if (console.debug("mediasync: begin getSubtitles"), !jobItem.Item.MediaSources.length) return console.debug("mediasync: cannot download subtitles because video has no media source info."), Promise.resolve();
|
||||||
var files = jobItem.AdditionalFiles.filter(function(f) {
|
var files = jobItem.AdditionalFiles.filter(function(f) {
|
||||||
return "Subtitles" === f.Type
|
return "Subtitles" === f.Type
|
||||||
}),
|
}),
|
||||||
|
@ -288,16 +290,16 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
return getItemSubtitle(file, apiClient, jobItem, localItem, mediaSource)
|
return getItemSubtitle(file, apiClient, jobItem, localItem, mediaSource)
|
||||||
})
|
})
|
||||||
}), p.then(function() {
|
}), p.then(function() {
|
||||||
return console.log("[mediasync] Exit getSubtitles"), Promise.resolve()
|
return console.debug("mediasync: exit getSubtitles"), Promise.resolve()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function getItemSubtitle(file, apiClient, jobItem, localItem, mediaSource) {
|
function getItemSubtitle(file, apiClient, jobItem, localItem, mediaSource) {
|
||||||
console.log("[mediasync] Begin getItemSubtitle");
|
console.debug("mediasync: begin getItemSubtitle");
|
||||||
var subtitleStream = mediaSource.MediaStreams.filter(function(m) {
|
var subtitleStream = mediaSource.MediaStreams.filter(function(m) {
|
||||||
return "Subtitle" === m.Type && m.Index === file.Index
|
return "Subtitle" === m.Type && m.Index === file.Index
|
||||||
})[0];
|
})[0];
|
||||||
if (!subtitleStream) return console.log("[mediasync] Cannot download subtitles because matching stream info was not found."), Promise.resolve();
|
if (!subtitleStream) return console.debug("mediasync: cannot download subtitles because matching stream info was not found."), Promise.resolve();
|
||||||
var url = apiClient.getUrl("Sync/JobItems/" + jobItem.SyncJobItemId + "/AdditionalFiles", {
|
var url = apiClient.getUrl("Sync/JobItems/" + jobItem.SyncJobItemId + "/AdditionalFiles", {
|
||||||
Name: file.Name,
|
Name: file.Name,
|
||||||
api_key: apiClient.accessToken()
|
api_key: apiClient.accessToken()
|
||||||
|
@ -311,7 +313,7 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkLocalFileExistence(apiClient, serverInfo, options) {
|
function checkLocalFileExistence(apiClient, serverInfo, options) {
|
||||||
return options.checkFileExistence ? (console.log("[mediasync] Begin checkLocalFileExistence"), localassetmanager.getServerItems(serverInfo.Id).then(function(items) {
|
return options.checkFileExistence ? (console.debug("mediasync: begin checkLocalFileExistence"), localassetmanager.getServerItems(serverInfo.Id).then(function(items) {
|
||||||
var completedItems = items.filter(function(item) {
|
var completedItems = items.filter(function(item) {
|
||||||
return item && ("synced" === item.SyncStatus || "error" === item.SyncStatus)
|
return item && ("synced" === item.SyncStatus || "error" === item.SyncStatus)
|
||||||
}),
|
}),
|
||||||
|
@ -332,13 +334,13 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
return function() {
|
return function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
"string" == typeof webWorkerBaseUrl && -1 !== webWorkerBaseUrl.indexOf("ms-appx://") ? self.sync = function(apiClient, serverInfo, options) {
|
"string" == typeof webWorkerBaseUrl && -1 !== webWorkerBaseUrl.indexOf("ms-appx://") ? self.sync = function(apiClient, serverInfo, options) {
|
||||||
return console.log("[mediasync]************************************* Start sync"), checkLocalFileExistence(apiClient, serverInfo, options).then(function() {
|
return console.debug("mediasync: start sync"), checkLocalFileExistence(apiClient, serverInfo, options).then(function() {
|
||||||
return processDownloadStatus(apiClient, serverInfo, options).then(function() {
|
return processDownloadStatus(apiClient, serverInfo, options).then(function() {
|
||||||
return localassetmanager.getDownloadItemCount().then(function(downloadCount) {
|
return localassetmanager.getDownloadItemCount().then(function(downloadCount) {
|
||||||
return !0 === options.syncCheckProgressOnly && downloadCount > 2 ? Promise.resolve() : reportOfflineActions(apiClient, serverInfo).then(function() {
|
return !0 === options.syncCheckProgressOnly && downloadCount > 2 ? Promise.resolve() : reportOfflineActions(apiClient, serverInfo).then(function() {
|
||||||
return getNewMedia(apiClient, downloadCount).then(function() {
|
return getNewMedia(apiClient, downloadCount).then(function() {
|
||||||
return syncData(apiClient, serverInfo).then(function() {
|
return syncData(apiClient, serverInfo).then(function() {
|
||||||
return console.log("[mediasync]************************************* Exit sync"), Promise.resolve()
|
return console.debug("mediasync: Exit sync"), Promise.resolve()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -348,7 +350,7 @@ define(["localassetmanager"], function(localassetmanager) {
|
||||||
console.error(err.toString())
|
console.error(err.toString())
|
||||||
})
|
})
|
||||||
} : self.sync = function(apiClient, serverInfo, options) {
|
} : self.sync = function(apiClient, serverInfo, options) {
|
||||||
return console.log("[mediasync]************************************* Start sync"), checkLocalFileExistence(apiClient, serverInfo, options).then(function() {
|
return console.debug("mediasync: Start sync"), checkLocalFileExistence(apiClient, serverInfo, options).then(function() {
|
||||||
return syncData(apiClient, serverInfo).then(function() {
|
return syncData(apiClient, serverInfo).then(function() {
|
||||||
return processDownloadStatus(apiClient, serverInfo, options).then(function() {
|
return processDownloadStatus(apiClient, serverInfo, options).then(function() {
|
||||||
return localassetmanager.getDownloadItemCount().then(function(downloadCount) {
|
return localassetmanager.getDownloadItemCount().then(function(downloadCount) {
|
||||||
|
|
|
@ -3,18 +3,18 @@ define(["serversync"], function(ServerSync) {
|
||||||
|
|
||||||
function syncNext(connectionManager, servers, index, options, resolve, reject) {
|
function syncNext(connectionManager, servers, index, options, resolve, reject) {
|
||||||
var length = servers.length;
|
var length = servers.length;
|
||||||
if (index >= length) return console.log("MultiServerSync.sync complete"), void resolve();
|
if (index >= length) return console.debug("MultiServerSync.sync complete"), void resolve();
|
||||||
var server = servers[index];
|
var server = servers[index];
|
||||||
console.log("Creating ServerSync to server: " + server.Id), (new ServerSync).sync(connectionManager, server, options).then(function() {
|
console.debug("Creating ServerSync to server: " + server.Id), (new ServerSync).sync(connectionManager, server, options).then(function() {
|
||||||
console.log("ServerSync succeeded to server: " + server.Id), syncNext(connectionManager, servers, index + 1, options, resolve, reject)
|
console.debug("ServerSync succeeded to server: " + server.Id), syncNext(connectionManager, servers, index + 1, options, resolve, reject)
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
console.log("ServerSync failed to server: " + server.Id + ". " + err), syncNext(connectionManager, servers, index + 1, options, resolve, reject)
|
console.error("ServerSync failed to server: " + server.Id + ". " + err), syncNext(connectionManager, servers, index + 1, options, resolve, reject)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function MultiServerSync() {}
|
function MultiServerSync() {}
|
||||||
return MultiServerSync.prototype.sync = function(connectionManager, options) {
|
return MultiServerSync.prototype.sync = function(connectionManager, options) {
|
||||||
return console.log("MultiServerSync.sync starting..."), new Promise(function(resolve, reject) {
|
return console.debug("MultiServerSync.sync starting..."), new Promise(function(resolve, reject) {
|
||||||
var servers = connectionManager.getSavedServers();
|
var servers = connectionManager.getSavedServers();
|
||||||
syncNext(connectionManager, servers, 0, options, resolve, reject)
|
syncNext(connectionManager, servers, 0, options, resolve, reject)
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,11 +2,11 @@ define([], function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function performSync(connectionManager, server, options) {
|
function performSync(connectionManager, server, options) {
|
||||||
console.log("ServerSync.performSync to server: " + server.Id), options = options || {};
|
console.debug("ServerSync.performSync to server: " + server.Id), options = options || {};
|
||||||
var cameraUploadServers = options.cameraUploadServers || [];
|
var cameraUploadServers = options.cameraUploadServers || [];
|
||||||
console.log("ServerSync cameraUploadServers: " + JSON.stringify(cameraUploadServers));
|
console.debug("ServerSync cameraUploadServers: " + JSON.stringify(cameraUploadServers));
|
||||||
var uploadPhotos = -1 !== cameraUploadServers.indexOf(server.Id);
|
var uploadPhotos = -1 !== cameraUploadServers.indexOf(server.Id);
|
||||||
return console.log("ServerSync uploadPhotos: " + uploadPhotos), (uploadPhotos ? uploadContent(connectionManager, server, options) : Promise.resolve()).then(function() {
|
return console.debug("ServerSync uploadPhotos: " + uploadPhotos), (uploadPhotos ? uploadContent(connectionManager, server, options) : Promise.resolve()).then(function() {
|
||||||
return syncMedia(connectionManager, server, options)
|
return syncMedia(connectionManager, server, options)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ define([], function() {
|
||||||
|
|
||||||
function ServerSync() {}
|
function ServerSync() {}
|
||||||
return ServerSync.prototype.sync = function(connectionManager, server, options) {
|
return ServerSync.prototype.sync = function(connectionManager, server, options) {
|
||||||
if (!server.AccessToken && !server.ExchangeToken) return console.log("Skipping sync to server " + server.Id + " because there is no saved authentication information."), Promise.resolve();
|
if (!server.AccessToken && !server.ExchangeToken) return console.debug("Skipping sync to server " + server.Id + " because there is no saved authentication information."), Promise.resolve();
|
||||||
var connectionOptions = {
|
var connectionOptions = {
|
||||||
updateDateLastAccessed: !1,
|
updateDateLastAccessed: !1,
|
||||||
enableWebSocket: !1,
|
enableWebSocket: !1,
|
||||||
|
@ -34,9 +34,9 @@ define([], function() {
|
||||||
enableAutomaticBitrateDetection: !1
|
enableAutomaticBitrateDetection: !1
|
||||||
};
|
};
|
||||||
return connectionManager.connectToServer(server, connectionOptions).then(function(result) {
|
return connectionManager.connectToServer(server, connectionOptions).then(function(result) {
|
||||||
return "SignedIn" === result.State ? performSync(connectionManager, server, options) : (console.log("Unable to connect to server id: " + server.Id), Promise.reject())
|
return "SignedIn" === result.State ? performSync(connectionManager, server, options) : (console.error("Unable to connect to server id: " + server.Id), Promise.reject())
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
throw console.log("Unable to connect to server id: " + server.Id), err
|
throw console.error("Unable to connect to server id: " + server.Id), err
|
||||||
})
|
})
|
||||||
}, ServerSync
|
}, ServerSync
|
||||||
});
|
});
|
||||||
|
|
|
@ -10,7 +10,7 @@ define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSett
|
||||||
var data = cache[key];
|
var data = cache[key];
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
console.log("Found backdrop id list in cache. Key: " + key);
|
console.debug("Found backdrop id list in cache. Key: " + key);
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
return Promise.resolve(data);
|
return Promise.resolve(data);
|
||||||
}
|
}
|
||||||
|
|
|
@ -302,9 +302,9 @@ define(['browser'], function (browser) {
|
||||||
try {
|
try {
|
||||||
var isTizenUhd = webapis.productinfo.isUdPanelSupported();
|
var isTizenUhd = webapis.productinfo.isUdPanelSupported();
|
||||||
isTizenFhd = !isTizenUhd;
|
isTizenFhd = !isTizenUhd;
|
||||||
console.log("isTizenFhd = " + isTizenFhd);
|
console.debug("isTizenFhd = " + isTizenFhd);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log("isUdPanelSupported() error code = " + error.code);
|
console.error("isUdPanelSupported() error code = " + error.code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
|
||||||
try {
|
try {
|
||||||
culture = userSettings.language();
|
culture = userSettings.language();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('no language set in user settings');
|
console.error('no language set in user settings');
|
||||||
}
|
}
|
||||||
culture = culture || getDefaultLanguage();
|
culture = culture || getDefaultLanguage();
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
|
||||||
try {
|
try {
|
||||||
dateTimeCulture = userSettings.dateTimeLocale();
|
dateTimeCulture = userSettings.dateTimeLocale();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('no date format set in user settings');
|
console.error('no date format set in user settings');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dateTimeCulture) {
|
if (dateTimeCulture) {
|
||||||
|
|
|
@ -34,7 +34,7 @@ define(["layoutManager", "datetime", "cardBuilder", "apphost"], function (layout
|
||||||
day: "numeric"
|
day: "numeric"
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("Error parsing premiereDate:" + item.StartDate + "; error: " + err);
|
console.error("error parsing premiereDate:" + item.StartDate + "; error: " + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,12 +16,12 @@ define([
|
||||||
|
|
||||||
function defineRoute(newRoute) {
|
function defineRoute(newRoute) {
|
||||||
var path = newRoute.path;
|
var path = newRoute.path;
|
||||||
console.log("defining route: " + path);
|
console.debug("defining route: " + path);
|
||||||
newRoute.dictionary = "core";
|
newRoute.dictionary = "core";
|
||||||
Emby.Page.addRoute(path, newRoute);
|
Emby.Page.addRoute(path, newRoute);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("defining core routes");
|
console.debug("defining core routes");
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/addplugin.html",
|
path: "/addplugin.html",
|
||||||
|
|
|
@ -286,10 +286,10 @@ var AppInfo = {};
|
||||||
bindConnectionManagerEvents(connectionManager, events, userSettings);
|
bindConnectionManagerEvents(connectionManager, events, userSettings);
|
||||||
|
|
||||||
if (!AppInfo.isNativeApp) {
|
if (!AppInfo.isNativeApp) {
|
||||||
console.log("loading ApiClient singleton");
|
console.debug("loading ApiClient singleton");
|
||||||
|
|
||||||
return require(["apiclient"], function (apiClientFactory) {
|
return require(["apiclient"], function (apiClientFactory) {
|
||||||
console.log("creating ApiClient singleton");
|
console.debug("creating ApiClient singleton");
|
||||||
|
|
||||||
var apiClient = new apiClientFactory(Dashboard.serverAddress(), apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), window.devicePixelRatio);
|
var apiClient = new apiClientFactory(Dashboard.serverAddress(), apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), window.devicePixelRatio);
|
||||||
|
|
||||||
|
@ -301,7 +301,7 @@ var AppInfo = {};
|
||||||
window.ApiClient = apiClient;
|
window.ApiClient = apiClient;
|
||||||
localApiClient = apiClient;
|
localApiClient = apiClient;
|
||||||
|
|
||||||
console.log("loaded ApiClient singleton");
|
console.debug("loaded ApiClient singleton");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ var AppInfo = {};
|
||||||
try {
|
try {
|
||||||
playbackManager.onAppClose();
|
playbackManager.onAppClose();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("error in onAppClose: " + err);
|
console.error("error in onAppClose: " + err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return playbackManager;
|
return playbackManager;
|
||||||
|
@ -393,7 +393,7 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
function onRequireJsError(requireType, requireModules) {
|
function onRequireJsError(requireType, requireModules) {
|
||||||
console.log("RequireJS error: " + (requireType || "unknown") + ". Failed modules: " + (requireModules || []).join(","));
|
console.error("RequireJS error: " + (requireType || "unknown") + ". Failed modules: " + (requireModules || []).join(","));
|
||||||
}
|
}
|
||||||
|
|
||||||
function defineResizeObserver() {
|
function defineResizeObserver() {
|
||||||
|
@ -481,7 +481,7 @@ var AppInfo = {};
|
||||||
|
|
||||||
Promise.all(promises).then(function () {
|
Promise.all(promises).then(function () {
|
||||||
createConnectionManager().then(function () {
|
createConnectionManager().then(function () {
|
||||||
console.log("initAfterDependencies promises resolved");
|
console.debug("initAfterDependencies promises resolved");
|
||||||
|
|
||||||
require(["globalize", "browser"], function (globalize, browser) {
|
require(["globalize", "browser"], function (globalize, browser) {
|
||||||
window.Globalize = globalize;
|
window.Globalize = globalize;
|
||||||
|
@ -525,10 +525,10 @@ var AppInfo = {};
|
||||||
document.title = Globalize.translateDocument(document.title, "core");
|
document.title = Globalize.translateDocument(document.title, "core");
|
||||||
|
|
||||||
if (browser.tv && !browser.android) {
|
if (browser.tv && !browser.android) {
|
||||||
console.log("Using system fonts with explicit sizes");
|
console.debug("using system fonts with explicit sizes");
|
||||||
require(["systemFontsSizedCss"]);
|
require(["systemFontsSizedCss"]);
|
||||||
} else {
|
} else {
|
||||||
console.log("Using default fonts");
|
console.debug("using default fonts");
|
||||||
require(["systemFontsCss"]);
|
require(["systemFontsCss"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -540,7 +540,7 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadPlugins(appHost, browser, shell) {
|
function loadPlugins(appHost, browser, shell) {
|
||||||
console.log("Loading installed plugins");
|
console.debug("loading installed plugins");
|
||||||
var list = [
|
var list = [
|
||||||
"components/playback/playaccessvalidation",
|
"components/playback/playaccessvalidation",
|
||||||
"components/playback/experimentalwarnings",
|
"components/playback/experimentalwarnings",
|
||||||
|
@ -582,13 +582,13 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAppReady(browser) {
|
function onAppReady(browser) {
|
||||||
console.log("Begin onAppReady");
|
console.debug("begin onAppReady");
|
||||||
|
|
||||||
// ensure that appHost is loaded in this point
|
// ensure that appHost is loaded in this point
|
||||||
require(['apphost', 'appRouter'], function (appHost, appRouter) {
|
require(['apphost', 'appRouter'], function (appHost, appRouter) {
|
||||||
window.Emby = {};
|
window.Emby = {};
|
||||||
|
|
||||||
console.log("onAppReady - loading dependencies");
|
console.debug("onAppReady: loading dependencies");
|
||||||
if (browser.iOS) {
|
if (browser.iOS) {
|
||||||
require(['css!assets/css/ios.css']);
|
require(['css!assets/css/ios.css']);
|
||||||
}
|
}
|
||||||
|
@ -659,7 +659,7 @@ var AppInfo = {};
|
||||||
try {
|
try {
|
||||||
navigator.serviceWorker.register("serviceworker.js");
|
navigator.serviceWorker.register("serviceworker.js");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("Error registering serviceWorker: " + err);
|
console.error("error registering serviceWorker: " + err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue