move completely to fetch
This commit is contained in:
parent
ee899a7332
commit
9932bc3eb5
168 changed files with 948 additions and 945 deletions
|
@ -1,24 +0,0 @@
|
|||
(function (globalScope) {
|
||||
|
||||
globalScope.HttpClient = {
|
||||
|
||||
param: function (params) {
|
||||
return jQuery.param(params);
|
||||
},
|
||||
|
||||
send: function (request) {
|
||||
|
||||
request.timeout = request.timeout || 30000;
|
||||
|
||||
try {
|
||||
return jQuery.ajax(request);
|
||||
} catch (err) {
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
deferred.reject();
|
||||
return deferred.promise();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
})(window);
|
|
@ -68,8 +68,9 @@
|
|||
|
||||
if (promise == null) {
|
||||
|
||||
promise = self.getUser(self.getCurrentUserId()).fail(function () {
|
||||
promise = self.getUser(self.getCurrentUserId()).catch(function (err) {
|
||||
currentUserPromise = null;
|
||||
throw err;
|
||||
});
|
||||
|
||||
currentUserPromise = promise;
|
||||
|
@ -123,7 +124,7 @@
|
|||
name = name.split('&').join('-');
|
||||
name = name.split('?').join('-');
|
||||
|
||||
var val = HttpClient.param({ name: name });
|
||||
var val = paramsToString({ name: name });
|
||||
return val.substring(val.indexOf('=') + 1).replace("'", '%27');
|
||||
};
|
||||
|
||||
|
@ -188,27 +189,35 @@
|
|||
throw new Error("Request cannot be null");
|
||||
}
|
||||
|
||||
if (includeAuthorization !== false) {
|
||||
|
||||
request.headers = request.headers || {};
|
||||
self.setRequestHeaders(request.headers);
|
||||
}
|
||||
|
||||
if (self.enableAutomaticNetworking === false || request.type != "GET") {
|
||||
logger.log('Requesting url without automatic networking: ' + request.url);
|
||||
return HttpClient.send(request).fail(onRequestFail);
|
||||
}
|
||||
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
self.ajaxWithFailover(request, deferred, true);
|
||||
return deferred.promise();
|
||||
return self.fetch(request, includeAuthorization);
|
||||
};
|
||||
|
||||
function getFetchPromise(request) {
|
||||
return fetch(request.url, {
|
||||
headers: request.headers,
|
||||
|
||||
var headers = request.headers || {};
|
||||
|
||||
if (request.dataType == 'json') {
|
||||
headers.accept = 'application/json';
|
||||
}
|
||||
|
||||
var fetchRequest = {
|
||||
headers: headers,
|
||||
method: request.type
|
||||
});
|
||||
};
|
||||
|
||||
if (request.data) {
|
||||
|
||||
if (typeof request.data === 'string') {
|
||||
fetchRequest.body = request.data;
|
||||
}
|
||||
}
|
||||
|
||||
if (request.contentType) {
|
||||
|
||||
headers['Content-Type'] = request.contentType;
|
||||
}
|
||||
|
||||
return fetch(request.url, fetchRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -220,52 +229,51 @@
|
|||
throw new Error("Request cannot be null");
|
||||
}
|
||||
|
||||
request.headers = request.headers || {};
|
||||
|
||||
if (includeAuthorization !== false) {
|
||||
|
||||
request.headers = request.headers || {};
|
||||
self.setRequestHeaders(request.headers);
|
||||
}
|
||||
|
||||
if (self.enableAutomaticNetworking === false || request.type != "GET") {
|
||||
logger.log('Requesting url without automatic networking: ' + request.url);
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
return getFetchPromise(request).then(function (response) {
|
||||
|
||||
getFetchPromise(request).then(function (response) {
|
||||
if (response.status < 400) {
|
||||
|
||||
if (response.status < 400) {
|
||||
resolve(response);
|
||||
if (request.dataType == 'json' || request.headers.accept == 'application/json') {
|
||||
return response.json();
|
||||
} else {
|
||||
onFetchFail(request.url, response);
|
||||
reject();
|
||||
return response;
|
||||
}
|
||||
} else {
|
||||
onFetchFail(request.url, response);
|
||||
return Promise.reject(response);
|
||||
}
|
||||
|
||||
}, function () {
|
||||
onFetchFail(request.url, {});
|
||||
reject();
|
||||
});
|
||||
}, function () {
|
||||
onFetchFail(request.url, {});
|
||||
return Promise.reject({});
|
||||
});
|
||||
}
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
self.fetchWithFailover(request, resolve, reject, true);
|
||||
});
|
||||
return self.fetchWithFailover(request, true);
|
||||
};
|
||||
|
||||
self.fetchJSON = function (url, includeAuthorization) {
|
||||
self.getJSON = function (url, includeAuthorization) {
|
||||
|
||||
return self.fetch({
|
||||
|
||||
url: url,
|
||||
type: 'GET',
|
||||
dataType: 'json',
|
||||
headers: {
|
||||
accept: 'application/json'
|
||||
}
|
||||
|
||||
}, includeAuthorization).then(function (response) {
|
||||
return response.json();
|
||||
});
|
||||
}, includeAuthorization);
|
||||
};
|
||||
|
||||
function switchConnectionMode(connectionMode) {
|
||||
|
@ -303,15 +311,15 @@
|
|||
|
||||
var timeout = connectionMode == MediaBrowser.ConnectionMode.Local ? 7000 : 15000;
|
||||
|
||||
HttpClient.send({
|
||||
fetch(url + "/system/info/public", {
|
||||
|
||||
type: "GET",
|
||||
url: url + "/system/info/public",
|
||||
dataType: "json",
|
||||
method: 'GET',
|
||||
accept: 'application/json'
|
||||
|
||||
timeout: timeout
|
||||
// Commenting this out since the fetch api doesn't have a timeout option yet
|
||||
//timeout: timeout
|
||||
|
||||
}).done(function () {
|
||||
}).then(function () {
|
||||
|
||||
logger.log("Reconnect succeeded to " + url);
|
||||
|
||||
|
@ -320,7 +328,7 @@
|
|||
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
logger.log("Reconnect attempt failed to " + url);
|
||||
|
||||
|
@ -347,19 +355,24 @@
|
|||
return deferred.promise();
|
||||
}
|
||||
|
||||
self.fetchWithFailover = function (request, resolve, reject, enableReconnection) {
|
||||
self.fetchWithFailover = function (request, enableReconnection) {
|
||||
|
||||
logger.log("Requesting " + request.url);
|
||||
|
||||
request.timeout = 30000;
|
||||
|
||||
getFetchPromise(request).then(function (response) {
|
||||
return getFetchPromise(request).then(function (response) {
|
||||
|
||||
if (response.status < 400) {
|
||||
resolve(response);
|
||||
|
||||
if (request.dataType == 'json' || request.headers.accept == 'application/json') {
|
||||
return response.json();
|
||||
} else {
|
||||
return response;
|
||||
}
|
||||
} else {
|
||||
onFetchFail(request.url, response);
|
||||
reject();
|
||||
return Promise.reject(response);
|
||||
}
|
||||
|
||||
}, function () {
|
||||
|
@ -373,18 +386,18 @@
|
|||
|
||||
var previousServerAddress = self.serverAddress();
|
||||
|
||||
tryReconnect().done(function () {
|
||||
tryReconnect().then(function () {
|
||||
|
||||
logger.log("Reconnect succeesed");
|
||||
request.url = request.url.replace(previousServerAddress, self.serverAddress());
|
||||
|
||||
self.fetchWithFailover(request, resolve, reject, false);
|
||||
self.fetchWithFailover(request, false);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
logger.log("Reconnect failed");
|
||||
onFetchFail(request.url, {});
|
||||
reject();
|
||||
return Promise.reject({});
|
||||
|
||||
});
|
||||
} else {
|
||||
|
@ -392,55 +405,7 @@
|
|||
logger.log("Reporting request failure");
|
||||
|
||||
onFetchFail(request.url, {});
|
||||
reject();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
self.ajaxWithFailover = function (request, deferred, enableReconnection) {
|
||||
|
||||
logger.log("Requesting " + request.url);
|
||||
|
||||
request.timeout = 30000;
|
||||
|
||||
HttpClient.send(request).done(function (response) {
|
||||
|
||||
deferred.resolve(response, 0);
|
||||
|
||||
}).fail(function (e, textStatus) {
|
||||
|
||||
logger.log("Request failed with textStatus " + textStatus + " to " + request.url);
|
||||
|
||||
var statusCode = parseInt(e.status || '0');
|
||||
var isUserErrorCode = statusCode >= 400 && statusCode < 500;
|
||||
|
||||
// http://api.jquery.com/jQuery.ajax/
|
||||
if (enableReconnection && !isUserErrorCode) {
|
||||
|
||||
logger.log("Attempting reconnection");
|
||||
|
||||
var previousServerAddress = self.serverAddress();
|
||||
|
||||
tryReconnect().done(function () {
|
||||
|
||||
logger.log("Reconnect succeesed");
|
||||
request.url = request.url.replace(previousServerAddress, self.serverAddress());
|
||||
|
||||
self.ajaxWithFailover(request, deferred, false);
|
||||
|
||||
}).fail(function () {
|
||||
|
||||
logger.log("Reconnect failed");
|
||||
onRetryRequestFail(request);
|
||||
deferred.reject();
|
||||
|
||||
});
|
||||
} else {
|
||||
|
||||
logger.log("Reporting request failure");
|
||||
|
||||
onRetryRequestFail(request);
|
||||
deferred.reject();
|
||||
return Promise.reject({});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
@ -453,14 +418,20 @@
|
|||
});
|
||||
};
|
||||
|
||||
self.getJSON = function (url) {
|
||||
function paramsToString(params) {
|
||||
|
||||
return self.ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
dataType: "json"
|
||||
});
|
||||
};
|
||||
var values = [];
|
||||
|
||||
for (var key in params) {
|
||||
|
||||
var value = params[key];
|
||||
|
||||
if (value) {
|
||||
values.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
|
||||
}
|
||||
}
|
||||
return values.join('&');
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an api url based on a handler name and query string parameters
|
||||
|
@ -490,7 +461,7 @@
|
|||
url += name;
|
||||
|
||||
if (params) {
|
||||
params = HttpClient.param(params);
|
||||
params = paramsToString(params);
|
||||
if (params) {
|
||||
url += "?" + params;
|
||||
}
|
||||
|
@ -632,7 +603,7 @@
|
|||
|
||||
var now = new Date().getTime();
|
||||
|
||||
self.get(url).done(function () {
|
||||
self.get(url).then(function () {
|
||||
|
||||
var responseTimeSeconds = (new Date().getTime() - now) / 1000;
|
||||
var bytesPerSecond = byteSize / responseTimeSeconds;
|
||||
|
@ -640,7 +611,7 @@
|
|||
|
||||
deferred.resolveWith(null, [bitrate]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
deferred.reject();
|
||||
});
|
||||
|
@ -653,24 +624,24 @@
|
|||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
// First try a small amount so that we don't hang up their mobile connection
|
||||
self.getDownloadSpeed(1000000).done(function (bitrate) {
|
||||
self.getDownloadSpeed(1000000).then(function (bitrate) {
|
||||
|
||||
if (bitrate < 1000000) {
|
||||
deferred.resolveWith(null, [Math.round(bitrate * .8)]);
|
||||
} else {
|
||||
|
||||
// If that produced a fairly high speed, try again with a larger size to get a more accurate result
|
||||
self.getDownloadSpeed(2400000).done(function (bitrate) {
|
||||
self.getDownloadSpeed(2400000).then(function (bitrate) {
|
||||
|
||||
deferred.resolveWith(null, [Math.round(bitrate * .8)]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
deferred.reject();
|
||||
});
|
||||
}
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
deferred.reject();
|
||||
});
|
||||
|
@ -692,7 +663,7 @@
|
|||
self.getUrl("Users/" + userId + "/Items/" + itemId) :
|
||||
self.getUrl("Items/" + itemId);
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -706,7 +677,7 @@
|
|||
|
||||
var url = self.getUrl("Users/" + userId + "/Items/Root");
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
self.getNotificationSummary = function (userId) {
|
||||
|
@ -770,7 +741,8 @@
|
|||
return self.ajax({
|
||||
type: "POST",
|
||||
url: url
|
||||
}).always(done);
|
||||
|
||||
}).then(done, done);
|
||||
}
|
||||
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
|
@ -1215,7 +1187,7 @@
|
|||
|
||||
var url = self.getUrl("System/Info");
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1225,7 +1197,7 @@
|
|||
|
||||
var url = self.getUrl("System/Info/Public");
|
||||
|
||||
return self.fetchJSON(url, false);
|
||||
return self.getJSON(url, false);
|
||||
};
|
||||
|
||||
self.getInstantMixFromItem = function (itemId, options) {
|
||||
|
@ -1249,7 +1221,7 @@
|
|||
client: app
|
||||
});
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
self.updateDisplayPreferences = function (id, obj, userId, app) {
|
||||
|
@ -1543,7 +1515,7 @@
|
|||
|
||||
var url = self.getUrl("System/Configuration");
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -2027,11 +1999,11 @@
|
|||
url: url,
|
||||
data: data,
|
||||
contentType: "image/" + file.name.substring(file.name.lastIndexOf('.') + 1)
|
||||
}).done(function (result) {
|
||||
}).then(function (result) {
|
||||
|
||||
deferred.resolveWith(null, [result]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.reject();
|
||||
});
|
||||
};
|
||||
|
@ -2087,11 +2059,11 @@
|
|||
url: url,
|
||||
data: data,
|
||||
contentType: "image/" + file.name.substring(file.name.lastIndexOf('.') + 1)
|
||||
}).done(function (result) {
|
||||
}).then(function (result) {
|
||||
|
||||
deferred.resolveWith(null, [result]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.reject();
|
||||
});
|
||||
};
|
||||
|
@ -2185,7 +2157,7 @@
|
|||
|
||||
var url = self.getUrl("Genres/" + self.encodeName(name), options);
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
self.getMusicGenre = function (name, userId) {
|
||||
|
@ -2202,7 +2174,7 @@
|
|||
|
||||
var url = self.getUrl("MusicGenres/" + self.encodeName(name), options);
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
self.getGameGenre = function (name, userId) {
|
||||
|
@ -2219,7 +2191,7 @@
|
|||
|
||||
var url = self.getUrl("GameGenres/" + self.encodeName(name), options);
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -2239,7 +2211,7 @@
|
|||
|
||||
var url = self.getUrl("Artists/" + self.encodeName(name), options);
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -2485,7 +2457,7 @@
|
|||
dataType: "json",
|
||||
contentType: "application/json"
|
||||
|
||||
}).done(function (result) {
|
||||
}).then(function (result) {
|
||||
|
||||
if (self.onAuthenticated) {
|
||||
self.onAuthenticated(self, result);
|
||||
|
@ -2493,7 +2465,7 @@
|
|||
|
||||
deferred.resolveWith(null, [result]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
deferred.reject();
|
||||
});
|
||||
|
@ -2528,11 +2500,11 @@
|
|||
currentPassword: CryptoJS.SHA1(currentPassword).toString(),
|
||||
newPassword: CryptoJS.SHA1(newPassword).toString()
|
||||
}
|
||||
}).done(function (result) {
|
||||
}).then(function (result) {
|
||||
|
||||
deferred.resolveWith(null, [result]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
deferred.reject();
|
||||
});
|
||||
|
@ -2565,11 +2537,11 @@
|
|||
data: {
|
||||
newPassword: CryptoJS.SHA1(newPassword).toString()
|
||||
}
|
||||
}).done(function (result) {
|
||||
}).then(function (result) {
|
||||
|
||||
deferred.resolveWith(null, [result]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
deferred.reject();
|
||||
});
|
||||
|
@ -2862,7 +2834,7 @@
|
|||
url = self.getUrl("Items", options);
|
||||
}
|
||||
|
||||
return self.fetchJSON(url);
|
||||
return self.getJSON(url);
|
||||
};
|
||||
|
||||
self.getChannels = function (query) {
|
||||
|
|
|
@ -83,13 +83,63 @@
|
|||
return baseUrl + "/emby/" + handler;
|
||||
}
|
||||
|
||||
function getFetchPromise(request) {
|
||||
|
||||
var headers = request.headers || {};
|
||||
|
||||
if (request.dataType == 'json') {
|
||||
headers.accept = 'application/json';
|
||||
}
|
||||
|
||||
var fetchRequest = {
|
||||
headers: headers,
|
||||
method: request.type
|
||||
};
|
||||
|
||||
if (request.data) {
|
||||
|
||||
if (typeof request.data === 'string') {
|
||||
fetchRequest.body = request.data;
|
||||
}
|
||||
}
|
||||
|
||||
if (request.contentType) {
|
||||
|
||||
headers['Content-Type'] = request.contentType;
|
||||
}
|
||||
|
||||
return fetch(request.url, fetchRequest);
|
||||
}
|
||||
|
||||
function ajax(request) {
|
||||
|
||||
return getFetchPromise(request).then(function (response) {
|
||||
|
||||
if (response.status < 400) {
|
||||
|
||||
if (request.dataType == 'json' || request.headers.accept == 'application/json') {
|
||||
return response.json();
|
||||
} else {
|
||||
return response;
|
||||
}
|
||||
} else {
|
||||
onFetchFail(request.url, response);
|
||||
return Promise.reject(response);
|
||||
}
|
||||
|
||||
}, function () {
|
||||
onFetchFail(request.url, {});
|
||||
return Promise.reject({});
|
||||
});
|
||||
}
|
||||
|
||||
function tryConnect(url, timeout) {
|
||||
|
||||
url = getEmbyServerUrl(url, "system/info/public");
|
||||
|
||||
logger.log('tryConnect url: ' + url);
|
||||
|
||||
return HttpClient.send({
|
||||
return ajax({
|
||||
|
||||
type: "GET",
|
||||
url: url,
|
||||
|
@ -360,12 +410,12 @@
|
|||
|
||||
connectUser = null;
|
||||
|
||||
getConnectUser(credentials.ConnectUserId, credentials.ConnectAccessToken).done(function (user) {
|
||||
getConnectUser(credentials.ConnectUserId, credentials.ConnectAccessToken).then(function (user) {
|
||||
|
||||
onConnectUserSignIn(user);
|
||||
deferred.resolveWith(null, [[]]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.resolveWith(null, [[]]);
|
||||
});
|
||||
|
||||
|
@ -387,7 +437,7 @@
|
|||
|
||||
var url = "https://connect.emby.media/service/user?id=" + userId;
|
||||
|
||||
return HttpClient.send({
|
||||
return ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
|
@ -412,7 +462,7 @@
|
|||
|
||||
url = getEmbyServerUrl(url, "Connect/Exchange?format=json&ConnectUserId=" + credentials.ConnectUserId);
|
||||
|
||||
return HttpClient.send({
|
||||
return ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
|
@ -420,15 +470,18 @@
|
|||
"X-MediaBrowser-Token": server.ExchangeToken
|
||||
}
|
||||
|
||||
}).done(function (auth) {
|
||||
}).then(function (auth) {
|
||||
|
||||
server.UserId = auth.LocalUserId;
|
||||
server.AccessToken = auth.AccessToken;
|
||||
return auth;
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
server.UserId = null;
|
||||
server.AccessToken = null;
|
||||
return Promise.reject();
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -438,7 +491,7 @@
|
|||
|
||||
var url = MediaBrowser.ServerInfo.getServerAddress(server, connectionMode);
|
||||
|
||||
HttpClient.send({
|
||||
ajax({
|
||||
|
||||
type: "GET",
|
||||
url: getEmbyServerUrl(url, "System/Info"),
|
||||
|
@ -447,13 +500,13 @@
|
|||
"X-MediaBrowser-Token": server.AccessToken
|
||||
}
|
||||
|
||||
}).done(function (systemInfo) {
|
||||
}).then(function (systemInfo) {
|
||||
|
||||
updateServerInfo(server, systemInfo);
|
||||
|
||||
if (server.UserId) {
|
||||
|
||||
HttpClient.send({
|
||||
ajax({
|
||||
|
||||
type: "GET",
|
||||
url: getEmbyServerUrl(url, "users/" + server.UserId),
|
||||
|
@ -462,12 +515,12 @@
|
|||
"X-MediaBrowser-Token": server.AccessToken
|
||||
}
|
||||
|
||||
}).done(function (user) {
|
||||
}).then(function (user) {
|
||||
|
||||
onLocalUserSignIn(user);
|
||||
deferred.resolveWith(null, [[]]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
server.UserId = null;
|
||||
server.AccessToken = null;
|
||||
|
@ -475,7 +528,7 @@
|
|||
});
|
||||
}
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
server.UserId = null;
|
||||
server.AccessToken = null;
|
||||
|
@ -520,7 +573,7 @@
|
|||
|
||||
var localUser;
|
||||
|
||||
function onLocalUserDone() {
|
||||
function onLocalUserDone(e) {
|
||||
|
||||
var image = getImageUrl(localUser);
|
||||
|
||||
|
@ -528,7 +581,7 @@
|
|||
{
|
||||
localUser: localUser,
|
||||
name: connectUser ? connectUser.Name : (localUser ? localUser.Name : null),
|
||||
canManageServer: localUser && localUser.Policy.IsAdministrator,
|
||||
canManageServer: localUser ? localUser.Policy.IsAdministrator : false,
|
||||
imageUrl: image.url,
|
||||
supportsImageParams: image.supportsParams
|
||||
}]);
|
||||
|
@ -537,9 +590,11 @@
|
|||
function onEnsureConnectUserDone() {
|
||||
|
||||
if (apiClient && apiClient.getCurrentUserId()) {
|
||||
apiClient.getCurrentUser().done(function (u) {
|
||||
apiClient.getCurrentUser().then(function (u) {
|
||||
localUser = u;
|
||||
}).always(onLocalUserDone);
|
||||
onLocalUserDone();
|
||||
|
||||
}, onLocalUserDone);
|
||||
} else {
|
||||
onLocalUserDone();
|
||||
}
|
||||
|
@ -548,7 +603,7 @@
|
|||
var credentials = credentialProvider.credentials();
|
||||
|
||||
if (credentials.ConnectUserId && credentials.ConnectAccessToken && !(apiClient && apiClient.getCurrentUserId())) {
|
||||
ensureConnectUser(credentials).always(onEnsureConnectUserDone);
|
||||
ensureConnectUser(credentials).then(onEnsureConnectUserDone, onEnsureConnectUserDone);
|
||||
} else {
|
||||
onEnsureConnectUserDone();
|
||||
}
|
||||
|
@ -579,7 +634,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
return DeferredBuilder.when(promises).done(function () {
|
||||
return DeferredBuilder.when(promises).then(function () {
|
||||
|
||||
var credentials = credentialProvider.credentials();
|
||||
|
||||
|
@ -624,7 +679,10 @@
|
|||
serverId: serverInfo.Id
|
||||
};
|
||||
|
||||
return apiClient.logout().always(function () {
|
||||
return apiClient.logout().then(function () {
|
||||
|
||||
Events.trigger(self, 'localusersignedout', [logoutInfo]);
|
||||
}, function () {
|
||||
|
||||
Events.trigger(self, 'localusersignedout', [logoutInfo]);
|
||||
});
|
||||
|
@ -643,7 +701,7 @@
|
|||
|
||||
var url = "https://connect.emby.media/service/servers?userId=" + credentials.ConnectUserId;
|
||||
|
||||
HttpClient.send({
|
||||
ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
|
@ -652,7 +710,7 @@
|
|||
"X-Connect-UserToken": credentials.ConnectAccessToken
|
||||
}
|
||||
|
||||
}).done(function (servers) {
|
||||
}).then(function (servers) {
|
||||
|
||||
servers = servers.map(function (i) {
|
||||
return {
|
||||
|
@ -668,7 +726,7 @@
|
|||
|
||||
deferred.resolveWith(null, [servers]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.resolveWith(null, [[]]);
|
||||
|
||||
});
|
||||
|
@ -701,9 +759,9 @@
|
|||
var connectServersPromise = getConnectServers(credentials);
|
||||
var findServersPromise = findServers();
|
||||
|
||||
connectServersPromise.done(function (connectServers) {
|
||||
connectServersPromise.then(function (connectServers) {
|
||||
|
||||
findServersPromise.done(function (foundServers) {
|
||||
findServersPromise.then(function (foundServers) {
|
||||
|
||||
var servers = credentials.Servers.slice(0);
|
||||
mergeServers(servers, foundServers);
|
||||
|
@ -748,7 +806,7 @@
|
|||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
require(['serverdiscovery'], function () {
|
||||
ServerDiscovery.findServers(1000).done(function (foundServers) {
|
||||
ServerDiscovery.findServers(1000).then(function (foundServers) {
|
||||
|
||||
var servers = foundServers.map(function (foundServer) {
|
||||
|
||||
|
@ -798,9 +856,9 @@
|
|||
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
self.getAvailableServers().done(function (servers) {
|
||||
self.getAvailableServers().then(function (servers) {
|
||||
|
||||
self.connectToServers(servers).done(function (result) {
|
||||
self.connectToServers(servers).then(function (result) {
|
||||
|
||||
deferred.resolveWith(null, [result]);
|
||||
|
||||
|
@ -823,7 +881,7 @@
|
|||
|
||||
if (servers.length == 1) {
|
||||
|
||||
self.connectToServer(servers[0]).done(function (result) {
|
||||
self.connectToServer(servers[0]).then(function (result) {
|
||||
|
||||
if (result.State == MediaBrowser.ConnectionState.Unavailable) {
|
||||
|
||||
|
@ -842,7 +900,7 @@
|
|||
var firstServer = servers.length ? servers[0] : null;
|
||||
// See if we have any saved credentials and can auto sign in
|
||||
if (firstServer) {
|
||||
self.connectToServer(firstServer).done(function (result) {
|
||||
self.connectToServer(firstServer).then(function (result) {
|
||||
|
||||
if (result.State == MediaBrowser.ConnectionState.SignedIn) {
|
||||
|
||||
|
@ -948,12 +1006,12 @@
|
|||
|
||||
logger.log('testing connection mode ' + mode + ' with server ' + server.Name);
|
||||
|
||||
tryConnect(address, timeout).done(function (result) {
|
||||
tryConnect(address, timeout).then(function (result) {
|
||||
|
||||
logger.log('calling onSuccessfulConnection with connection mode ' + mode + ' with server ' + server.Name);
|
||||
onSuccessfulConnection(server, result, mode, options, deferred);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
logger.log('test failed for connection mode ' + mode + ' with server ' + server.Name);
|
||||
|
||||
|
@ -977,10 +1035,14 @@
|
|||
var credentials = credentialProvider.credentials();
|
||||
if (credentials.ConnectAccessToken) {
|
||||
|
||||
ensureConnectUser(credentials).done(function () {
|
||||
ensureConnectUser(credentials).then(function () {
|
||||
|
||||
if (server.ExchangeToken) {
|
||||
addAuthenticationInfoFromConnect(server, connectionMode, credentials).always(function () {
|
||||
addAuthenticationInfoFromConnect(server, connectionMode, credentials).then(function () {
|
||||
|
||||
afterConnectValidated(server, credentials, systemInfo, connectionMode, true, options, deferred);
|
||||
|
||||
}, function () {
|
||||
|
||||
afterConnectValidated(server, credentials, systemInfo, connectionMode, true, options, deferred);
|
||||
});
|
||||
|
@ -1000,7 +1062,7 @@
|
|||
|
||||
if (verifyLocalAuthentication && server.AccessToken) {
|
||||
|
||||
validateAuthentication(server, connectionMode).done(function () {
|
||||
validateAuthentication(server, connectionMode).then(function () {
|
||||
|
||||
afterConnectValidated(server, credentials, systemInfo, connectionMode, false, options, deferred);
|
||||
});
|
||||
|
@ -1075,7 +1137,7 @@
|
|||
resolveWithFailure(deferred);
|
||||
}
|
||||
|
||||
tryConnect(address, defaultTimeout).done(function (publicInfo) {
|
||||
tryConnect(address, defaultTimeout).then(function (publicInfo) {
|
||||
|
||||
logger.log('connectToAddress ' + address + ' succeeded');
|
||||
|
||||
|
@ -1085,13 +1147,13 @@
|
|||
};
|
||||
updateServerInfo(server, publicInfo);
|
||||
|
||||
self.connectToServer(server).done(function (result) {
|
||||
self.connectToServer(server).then(function (result) {
|
||||
|
||||
deferred.resolveWith(null, [result]);
|
||||
|
||||
}).fail(onFail);
|
||||
}, onFail);
|
||||
|
||||
}).fail(onFail);
|
||||
}, onFail);
|
||||
|
||||
return deferred.promise();
|
||||
};
|
||||
|
@ -1113,7 +1175,7 @@
|
|||
|
||||
var md5 = self.getConnectPasswordHash(password);
|
||||
|
||||
HttpClient.send({
|
||||
ajax({
|
||||
type: "POST",
|
||||
url: "https://connect.emby.media/service/user/authenticate",
|
||||
data: {
|
||||
|
@ -1126,7 +1188,7 @@
|
|||
"X-Application": appName + "/" + appVersion
|
||||
}
|
||||
|
||||
}).done(function (result) {
|
||||
}).then(function (result) {
|
||||
|
||||
var credentials = credentialProvider.credentials();
|
||||
|
||||
|
@ -1139,7 +1201,7 @@
|
|||
|
||||
deferred.resolveWith(null, [result]);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.reject();
|
||||
});
|
||||
});
|
||||
|
@ -1176,7 +1238,7 @@
|
|||
|
||||
var md5 = self.getConnectPasswordHash(password);
|
||||
|
||||
HttpClient.send({
|
||||
ajax({
|
||||
type: "POST",
|
||||
url: "https://connect.emby.media/service/register",
|
||||
data: {
|
||||
|
@ -1191,11 +1253,11 @@
|
|||
"X-CONNECT-TOKEN": "CONNECT-REGISTER"
|
||||
}
|
||||
|
||||
}).done(function (result) {
|
||||
}).then(function (result) {
|
||||
|
||||
deferred.resolve(null, []);
|
||||
|
||||
}).fail(function (e) {
|
||||
}, function (e) {
|
||||
|
||||
try {
|
||||
|
||||
|
@ -1248,7 +1310,7 @@
|
|||
|
||||
var url = "https://connect.emby.media/service/servers?userId=" + self.connectUserId() + "&status=Waiting";
|
||||
|
||||
return HttpClient.send({
|
||||
return ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
|
@ -1299,7 +1361,7 @@
|
|||
|
||||
var url = "https://connect.emby.media/service/serverAuthorizations?serverId=" + server.ConnectServerId + "&userId=" + connectUserId;
|
||||
|
||||
HttpClient.send({
|
||||
ajax({
|
||||
type: "DELETE",
|
||||
url: url,
|
||||
headers: {
|
||||
|
@ -1307,7 +1369,7 @@
|
|||
"X-Application": appName + "/" + appVersion
|
||||
}
|
||||
|
||||
}).always(onDone);
|
||||
}).then(onDone, onDone);
|
||||
|
||||
return deferred.promise();
|
||||
};
|
||||
|
@ -1328,14 +1390,12 @@
|
|||
|
||||
var url = "https://connect.emby.media/service/serverAuthorizations?serverId=" + serverId + "&userId=" + self.connectUserId();
|
||||
|
||||
return HttpClient.send({
|
||||
type: "DELETE",
|
||||
url: url,
|
||||
return fetch(url, {
|
||||
method: "DELETE",
|
||||
headers: {
|
||||
"X-Connect-UserToken": connectToken,
|
||||
"X-Application": appName + "/" + appVersion
|
||||
}
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -1355,7 +1415,7 @@
|
|||
|
||||
var url = "https://connect.emby.media/service/ServerAuthorizations/accept?serverId=" + serverId + "&userId=" + self.connectUserId();
|
||||
|
||||
return HttpClient.send({
|
||||
return ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
headers: {
|
||||
|
@ -1370,7 +1430,7 @@
|
|||
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
self.getAvailableServers().done(function (servers) {
|
||||
self.getAvailableServers().then(function (servers) {
|
||||
|
||||
var matchedServers = servers.filter(function (s) {
|
||||
return stringEqualsIgnoreCase(s.Id, apiClient.serverInfo().Id);
|
||||
|
@ -1385,7 +1445,7 @@
|
|||
|
||||
if (!match.DateLastLocalConnection) {
|
||||
|
||||
ApiClient.fetchJSON(ApiClient.getUrl('System/Endpoint')).then(function (info) {
|
||||
ApiClient.getJSON(ApiClient.getUrl('System/Endpoint')).then(function (info) {
|
||||
|
||||
if (info.IsInNetwork) {
|
||||
|
||||
|
@ -1405,7 +1465,7 @@
|
|||
|
||||
onLocalCheckSuccess(feature, apiClient, deferred);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
deferred.reject();
|
||||
});
|
||||
|
@ -1431,10 +1491,10 @@
|
|||
|
||||
function onLocalCheckSuccess(feature, apiClient, deferred) {
|
||||
|
||||
apiClient.getRegistrationInfo(feature).done(function (result) {
|
||||
apiClient.getRegistrationInfo(feature).then(function (result) {
|
||||
|
||||
deferred.resolveWith(null, [result]);
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
deferred.reject();
|
||||
});
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
LocalAssetManager.getCameraPhotos().done(function (photos) {
|
||||
LocalAssetManager.getCameraPhotos().then(function (photos) {
|
||||
|
||||
if (!photos.length) {
|
||||
deferred.resolve();
|
||||
|
@ -17,7 +17,7 @@
|
|||
|
||||
var apiClient = connectionManager.getApiClient(server.Id);
|
||||
|
||||
apiClient.getContentUploadHistory().done(function (uploadHistory) {
|
||||
apiClient.getContentUploadHistory().then(function (uploadHistory) {
|
||||
|
||||
photos = getFilesToUpload(photos, uploadHistory);
|
||||
|
||||
|
@ -25,11 +25,11 @@
|
|||
|
||||
uploadNext(photos, 0, server, apiClient, deferred);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.reject();
|
||||
});
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.reject();
|
||||
});
|
||||
|
||||
|
@ -67,10 +67,10 @@
|
|||
return;
|
||||
}
|
||||
|
||||
uploadFile(files[index], apiClient).done(function () {
|
||||
uploadFile(files[index], apiClient).then(function () {
|
||||
|
||||
uploadNext(files, index + 1, server, apiClient, deferred);
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
uploadNext(files, index + 1, server, apiClient, deferred);
|
||||
});
|
||||
}
|
||||
|
@ -93,12 +93,12 @@
|
|||
|
||||
Logger.log('Uploading file to ' + url);
|
||||
|
||||
new MediaBrowser.FileUpload().upload(file, name, url).done(function () {
|
||||
new MediaBrowser.FileUpload().upload(file, name, url).then(function () {
|
||||
|
||||
Logger.log('File upload succeeded');
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
Logger.log('File upload failed');
|
||||
deferred.reject();
|
||||
|
|
|
@ -8,26 +8,26 @@
|
|||
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
reportOfflineActions(apiClient, serverInfo).done(function () {
|
||||
reportOfflineActions(apiClient, serverInfo).then(function () {
|
||||
|
||||
// Do the first data sync
|
||||
syncData(apiClient, serverInfo, false).done(function () {
|
||||
syncData(apiClient, serverInfo, false).then(function () {
|
||||
|
||||
// Download new content
|
||||
getNewMedia(apiClient, serverInfo, options).done(function () {
|
||||
getNewMedia(apiClient, serverInfo, options).then(function () {
|
||||
|
||||
// Do the second data sync
|
||||
syncData(apiClient, serverInfo, false).done(function () {
|
||||
syncData(apiClient, serverInfo, false).then(function () {
|
||||
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
return deferred.promise();
|
||||
};
|
||||
|
@ -40,24 +40,24 @@
|
|||
|
||||
require(['localassetmanager'], function () {
|
||||
|
||||
LocalAssetManager.getOfflineActions(serverInfo.Id).done(function (actions) {
|
||||
LocalAssetManager.getOfflineActions(serverInfo.Id).then(function (actions) {
|
||||
|
||||
if (!actions.length) {
|
||||
deferred.resolve();
|
||||
return;
|
||||
}
|
||||
|
||||
apiClient.reportOfflineActions(actions).done(function () {
|
||||
apiClient.reportOfflineActions(actions).then(function () {
|
||||
|
||||
LocalAssetManager.deleteOfflineActions(actions).done(function () {
|
||||
LocalAssetManager.deleteOfflineActions(actions).then(function () {
|
||||
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
});
|
||||
|
||||
return deferred.promise();
|
||||
|
@ -71,7 +71,7 @@
|
|||
|
||||
require(['localassetmanager'], function () {
|
||||
|
||||
LocalAssetManager.getServerItemIds(serverInfo.Id).done(function (localIds) {
|
||||
LocalAssetManager.getServerItemIds(serverInfo.Id).then(function (localIds) {
|
||||
|
||||
var request = {
|
||||
TargetId: apiClient.deviceId(),
|
||||
|
@ -79,13 +79,13 @@
|
|||
OfflineUserIds: (serverInfo.Users || []).map(function (u) { return u.Id; })
|
||||
};
|
||||
|
||||
apiClient.syncData(request).done(function (result) {
|
||||
apiClient.syncData(request).then(function (result) {
|
||||
|
||||
afterSyncData(apiClient, serverInfo, syncUserItemAccess, result, deferred);
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
});
|
||||
|
||||
return deferred.promise();
|
||||
|
@ -95,20 +95,20 @@
|
|||
|
||||
Logger.log('Begin afterSyncData');
|
||||
|
||||
removeLocalItems(syncDataResult, serverInfo.Id).done(function (result) {
|
||||
removeLocalItems(syncDataResult, serverInfo.Id).then(function (result) {
|
||||
|
||||
if (enableSyncUserItemAccess) {
|
||||
syncUserItemAccess(syncDataResult, serverInfo.Id).done(function () {
|
||||
syncUserItemAccess(syncDataResult, serverInfo.Id).then(function () {
|
||||
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
}
|
||||
else {
|
||||
deferred.resolve();
|
||||
}
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
deferred.resolve();
|
||||
}
|
||||
|
@ -134,10 +134,10 @@
|
|||
return;
|
||||
}
|
||||
|
||||
removeLocalItem(itemIdsToRemove[index], serverId).done(function () {
|
||||
removeLocalItem(itemIdsToRemove[index], serverId).then(function () {
|
||||
|
||||
removeNextLocalItem(itemIdsToRemove, index + 1, serverId, deferred);
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
removeNextLocalItem(itemIdsToRemove, index + 1, serverId, deferred);
|
||||
});
|
||||
}
|
||||
|
@ -150,11 +150,11 @@
|
|||
|
||||
require(['localassetmanager'], function () {
|
||||
|
||||
LocalAssetManager.removeLocalItem(itemId, serverId).done(function (localIds) {
|
||||
LocalAssetManager.removeLocalItem(itemId, serverId).then(function (localIds) {
|
||||
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
});
|
||||
|
||||
return deferred.promise();
|
||||
|
@ -166,11 +166,11 @@
|
|||
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
apiClient.getReadySyncItems(apiClient.deviceId()).done(function (jobItems) {
|
||||
apiClient.getReadySyncItems(apiClient.deviceId()).then(function (jobItems) {
|
||||
|
||||
getNextNewItem(jobItems, 0, apiClient, serverInfo, options, deferred);
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
return deferred.promise();
|
||||
}
|
||||
|
@ -194,7 +194,7 @@
|
|||
}
|
||||
};
|
||||
|
||||
getNewItem(jobItems[index], apiClient, serverInfo, options).done(goNext).fail(goNext);
|
||||
getNewItem(jobItems[index], apiClient, serverInfo, options).then(goNext, goNext);
|
||||
}
|
||||
|
||||
function getNewItem(jobItem, apiClient, serverInfo, options) {
|
||||
|
@ -206,32 +206,32 @@
|
|||
require(['localassetmanager'], function () {
|
||||
|
||||
var libraryItem = jobItem.Item;
|
||||
LocalAssetManager.createLocalItem(libraryItem, serverInfo, jobItem.OriginalFileName).done(function (localItem) {
|
||||
LocalAssetManager.createLocalItem(libraryItem, serverInfo, jobItem.OriginalFileName).then(function (localItem) {
|
||||
|
||||
downloadMedia(apiClient, jobItem, localItem, options).done(function (isQueued) {
|
||||
downloadMedia(apiClient, jobItem, localItem, options).then(function (isQueued) {
|
||||
|
||||
if (isQueued) {
|
||||
deferred.resolve();
|
||||
return;
|
||||
}
|
||||
|
||||
getImages(apiClient, jobItem, localItem).done(function () {
|
||||
getImages(apiClient, jobItem, localItem).then(function () {
|
||||
|
||||
getSubtitles(apiClient, jobItem, localItem).done(function () {
|
||||
getSubtitles(apiClient, jobItem, localItem).then(function () {
|
||||
|
||||
apiClient.reportSyncJobItemTransferred(jobItem.SyncJobItemId).done(function () {
|
||||
apiClient.reportSyncJobItemTransferred(jobItem.SyncJobItemId).then(function () {
|
||||
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
});
|
||||
|
||||
return deferred.promise();
|
||||
|
@ -254,19 +254,19 @@
|
|||
|
||||
options = options || {};
|
||||
|
||||
LocalAssetManager.downloadFile(url, localPath, options.enableBackgroundTransfer, options.enableNewDownloads).done(function (path, isQueued) {
|
||||
LocalAssetManager.downloadFile(url, localPath, options.enableBackgroundTransfer, options.enableNewDownloads).then(function (path, isQueued) {
|
||||
|
||||
if (isQueued) {
|
||||
deferred.resolveWith(null, [true]);
|
||||
return;
|
||||
}
|
||||
LocalAssetManager.addOrUpdateLocalItem(localItem).done(function () {
|
||||
LocalAssetManager.addOrUpdateLocalItem(localItem).then(function () {
|
||||
|
||||
deferred.resolveWith(null, [false]);
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
});
|
||||
|
||||
|
@ -334,7 +334,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
downloadImage(apiClient, serverId, itemId, imageTag, imageType).done(function () {
|
||||
downloadImage(apiClient, serverId, itemId, imageTag, imageType).then(function () {
|
||||
|
||||
// For the sake of simplicity, limit to one image
|
||||
deferred.resolve();
|
||||
|
@ -342,7 +342,7 @@
|
|||
|
||||
getNextImage(index + 1, apiClient, localItem, deferred);
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
}
|
||||
|
||||
function downloadImage(apiClient, serverId, itemId, imageTag, imageType) {
|
||||
|
@ -352,7 +352,7 @@
|
|||
|
||||
require(['localassetmanager'], function () {
|
||||
|
||||
LocalAssetManager.hasImage(serverId, itemId, imageTag).done(function (hasImage) {
|
||||
LocalAssetManager.hasImage(serverId, itemId, imageTag).then(function (hasImage) {
|
||||
|
||||
if (hasImage) {
|
||||
deferred.resolve();
|
||||
|
@ -365,11 +365,11 @@
|
|||
api_key: apiClient.accessToken()
|
||||
});
|
||||
|
||||
LocalAssetManager.downloadImage(imageUrl, serverId, itemId, imageTag).done(function () {
|
||||
LocalAssetManager.downloadImage(imageUrl, serverId, itemId, imageTag).then(function () {
|
||||
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
});
|
||||
});
|
||||
|
@ -412,11 +412,11 @@
|
|||
return;
|
||||
}
|
||||
|
||||
getItemSubtitle(file, apiClient, jobItem, localItem, mediaSource).done(function () {
|
||||
getItemSubtitle(file, apiClient, jobItem, localItem, mediaSource).then(function () {
|
||||
|
||||
getNextSubtitle(files, index + 1, apiClient, jobItem, localItem, mediaSource, deferred);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
getNextSubtitle(files, index + 1, apiClient, jobItem, localItem, mediaSource, deferred);
|
||||
});
|
||||
}
|
||||
|
@ -445,14 +445,14 @@
|
|||
|
||||
require(['localassetmanager'], function () {
|
||||
|
||||
LocalAssetManager.downloadSubtitles(url, localItem, subtitleStream).done(function (subtitlePath) {
|
||||
LocalAssetManager.downloadSubtitles(url, localItem, subtitleStream).then(function (subtitlePath) {
|
||||
|
||||
subtitleStream.Path = subtitlePath;
|
||||
LocalAssetManager.addOrUpdateLocalItem(localItem).done(function () {
|
||||
LocalAssetManager.addOrUpdateLocalItem(localItem).then(function () {
|
||||
deferred.resolve();
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
});
|
||||
|
||||
return deferred.promise();
|
||||
|
@ -483,10 +483,10 @@
|
|||
return;
|
||||
}
|
||||
|
||||
syncUserAccessForItem(itemIds[index], syncDataResult).done(function () {
|
||||
syncUserAccessForItem(itemIds[index], syncDataResult).then(function () {
|
||||
|
||||
syncNextUserAccessForItem(itemIds, index + 1, syncDataResult, serverId, deferred);
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
syncNextUserAccessForItem(itemIds, index + 1, syncDataResult, serverId, deferred);
|
||||
});
|
||||
}
|
||||
|
@ -498,7 +498,7 @@
|
|||
|
||||
require(['localassetmanager'], function () {
|
||||
|
||||
LocalAssetManager.getUserIdsWithAccess(itemId, serverId).done(function (savedUserIdsWithAccess) {
|
||||
LocalAssetManager.getUserIdsWithAccess(itemId, serverId).then(function (savedUserIdsWithAccess) {
|
||||
|
||||
var userIdsWithAccess = syncDataResult.ItemUserAccess[itemId];
|
||||
|
||||
|
@ -508,12 +508,12 @@
|
|||
}
|
||||
else {
|
||||
|
||||
LocalAssetManager.saveUserIdsWithAccess(itemId, serverId, userIdsWithAccess).done(function () {
|
||||
LocalAssetManager.saveUserIdsWithAccess(itemId, serverId, userIdsWithAccess).then(function () {
|
||||
deferred.resolve();
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
}
|
||||
|
||||
}).fail(getOnFail(deferred));
|
||||
}, getOnFail(deferred));
|
||||
});
|
||||
|
||||
return deferred.promise();
|
||||
|
|
|
@ -31,11 +31,11 @@
|
|||
|
||||
require(['serversync'], function () {
|
||||
|
||||
new MediaBrowser.ServerSync(connectionManager).sync(server, options).done(function () {
|
||||
new MediaBrowser.ServerSync(connectionManager).sync(server, options).then(function () {
|
||||
|
||||
syncNext(servers, index + 1, options, deferred);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
syncNext(servers, index + 1, options, deferred);
|
||||
});
|
||||
|
|
|
@ -24,10 +24,10 @@
|
|||
return;
|
||||
}
|
||||
|
||||
syncUser(users[index], apiClient).done(function () {
|
||||
syncUser(users[index], apiClient).then(function () {
|
||||
|
||||
syncNext(users, index + 1, deferred, apiClient, server);
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
syncNext(users, index + 1, deferred, apiClient, server);
|
||||
});
|
||||
}
|
||||
|
@ -36,26 +36,26 @@
|
|||
|
||||
var deferred = DeferredBuilder.Deferred();
|
||||
|
||||
apiClient.getOfflineUser(user.Id).done(function (result) {
|
||||
apiClient.getOfflineUser(user.Id).then(function (result) {
|
||||
|
||||
require(['localassetmanager'], function () {
|
||||
|
||||
LocalAssetManager.saveOfflineUser(result).done(function () {
|
||||
LocalAssetManager.saveOfflineUser(result).then(function () {
|
||||
deferred.resolve();
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.resolve();
|
||||
});
|
||||
});
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
// TODO: We should only delete if there's a 401 response
|
||||
|
||||
require(['localassetmanager'], function () {
|
||||
|
||||
LocalAssetManager.deleteOfflineUser(user.Id).done(function () {
|
||||
LocalAssetManager.deleteOfflineUser(user.Id).then(function () {
|
||||
deferred.resolve();
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
deferred.resolve();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
reportCapabilities: false
|
||||
};
|
||||
|
||||
connectionManager.connectToServer(server, connectionOptions).done(function (result) {
|
||||
connectionManager.connectToServer(server, connectionOptions).then(function (result) {
|
||||
|
||||
if (result.State == MediaBrowser.ConnectionState.SignedIn) {
|
||||
performSync(server, options, deferred);
|
||||
|
@ -30,7 +30,7 @@
|
|||
deferred.reject();
|
||||
}
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
Logger.log('Unable to connect to server id: ' + server.Id);
|
||||
deferred.reject();
|
||||
|
@ -62,13 +62,13 @@
|
|||
|
||||
require(['contentuploader'], function () {
|
||||
|
||||
new MediaBrowser.ContentUploader(connectionManager).uploadImages(server).done(function () {
|
||||
new MediaBrowser.ContentUploader(connectionManager).uploadImages(server).then(function () {
|
||||
|
||||
Logger.log("ContentUploaded succeeded to server: " + server.Id);
|
||||
|
||||
nextAction();
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
Logger.log("ContentUploaded failed to server: " + server.Id);
|
||||
|
||||
|
@ -88,13 +88,13 @@
|
|||
|
||||
var apiClient = connectionManager.getApiClient(server.Id);
|
||||
|
||||
new MediaBrowser.OfflineUserSync().sync(apiClient, server).done(function () {
|
||||
new MediaBrowser.OfflineUserSync().sync(apiClient, server).then(function () {
|
||||
|
||||
Logger.log("OfflineUserSync succeeded to server: " + server.Id);
|
||||
|
||||
syncMedia(server, options, deferred);
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
Logger.log("OfflineUserSync failed to server: " + server.Id);
|
||||
|
||||
|
@ -109,13 +109,13 @@
|
|||
|
||||
var apiClient = connectionManager.getApiClient(server.Id);
|
||||
|
||||
new MediaBrowser.MediaSync().sync(apiClient, server, options).done(function () {
|
||||
new MediaBrowser.MediaSync().sync(apiClient, server, options).then(function () {
|
||||
|
||||
Logger.log("MediaSync succeeded to server: " + server.Id);
|
||||
|
||||
deferred.resolve();
|
||||
|
||||
}).fail(function () {
|
||||
}, function () {
|
||||
|
||||
Logger.log("MediaSync failed to server: " + server.Id);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue