mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update promises
This commit is contained in:
parent
3e1fd2ec8a
commit
cc53792556
2 changed files with 264 additions and 313 deletions
|
@ -400,30 +400,29 @@
|
||||||
|
|
||||||
function ensureConnectUser(credentials) {
|
function ensureConnectUser(credentials) {
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
if (connectUser && connectUser.Id == credentials.ConnectUserId) {
|
if (connectUser && connectUser.Id == credentials.ConnectUserId) {
|
||||||
deferred.resolveWith(null, [[]]);
|
resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (credentials.ConnectUserId && credentials.ConnectAccessToken) {
|
else if (credentials.ConnectUserId && credentials.ConnectAccessToken) {
|
||||||
|
|
||||||
connectUser = null;
|
connectUser = null;
|
||||||
|
|
||||||
getConnectUser(credentials.ConnectUserId, credentials.ConnectAccessToken).then(function (user) {
|
getConnectUser(credentials.ConnectUserId, credentials.ConnectAccessToken).then(function (user) {
|
||||||
|
|
||||||
onConnectUserSignIn(user);
|
onConnectUserSignIn(user);
|
||||||
deferred.resolveWith(null, [[]]);
|
resolve();
|
||||||
|
|
||||||
}, function () {
|
}, function () {
|
||||||
deferred.resolveWith(null, [[]]);
|
resolve();
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
deferred.resolveWith(null, [[]]);
|
resolve();
|
||||||
}
|
}
|
||||||
|
});
|
||||||
return deferred.promise();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getConnectUser(userId, accessToken) {
|
function getConnectUser(userId, accessToken) {
|
||||||
|
@ -487,56 +486,54 @@
|
||||||
|
|
||||||
function validateAuthentication(server, connectionMode) {
|
function validateAuthentication(server, connectionMode) {
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
var url = MediaBrowser.ServerInfo.getServerAddress(server, connectionMode);
|
var url = MediaBrowser.ServerInfo.getServerAddress(server, connectionMode);
|
||||||
|
|
||||||
ajax({
|
ajax({
|
||||||
|
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: getEmbyServerUrl(url, "System/Info"),
|
url: getEmbyServerUrl(url, "System/Info"),
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
headers: {
|
headers: {
|
||||||
"X-MediaBrowser-Token": server.AccessToken
|
"X-MediaBrowser-Token": server.AccessToken
|
||||||
}
|
}
|
||||||
|
|
||||||
}).then(function (systemInfo) {
|
}).then(function (systemInfo) {
|
||||||
|
|
||||||
updateServerInfo(server, systemInfo);
|
updateServerInfo(server, systemInfo);
|
||||||
|
|
||||||
if (server.UserId) {
|
if (server.UserId) {
|
||||||
|
|
||||||
ajax({
|
ajax({
|
||||||
|
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: getEmbyServerUrl(url, "users/" + server.UserId),
|
url: getEmbyServerUrl(url, "users/" + server.UserId),
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
headers: {
|
headers: {
|
||||||
"X-MediaBrowser-Token": server.AccessToken
|
"X-MediaBrowser-Token": server.AccessToken
|
||||||
}
|
}
|
||||||
|
|
||||||
}).then(function (user) {
|
}).then(function (user) {
|
||||||
|
|
||||||
onLocalUserSignIn(user);
|
onLocalUserSignIn(user);
|
||||||
deferred.resolveWith(null, [[]]);
|
resolve();
|
||||||
|
|
||||||
}, function () {
|
}, function () {
|
||||||
|
|
||||||
server.UserId = null;
|
server.UserId = null;
|
||||||
server.AccessToken = null;
|
server.AccessToken = null;
|
||||||
deferred.resolveWith(null, [[]]);
|
resolve();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}, function () {
|
}, function () {
|
||||||
|
|
||||||
server.UserId = null;
|
|
||||||
server.AccessToken = null;
|
|
||||||
deferred.resolveWith(null, [[]]);
|
|
||||||
|
|
||||||
|
server.UserId = null;
|
||||||
|
server.AccessToken = null;
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getImageUrl(localUser) {
|
function getImageUrl(localUser) {
|
||||||
|
@ -569,46 +566,44 @@
|
||||||
|
|
||||||
self.user = function (apiClient) {
|
self.user = function (apiClient) {
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
var localUser;
|
var localUser;
|
||||||
|
|
||||||
function onLocalUserDone(e) {
|
function onLocalUserDone(e) {
|
||||||
|
|
||||||
var image = getImageUrl(localUser);
|
var image = getImageUrl(localUser);
|
||||||
|
|
||||||
deferred.resolveWith(null, [
|
resolve({
|
||||||
{
|
localUser: localUser,
|
||||||
localUser: localUser,
|
name: connectUser ? connectUser.Name : (localUser ? localUser.Name : null),
|
||||||
name: connectUser ? connectUser.Name : (localUser ? localUser.Name : null),
|
canManageServer: localUser ? localUser.Policy.IsAdministrator : false,
|
||||||
canManageServer: localUser ? localUser.Policy.IsAdministrator : false,
|
imageUrl: image.url,
|
||||||
imageUrl: image.url,
|
supportsImageParams: image.supportsParams
|
||||||
supportsImageParams: image.supportsParams
|
});
|
||||||
}]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function onEnsureConnectUserDone() {
|
|
||||||
|
|
||||||
if (apiClient && apiClient.getCurrentUserId()) {
|
|
||||||
apiClient.getCurrentUser().then(function (u) {
|
|
||||||
localUser = u;
|
|
||||||
onLocalUserDone();
|
|
||||||
|
|
||||||
}, onLocalUserDone);
|
|
||||||
} else {
|
|
||||||
onLocalUserDone();
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var credentials = credentialProvider.credentials();
|
function onEnsureConnectUserDone() {
|
||||||
|
|
||||||
if (credentials.ConnectUserId && credentials.ConnectAccessToken && !(apiClient && apiClient.getCurrentUserId())) {
|
if (apiClient && apiClient.getCurrentUserId()) {
|
||||||
ensureConnectUser(credentials).then(onEnsureConnectUserDone, onEnsureConnectUserDone);
|
apiClient.getCurrentUser().then(function (u) {
|
||||||
} else {
|
localUser = u;
|
||||||
onEnsureConnectUserDone();
|
onLocalUserDone();
|
||||||
}
|
|
||||||
|
|
||||||
return deferred.promise();
|
}, onLocalUserDone);
|
||||||
|
} else {
|
||||||
|
onLocalUserDone();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var credentials = credentialProvider.credentials();
|
||||||
|
|
||||||
|
if (credentials.ConnectUserId && credentials.ConnectAccessToken && !(apiClient && apiClient.getCurrentUserId())) {
|
||||||
|
ensureConnectUser(credentials).then(onEnsureConnectUserDone, onEnsureConnectUserDone);
|
||||||
|
} else {
|
||||||
|
onEnsureConnectUserDone();
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
self.isLoggedIntoConnect = function () {
|
self.isLoggedIntoConnect = function () {
|
||||||
|
@ -634,7 +629,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return DeferredBuilder.when(promises).then(function () {
|
return Promise.all(promises).then(function () {
|
||||||
|
|
||||||
var credentials = credentialProvider.credentials();
|
var credentials = credentialProvider.credentials();
|
||||||
|
|
||||||
|
@ -692,46 +687,45 @@
|
||||||
|
|
||||||
logger.log('Begin getConnectServers');
|
logger.log('Begin getConnectServers');
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
if (!credentials.ConnectAccessToken || !credentials.ConnectUserId) {
|
if (!credentials.ConnectAccessToken || !credentials.ConnectUserId) {
|
||||||
deferred.resolveWith(null, [[]]);
|
resolve([]);
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
var url = "https://connect.emby.media/service/servers?userId=" + credentials.ConnectUserId;
|
|
||||||
|
|
||||||
ajax({
|
|
||||||
type: "GET",
|
|
||||||
url: url,
|
|
||||||
dataType: "json",
|
|
||||||
headers: {
|
|
||||||
"X-Application": appName + "/" + appVersion,
|
|
||||||
"X-Connect-UserToken": credentials.ConnectAccessToken
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}).then(function (servers) {
|
var url = "https://connect.emby.media/service/servers?userId=" + credentials.ConnectUserId;
|
||||||
|
|
||||||
|
ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: url,
|
||||||
|
dataType: "json",
|
||||||
|
headers: {
|
||||||
|
"X-Application": appName + "/" + appVersion,
|
||||||
|
"X-Connect-UserToken": credentials.ConnectAccessToken
|
||||||
|
}
|
||||||
|
|
||||||
|
}).then(function (servers) {
|
||||||
|
|
||||||
|
servers = servers.map(function (i) {
|
||||||
|
return {
|
||||||
|
ExchangeToken: i.AccessKey,
|
||||||
|
ConnectServerId: i.Id,
|
||||||
|
Id: i.SystemId,
|
||||||
|
Name: i.Name,
|
||||||
|
RemoteAddress: i.Url,
|
||||||
|
LocalAddress: i.LocalAddress,
|
||||||
|
UserLinkType: (i.UserType || '').toLowerCase() == "guest" ? "Guest" : "LinkedUser"
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
resolve(servers);
|
||||||
|
|
||||||
|
}, function () {
|
||||||
|
resolve([]);
|
||||||
|
|
||||||
servers = servers.map(function (i) {
|
|
||||||
return {
|
|
||||||
ExchangeToken: i.AccessKey,
|
|
||||||
ConnectServerId: i.Id,
|
|
||||||
Id: i.SystemId,
|
|
||||||
Name: i.Name,
|
|
||||||
RemoteAddress: i.Url,
|
|
||||||
LocalAddress: i.LocalAddress,
|
|
||||||
UserLinkType: (i.UserType || '').toLowerCase() == "guest" ? "Guest" : "LinkedUser"
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
|
|
||||||
deferred.resolveWith(null, [servers]);
|
|
||||||
|
|
||||||
}, function () {
|
|
||||||
deferred.resolveWith(null, [[]]);
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getSavedServers = function () {
|
self.getSavedServers = function () {
|
||||||
|
@ -754,34 +748,27 @@
|
||||||
// Clone the array
|
// Clone the array
|
||||||
var credentials = credentialProvider.credentials();
|
var credentials = credentialProvider.credentials();
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return Promise.all([getConnectServers(credentials), findServers()]).then(function (responses) {
|
||||||
|
|
||||||
var connectServersPromise = getConnectServers(credentials);
|
var connectServers = responses[0];
|
||||||
var findServersPromise = findServers();
|
var foundServers = responses[1];
|
||||||
|
|
||||||
connectServersPromise.then(function (connectServers) {
|
var servers = credentials.Servers.slice(0);
|
||||||
|
mergeServers(servers, foundServers);
|
||||||
|
mergeServers(servers, connectServers);
|
||||||
|
|
||||||
findServersPromise.then(function (foundServers) {
|
servers = filterServers(servers, connectServers);
|
||||||
|
|
||||||
var servers = credentials.Servers.slice(0);
|
servers.sort(function (a, b) {
|
||||||
mergeServers(servers, foundServers);
|
return (b.DateLastAccessed || 0) - (a.DateLastAccessed || 0);
|
||||||
mergeServers(servers, connectServers);
|
|
||||||
|
|
||||||
servers = filterServers(servers, connectServers);
|
|
||||||
|
|
||||||
servers.sort(function (a, b) {
|
|
||||||
return (b.DateLastAccessed || 0) - (a.DateLastAccessed || 0);
|
|
||||||
});
|
|
||||||
|
|
||||||
credentials.Servers = servers;
|
|
||||||
|
|
||||||
credentialProvider.credentials(credentials);
|
|
||||||
|
|
||||||
deferred.resolveWith(null, [servers]);
|
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
return deferred.promise();
|
credentials.Servers = servers;
|
||||||
|
|
||||||
|
credentialProvider.credentials(credentials);
|
||||||
|
|
||||||
|
return servers;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function filterServers(servers, connectServers) {
|
function filterServers(servers, connectServers) {
|
||||||
|
@ -803,30 +790,30 @@
|
||||||
|
|
||||||
function findServers() {
|
function findServers() {
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
require(['serverdiscovery'], function () {
|
require(['serverdiscovery'], function () {
|
||||||
ServerDiscovery.findServers(1000).then(function (foundServers) {
|
ServerDiscovery.findServers(1000).then(function (foundServers) {
|
||||||
|
|
||||||
var servers = foundServers.map(function (foundServer) {
|
var servers = foundServers.map(function (foundServer) {
|
||||||
|
|
||||||
var info = {
|
var info = {
|
||||||
Id: foundServer.Id,
|
Id: foundServer.Id,
|
||||||
LocalAddress: foundServer.Address,
|
LocalAddress: foundServer.Address,
|
||||||
Name: foundServer.Name,
|
Name: foundServer.Name,
|
||||||
ManualAddress: convertEndpointAddressToManualAddress(foundServer),
|
ManualAddress: convertEndpointAddressToManualAddress(foundServer),
|
||||||
DateLastLocalConnection: new Date().getTime()
|
DateLastLocalConnection: new Date().getTime()
|
||||||
};
|
};
|
||||||
|
|
||||||
info.LastConnectionMode = info.ManualAddress ? MediaBrowser.ConnectionMode.Manual : MediaBrowser.ConnectionMode.Local;
|
info.LastConnectionMode = info.ManualAddress ? MediaBrowser.ConnectionMode.Manual : MediaBrowser.ConnectionMode.Local;
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
|
});
|
||||||
|
resolve(servers);
|
||||||
});
|
});
|
||||||
deferred.resolveWith(null, [servers]);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
return deferred.promise();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function convertEndpointAddressToManualAddress(info) {
|
function convertEndpointAddressToManualAddress(info) {
|
||||||
|
@ -854,18 +841,16 @@
|
||||||
|
|
||||||
logger.log('Begin connect');
|
logger.log('Begin connect');
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
self.getAvailableServers().then(function (servers) {
|
self.getAvailableServers().then(function (servers) {
|
||||||
|
|
||||||
self.connectToServers(servers).then(function (result) {
|
self.connectToServers(servers).then(function (result) {
|
||||||
|
|
||||||
deferred.resolveWith(null, [result]);
|
|
||||||
|
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getOffineResult = function () {
|
self.getOffineResult = function () {
|
||||||
|
@ -1160,117 +1145,109 @@
|
||||||
|
|
||||||
self.loginToConnect = function (username, password) {
|
self.loginToConnect = function (username, password) {
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
if (!username) {
|
if (!username) {
|
||||||
deferred.reject();
|
reject();
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
}
|
||||||
if (!password) {
|
if (!password) {
|
||||||
deferred.reject();
|
reject();
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
require(['connectservice'], function () {
|
require(['connectservice'], function () {
|
||||||
|
|
||||||
var md5 = self.getConnectPasswordHash(password);
|
var md5 = self.getConnectPasswordHash(password);
|
||||||
|
|
||||||
ajax({
|
ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "https://connect.emby.media/service/user/authenticate",
|
url: "https://connect.emby.media/service/user/authenticate",
|
||||||
data: {
|
data: {
|
||||||
nameOrEmail: username,
|
nameOrEmail: username,
|
||||||
password: md5
|
password: md5
|
||||||
},
|
},
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
|
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||||
headers: {
|
headers: {
|
||||||
"X-Application": appName + "/" + appVersion
|
"X-Application": appName + "/" + appVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
|
|
||||||
var credentials = credentialProvider.credentials();
|
var credentials = credentialProvider.credentials();
|
||||||
|
|
||||||
credentials.ConnectAccessToken = result.AccessToken;
|
credentials.ConnectAccessToken = result.AccessToken;
|
||||||
credentials.ConnectUserId = result.User.Id;
|
credentials.ConnectUserId = result.User.Id;
|
||||||
|
|
||||||
credentialProvider.credentials(credentials);
|
credentialProvider.credentials(credentials);
|
||||||
|
|
||||||
onConnectUserSignIn(result.User);
|
onConnectUserSignIn(result.User);
|
||||||
|
|
||||||
deferred.resolveWith(null, [result]);
|
resolve(result);
|
||||||
|
|
||||||
}, function () {
|
}, reject);
|
||||||
deferred.reject();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.signupForConnect = function (email, username, password, passwordConfirm) {
|
self.signupForConnect = function (email, username, password, passwordConfirm) {
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
if (!email) {
|
if (!email) {
|
||||||
deferred.rejectWith(null, [{ errorCode: 'invalidinput' }]);
|
reject({ errorCode: 'invalidinput' });
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
}
|
||||||
if (!username) {
|
if (!username) {
|
||||||
deferred.rejectWith(null, [{ errorCode: 'invalidinput' }]);
|
reject({ errorCode: 'invalidinput' });
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
}
|
||||||
if (!password) {
|
if (!password) {
|
||||||
deferred.rejectWith(null, [{ errorCode: 'invalidinput' }]);
|
reject({ errorCode: 'invalidinput' });
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
}
|
||||||
if (!passwordConfirm) {
|
if (!passwordConfirm) {
|
||||||
deferred.rejectWith(null, [{ errorCode: 'passwordmatch' }]);
|
reject({ errorCode: 'passwordmatch' });
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
}
|
||||||
if (password != passwordConfirm) {
|
if (password != passwordConfirm) {
|
||||||
deferred.rejectWith(null, [{ errorCode: 'passwordmatch' }]);
|
reject({ errorCode: 'passwordmatch' });
|
||||||
return deferred.promise();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
require(['connectservice'], function () {
|
require(['connectservice'], function () {
|
||||||
|
|
||||||
var md5 = self.getConnectPasswordHash(password);
|
var md5 = self.getConnectPasswordHash(password);
|
||||||
|
|
||||||
ajax({
|
ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "https://connect.emby.media/service/register",
|
url: "https://connect.emby.media/service/register",
|
||||||
data: {
|
data: {
|
||||||
email: email,
|
email: email,
|
||||||
userName: username,
|
userName: username,
|
||||||
password: md5
|
password: md5
|
||||||
},
|
},
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
|
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||||
headers: {
|
headers: {
|
||||||
"X-Application": appName + "/" + appVersion,
|
"X-Application": appName + "/" + appVersion,
|
||||||
"X-CONNECT-TOKEN": "CONNECT-REGISTER"
|
"X-CONNECT-TOKEN": "CONNECT-REGISTER"
|
||||||
}
|
}
|
||||||
|
|
||||||
}).then(function (result) {
|
}).then(resolve, function (e) {
|
||||||
|
|
||||||
deferred.resolve(null, []);
|
try {
|
||||||
|
|
||||||
}, function (e) {
|
var result = JSON.parse(e.responseText);
|
||||||
|
|
||||||
try {
|
reject({ errorCode: result.Status });
|
||||||
|
} catch (err) {
|
||||||
var result = JSON.parse(e.responseText);
|
reject({});
|
||||||
|
}
|
||||||
deferred.rejectWith(null, [{ errorCode: result.Status }]);
|
});
|
||||||
} catch (err) {
|
|
||||||
deferred.rejectWith(null, [{}]);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getConnectPasswordHash = function (password) {
|
self.getConnectPasswordHash = function (password) {
|
||||||
|
@ -1333,45 +1310,44 @@
|
||||||
});
|
});
|
||||||
server = server.length ? server[0] : null;
|
server = server.length ? server[0] : null;
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
function onDone() {
|
function onDone() {
|
||||||
var credentials = credentialProvider.credentials();
|
var credentials = credentialProvider.credentials();
|
||||||
|
|
||||||
credentials.Servers = credentials.Servers.filter(function (s) {
|
credentials.Servers = credentials.Servers.filter(function (s) {
|
||||||
return s.Id != serverId;
|
return s.Id != serverId;
|
||||||
});
|
});
|
||||||
|
|
||||||
credentialProvider.credentials(credentials);
|
credentialProvider.credentials(credentials);
|
||||||
deferred.resolve();
|
resolve();
|
||||||
}
|
|
||||||
|
|
||||||
if (!server.ConnectServerId) {
|
|
||||||
onDone();
|
|
||||||
return deferred.promise();
|
|
||||||
}
|
|
||||||
|
|
||||||
var connectToken = self.connectToken();
|
|
||||||
var connectUserId = self.connectUserId();
|
|
||||||
|
|
||||||
if (!connectToken || !connectUserId) {
|
|
||||||
onDone();
|
|
||||||
return deferred.promise();
|
|
||||||
}
|
|
||||||
|
|
||||||
var url = "https://connect.emby.media/service/serverAuthorizations?serverId=" + server.ConnectServerId + "&userId=" + connectUserId;
|
|
||||||
|
|
||||||
ajax({
|
|
||||||
type: "DELETE",
|
|
||||||
url: url,
|
|
||||||
headers: {
|
|
||||||
"X-Connect-UserToken": connectToken,
|
|
||||||
"X-Application": appName + "/" + appVersion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}).then(onDone, onDone);
|
if (!server.ConnectServerId) {
|
||||||
|
onDone();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
return deferred.promise();
|
var connectToken = self.connectToken();
|
||||||
|
var connectUserId = self.connectUserId();
|
||||||
|
|
||||||
|
if (!connectToken || !connectUserId) {
|
||||||
|
onDone();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var url = "https://connect.emby.media/service/serverAuthorizations?serverId=" + server.ConnectServerId + "&userId=" + connectUserId;
|
||||||
|
|
||||||
|
ajax({
|
||||||
|
type: "DELETE",
|
||||||
|
url: url,
|
||||||
|
headers: {
|
||||||
|
"X-Connect-UserToken": connectToken,
|
||||||
|
"X-Application": appName + "/" + appVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
}).then(onDone, onDone);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
self.rejectServer = function (serverId) {
|
self.rejectServer = function (serverId) {
|
||||||
|
@ -1428,49 +1404,36 @@
|
||||||
|
|
||||||
self.getRegistrationInfo = function (feature, apiClient) {
|
self.getRegistrationInfo = function (feature, apiClient) {
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
return self.getAvailableServers().then(function (servers) {
|
||||||
|
|
||||||
self.getAvailableServers().then(function (servers) {
|
|
||||||
|
|
||||||
var matchedServers = servers.filter(function (s) {
|
var matchedServers = servers.filter(function (s) {
|
||||||
return stringEqualsIgnoreCase(s.Id, apiClient.serverInfo().Id);
|
return stringEqualsIgnoreCase(s.Id, apiClient.serverInfo().Id);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!matchedServers.length) {
|
if (!matchedServers.length) {
|
||||||
deferred.resolveWith(null, [{}]);
|
return {};
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var match = matchedServers[0];
|
var match = matchedServers[0];
|
||||||
|
|
||||||
if (!match.DateLastLocalConnection) {
|
if (!match.DateLastLocalConnection) {
|
||||||
|
|
||||||
ApiClient.getJSON(ApiClient.getUrl('System/Endpoint')).then(function (info) {
|
return ApiClient.getJSON(ApiClient.getUrl('System/Endpoint')).then(function (info) {
|
||||||
|
|
||||||
if (info.IsInNetwork) {
|
if (info.IsInNetwork) {
|
||||||
|
|
||||||
updateDateLastLocalConnection(match.Id);
|
updateDateLastLocalConnection(match.Id);
|
||||||
onLocalCheckSuccess(feature, apiClient, deferred);
|
return apiClient.getRegistrationInfo(feature);
|
||||||
} else {
|
} else {
|
||||||
deferred.resolveWith(null, [{}]);
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
}, function () {
|
|
||||||
|
|
||||||
deferred.resolveWith(null, [{}]);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return;
|
} else {
|
||||||
|
return apiClient.getRegistrationInfo(feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
onLocalCheckSuccess(feature, apiClient, deferred);
|
|
||||||
|
|
||||||
}, function () {
|
|
||||||
|
|
||||||
deferred.reject();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function updateDateLastLocalConnection(serverId) {
|
function updateDateLastLocalConnection(serverId) {
|
||||||
|
@ -1489,17 +1452,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onLocalCheckSuccess(feature, apiClient, deferred) {
|
|
||||||
|
|
||||||
apiClient.getRegistrationInfo(feature).then(function (result) {
|
|
||||||
|
|
||||||
deferred.resolveWith(null, [result]);
|
|
||||||
}, function () {
|
|
||||||
|
|
||||||
deferred.reject();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1076,7 +1076,6 @@
|
||||||
Dashboard.showModalLoadingMsg();
|
Dashboard.showModalLoadingMsg();
|
||||||
|
|
||||||
ApiClient.detectBitrate().then(function (bitrate) {
|
ApiClient.detectBitrate().then(function (bitrate) {
|
||||||
|
|
||||||
Logger.log('Max bitrate auto detected to ' + bitrate);
|
Logger.log('Max bitrate auto detected to ' + bitrate);
|
||||||
self.lastBitrateDetections[bitrateDetectionKey] = new Date().getTime();
|
self.lastBitrateDetections[bitrateDetectionKey] = new Date().getTime();
|
||||||
AppSettings.maxStreamingBitrate(bitrate);
|
AppSettings.maxStreamingBitrate(bitrate);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue