Merge pull request #816 from MrTimscampi/quiet

Make the console quieter by default
This commit is contained in:
dkanada 2020-02-25 22:45:26 +09:00 committed by GitHub
commit b3da19a596
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
56 changed files with 295 additions and 282 deletions

View file

@ -59,8 +59,23 @@ define(["events", "appStorage"], function(events, appStorage) {
}
function ApiClient(serverAddress, appName, appVersion, deviceName, deviceId, devicePixelRatio) {
if (!serverAddress) throw new Error("Must supply a 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
if (!serverAddress) {
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) {
@ -68,13 +83,14 @@ define(["events", "appStorage"], function(events, appStorage) {
}
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",
accept: "application/json"
}, 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() {
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({
url: serverInfo.RemoteAddress,
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 = {};
state.numAddresses = addresses.length, state.rejects = 0, addresses.map(function(url) {
setTimeout(function() {
@ -103,7 +119,7 @@ define(["events", "appStorage"], function(events, appStorage) {
function tryReconnect(instance, retryCount) {
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() {
tryReconnect(instance, retryCount + 1).then(resolve, reject)
}, 500)
@ -139,7 +155,7 @@ define(["events", "appStorage"], function(events, appStorage) {
function onWebSocketOpen() {
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() {
@ -149,7 +165,12 @@ define(["events", "appStorage"], function(events, appStorage) {
function setSocketOnClose(apiClient, socket) {
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")
}, 0)
}
@ -244,24 +265,24 @@ define(["events", "appStorage"], function(events, appStorage) {
var lowered = url.toLowerCase();
return "/" !== name.charAt(0) && (url += "/"), url += name, params && (params = paramsToString(params)) && (url += "?" + params), url
}, 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;
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))
}, 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;
console.log("Attempting reconnection");
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.debug("Attempting reconnection");
var previousServerAddress = instance.serverAddress();
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) {
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) {
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) {
console.log("Requesting url without automatic networking: " + request.url);
console.debug("Requesting url without automatic networking: " + request.url);
var instance = this;
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))
@ -340,7 +361,7 @@ define(["events", "appStorage"], function(events, appStorage) {
if (!this.isWebSocketOpenOrConnecting() && this.isWebSocketSupported()) try {
this.openWebSocket()
} catch (err) {
console.log("Error opening web socket: " + err)
console.error("error opening web socket: " + err)
}
};
var messageIdsReceived = {};
@ -348,14 +369,14 @@ define(["events", "appStorage"], function(events, appStorage) {
var accessToken = this.accessToken();
if (!accessToken) throw new Error("Cannot open web socket without access token.");
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);
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() {
var socket = this._webSocket;
socket && socket.readyState === WebSocket.OPEN && socket.close()
}, ApiClient.prototype.sendWebSocketMessage = function(name, data) {
console.log("Sending web socket message: " + name);
console.debug("Sending web socket message: " + name);
var msg = {
MessageType: name
};
@ -387,7 +408,7 @@ define(["events", "appStorage"], function(events, appStorage) {
}, ApiClient.prototype.updateServerInfo = function(server, serverUrl) {
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));
console.log("Setting server address to " + serverUrl), this.serverAddress(serverUrl)
console.debug("Setting server address to " + serverUrl), this.serverAddress(serverUrl)
}, ApiClient.prototype.isWebSocketSupported = function() {
try {
return null != WebSocket

View file

@ -2,7 +2,7 @@ define([], function() {
"use strict";
function onCachePutFail(e) {
console.log(e);
console.error("cannot put to a cache: " + e);
}
function updateCache(instance) {
@ -45,7 +45,7 @@ define([], function() {
self.caches.open("embydata").then(onCacheOpened.bind(this));
}
} catch (err) {
console.log("Error opening cache: " + err);
console.error("error opening cache: " + err);
}
}

View file

@ -95,18 +95,18 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
}
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) {
var timeout = setTimeout(reject, timeoutMs);
options = options || {};
options.credentials = "same-origin";
fetch(url, options).then(function (response) {
clearTimeout(timeout);
console.log("fetchWithTimeout: succeeded connecting to url: " + url);
console.debug("fetchWithTimeout: succeeded connecting to url: " + url);
resolve(response);
}, function (error) {
clearTimeout(timeout);
console.log("fetchWithTimeout: timed out connecting to url: " + url);
console.error("fetchWithTimeout: timed out connecting to url: " + url);
reject();
});
});
@ -118,9 +118,9 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
}
request.headers = request.headers || {};
console.log("ConnectionManager requesting url: " + request.url);
console.debug("ConnectionManager requesting url: " + request.url);
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 ("json" === request.dataType || "application/json" === request.headers.accept) {
@ -132,7 +132,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
return Promise.reject(response);
}, function (err) {
console.log("ConnectionManager request failed to url: " + request.url);
console.error("ConnectionManager request failed to url: " + request.url);
throw err;
});
}
@ -227,7 +227,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
apiClient.enableAutomaticBitrateDetection = options.enableAutomaticBitrateDetection;
if (false !== options.enableWebSocket) {
console.log("calling apiClient.ensureWebSocket");
console.debug("calling apiClient.ensureWebSocket");
apiClient.ensureWebSocket();
}
}
@ -333,7 +333,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
}
function getTryConnectPromise(url, connectionMode, state, resolve, reject) {
console.log("getTryConnectPromise " + url);
console.debug("getTryConnectPromise " + url);
ajax({
url: getEmbyServerUrl(url, "system/info/public"),
timeout: defaultTimeout,
@ -342,7 +342,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
}).then(function (result) {
if (!state.resolved) {
state.resolved = true;
console.log("Reconnect succeeded to " + url);
console.debug("Reconnect succeeded to " + url);
resolve({
url: url,
connectionMode: connectionMode,
@ -351,7 +351,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
}
}, function () {
if (!state.resolved) {
console.log("Reconnect failed to " + url);
console.error("Reconnect failed to " + url);
if (++state.rejects >= state.numAddresses) {
reject();
@ -391,7 +391,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
addressesStrings.push(addresses[addresses.length - 1].url);
}
console.log("tryReconnect: " + addressesStrings.join("|"));
console.debug("tryReconnect: " + addressesStrings.join("|"));
return new Promise(function (resolve, reject) {
var state = {};
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;
this._apiClients = [];
self._minServerVersion = "3.2.33";
@ -530,7 +530,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
};
self.clearData = function () {
console.log("connection manager clearing data");
console.debug("connection manager clearing data");
var credentials = credentialProvider.credentials();
credentials.Servers = [];
credentialProvider.credentials(credentials);
@ -550,7 +550,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
events.trigger(self, "apiclientcreated", [apiClient]);
}
console.log("returning instance from getOrAddApiClient");
console.debug("returning instance from getOrAddApiClient");
return apiClient;
};
@ -592,7 +592,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
};
self.logout = function () {
console.log("begin connectionManager loguot");
console.debug("begin connectionManager loguot");
var promises = [];
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 () {
console.log("Begin getAvailableServers");
console.debug("begin getAvailableServers");
var credentials = credentialProvider.credentials();
return Promise.all([findServers()]).then(function (responses) {
var foundServers = responses[0];
@ -644,7 +644,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
};
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;
if (firstServer) {
@ -653,7 +653,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
result.State = "ServerSelection";
}
console.log("resolving connectToServers with result.State: " + result.State);
console.debug("resolving connectToServers with result.State: " + result.State);
return result;
});
}
@ -665,7 +665,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
};
self.connectToServer = function (server, options) {
console.log("begin connectToServer");
console.debug("begin connectToServer");
return new Promise(function (resolve, reject) {
options = options || {};
tryReconnect(server).then(function (result) {
@ -674,14 +674,14 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
result = result.data;
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({
State: "ServerUpdateNeeded",
Servers: [server]
});
} else {
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);
} else {
onSuccessfulConnection(server, result, connectionMode, serverUrl, options, resolve);
@ -695,7 +695,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
self.connectToAddress = function (address, options) {
function onFail() {
console.log("connectToAddress " + address + " failed");
console.error("connectToAddress " + address + " failed");
return Promise.resolve({
State: "Unavailable",
});
@ -741,7 +741,7 @@ define(["events", "apiclient", "appStorage"], function (events, apiClientFactory
};
ConnectionManager.prototype.connect = function (options) {
console.log("Begin connect");
console.debug("begin connect");
var instance = this;
return instance.getAvailableServers().then(function (servers) {
return instance.connectToServers(servers, options);

View file

@ -4,7 +4,7 @@ define(["events", "appStorage"], function(events, appStorage) {
function ensure(instance, data) {
if (!instance._credentials) {
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 || []
}
}

View file

@ -2,7 +2,7 @@ define(["filerepository", "itemrepository", "useractionrepository", "transferman
"use strict";
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) {
@ -25,7 +25,7 @@ define(["filerepository", "itemrepository", "useractionrepository", "transferman
}
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) {

View file

@ -3,7 +3,7 @@ define(["connectionManager"], function(connectionManager) {
var isSyncing;
return {
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) {
options = options || {}, options.cameraUploadServers = appSettings.cameraUploadServers(), (new MultiServerSync).sync(connectionManager, options).then(function() {
isSyncing = null, resolve()

View file

@ -2,9 +2,9 @@ define(["localassetmanager"], function(localassetmanager) {
"use strict";
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) {
console.log("[mediasync] Begin processDownloadStatus getServerItems completed");
console.debug("mediasync: begin processDownloadStatus getServerItems completed");
var p = Promise.resolve(),
cnt = 0;
return items.filter(function(item) {
@ -14,7 +14,9 @@ define(["localassetmanager"], function(localassetmanager) {
return reportTransfer(apiClient, item)
}), cnt++
}), 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) {
return localassetmanager.getItemFileSize(item.LocalPath).then(function(size) {
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) {
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) {
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 console.log("[mediasync] reportTransfer: Item deleted."), Promise.resolve()
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.debug("mediasync: reportTransfer: Item deleted."), Promise.resolve()
}, 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) {
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.error("mediasync: reportTransfer: error on getItemFileSize. Deleting item.", error), localassetmanager.removeLocalItem(item).then(function() {
return console.debug("mediasync: reportTransfer: Item deleted."), Promise.resolve()
}, 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) {
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 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) {
return console.error("[mediasync] error on apiClient.reportOfflineActions: " + err.toString()), localassetmanager.deleteUserActions(actions)
}) : (console.log("[mediasync] Exit reportOfflineActions (no actions)"), Promise.resolve())
return console.error("mediasync: error on apiClient.reportOfflineActions: " + err.toString()), localassetmanager.deleteUserActions(actions)
}) : (console.debug("mediasync: exit reportOfflineActions (no actions)"), Promise.resolve())
})
}
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) {
return item && ("synced" === item.SyncStatus || "error" === item.SyncStatus)
}),
@ -67,16 +69,16 @@ define(["localassetmanager"], function(localassetmanager) {
};
return apiClient.syncData(request).then(function(result) {
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) {
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) {
console.log("[mediasync] Begin afterSyncData");
console.debug("mediasync: begin afterSyncData");
var p = Promise.resolve();
return syncDataResult.ItemIdsToRemove && syncDataResult.ItemIdsToRemove.length > 0 && syncDataResult.ItemIdsToRemove.forEach(function(itemId) {
p = p.then(function() {
@ -85,25 +87,25 @@ define(["localassetmanager"], function(localassetmanager) {
}), p = p.then(function() {
return removeObsoleteContainerItems(serverInfo.Id)
}), p.then(function() {
return console.log("[mediasync] Exit afterSyncData"), Promise.resolve()
return console.debug("mediasync: exit afterSyncData"), Promise.resolve()
})
}
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) {
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()
}, function(err2) {
return console.error("[mediasync] removeLocalItem: Failed: ", err2), Promise.resolve()
return console.error("mediasync: removeLocalItem: Failed: ", err2), Promise.resolve()
})
}
function getNewMedia(apiClient, downloadCount) {
return console.log("[mediasync] Begin getNewMedia"), apiClient.getReadySyncItems(apiClient.deviceId()).then(function(jobItems) {
console.log("[mediasync] getReadySyncItems returned " + jobItems.length + " items");
return console.debug("mediasync: begin getNewMedia"), apiClient.getReadySyncItems(apiClient.deviceId()).then(function(jobItems) {
console.debug("mediasync: getReadySyncItems returned " + jobItems.length + " items");
var p = Promise.resolve(),
currentCount = downloadCount;
return jobItems.forEach(function(jobItem) {
@ -111,15 +113,15 @@ define(["localassetmanager"], function(localassetmanager) {
return getNewItem(jobItem, apiClient)
}))
}), p.then(function() {
return console.log("[mediasync] Exit getNewMedia"), Promise.resolve()
return console.debug("mediasync: exit getNewMedia"), Promise.resolve()
})
}, 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) {
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;
return downloadParentItems(apiClient, jobItem, libraryItem).then(function() {
return getSubtitles(apiClient, jobItem, localItem)
@ -128,21 +130,21 @@ define(["localassetmanager"], function(localassetmanager) {
}
function createLocalItem(libraryItem, jobItem) {
console.log("[localassetmanager] Begin createLocalItem");
console.debug("localassetmanager: begin createLocalItem");
var item = {
Item: libraryItem,
ItemId: libraryItem.Id,
ServerId: libraryItem.ServerId,
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) {
console.log("[mediasync] Begin getNewItem");
console.debug("mediasync: begin getNewItem");
var libraryItem = jobItem.Item;
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 = [];
var localItem = createLocalItem(libraryItem, jobItem);
return localItem.SyncStatus = "queued", downloadMedia(apiClient, jobItem, localItem)
@ -169,7 +171,7 @@ define(["localassetmanager"], function(localassetmanager) {
return localassetmanager.addOrUpdateLocalItem(localItem).then(function() {
return Promise.resolve(localItem)
}, 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) {
console.log("[mediasync] downloadMedia: start.");
console.debug("mediasync: downloadMedia: start.");
var url = apiClient.getUrl("Sync/JobItems/" + jobItem.SyncJobItemId + "/File", {
api_key: apiClient.accessToken()
});
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,
libraryItem = localItem.Item;
if (localPath && libraryItem.MediaSources)
@ -200,18 +202,18 @@ define(["localassetmanager"], function(localassetmanager) {
return afterMediaDownloaded(apiClient, jobItem, localItem).then(function() {
return result.isComplete ? (localItem.SyncStatus = "synced", reportTransfer(apiClient, localItem)) : Promise.resolve()
}, 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) {
return console.log("[mediasync] downloadMedia: addOrUpdateLocalItem failed: " + err), Promise.reject(err)
return console.debug("mediasync: downloadMedia: addOrUpdateLocalItem failed: " + err), Promise.reject(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) {
console.log("[mediasync] Begin getImages");
console.debug("mediasync: begin getImages");
var p = Promise.resolve(),
libraryItem = localItem.Item,
serverId = libraryItem.ServerId,
@ -249,15 +251,15 @@ define(["localassetmanager"], function(localassetmanager) {
})), libraryItem.ParentPrimaryImageItemId && libraryItem.ParentPrimaryImageTag && (p = p.then(function() {
return downloadImage(localItem, apiClient, serverId, libraryItem.ParentPrimaryImageItemId, libraryItem.ParentPrimaryImageTag, "Primary")
})), p.then(function() {
return console.log("[mediasync] Finished getImages"), localassetmanager.addOrUpdateLocalItem(localItem)
return console.debug("mediasync: finished getImages"), localassetmanager.addOrUpdateLocalItem(localItem)
}, 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) {
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;
"backdrop" === imageType && (maxWidth = null);
var imageUrl = apiClient.getScaledImageUrl(itemId, {
@ -266,18 +268,18 @@ define(["localassetmanager"], function(localassetmanager) {
maxWidth: maxWidth,
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)
}, function(err) {
return console.log("[mediasync] Error downloadImage: " + err.toString()), Promise.resolve()
return console.error("mediasync: error downloadImage: " + err.toString()), Promise.resolve()
})
}, 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) {
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) {
return "Subtitles" === f.Type
}),
@ -288,16 +290,16 @@ define(["localassetmanager"], function(localassetmanager) {
return getItemSubtitle(file, apiClient, jobItem, localItem, mediaSource)
})
}), 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) {
console.log("[mediasync] Begin getItemSubtitle");
console.debug("mediasync: begin getItemSubtitle");
var subtitleStream = mediaSource.MediaStreams.filter(function(m) {
return "Subtitle" === m.Type && m.Index === file.Index
})[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", {
Name: file.Name,
api_key: apiClient.accessToken()
@ -311,7 +313,7 @@ define(["localassetmanager"], function(localassetmanager) {
}
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) {
return item && ("synced" === item.SyncStatus || "error" === item.SyncStatus)
}),
@ -332,13 +334,13 @@ define(["localassetmanager"], function(localassetmanager) {
return function() {
var self = this;
"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 localassetmanager.getDownloadItemCount().then(function(downloadCount) {
return !0 === options.syncCheckProgressOnly && downloadCount > 2 ? Promise.resolve() : reportOfflineActions(apiClient, serverInfo).then(function() {
return getNewMedia(apiClient, downloadCount).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())
})
} : 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 processDownloadStatus(apiClient, serverInfo, options).then(function() {
return localassetmanager.getDownloadItemCount().then(function(downloadCount) {

View file

@ -3,18 +3,18 @@ define(["serversync"], function(ServerSync) {
function syncNext(connectionManager, servers, index, options, resolve, reject) {
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];
console.log("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("Creating ServerSync to server: " + server.Id), (new ServerSync).sync(connectionManager, server, options).then(function() {
console.debug("ServerSync succeeded to server: " + server.Id), syncNext(connectionManager, servers, index + 1, options, resolve, reject)
}, 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() {}
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();
syncNext(connectionManager, servers, 0, options, resolve, reject)
})

View file

@ -2,11 +2,11 @@ define([], function() {
"use strict";
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 || [];
console.log("ServerSync cameraUploadServers: " + JSON.stringify(cameraUploadServers));
console.debug("ServerSync cameraUploadServers: " + JSON.stringify(cameraUploadServers));
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)
})
}
@ -26,7 +26,7 @@ define([], function() {
function ServerSync() {}
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 = {
updateDateLastAccessed: !1,
enableWebSocket: !1,
@ -34,9 +34,9 @@ define([], function() {
enableAutomaticBitrateDetection: !1
};
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) {
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
});