1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update sync processes

This commit is contained in:
Luke Pulverenti 2015-09-09 13:49:44 -04:00
parent cad461b296
commit c23547137d
19 changed files with 400 additions and 326 deletions

View file

@ -0,0 +1,55 @@
(function (globalScope) {
function contentUploader(connectionManager) {
self.uploadImages = function (server) {
var deferred = DeferredBuilder.Deferred();
var apiClient = self.getApiClient(server.Id);
apiClient.getDevicesOptions().done(function (devicesOptions) {
if (!devicesOptions.EnabledCameraUploadDevices || devicesOptions.EnabledCameraUploadDevices.indexOf(apiClient.deviceId()) == -1) {
Logger.log("Camera upload is not enabled for this device.");
deferred.reject();
}
else {
uploadImagesInternal(server, apiClient, deferred);
}
}).fail(function () {
deferred.reject();
});
return deferred.promise();
};
function uploadImagesInternal(server, apiClient, deferred) {
apiClient.getContentUploadHistory().done(function (result) {
uploadImagesWithHistory(server, result, apiClient, deferred);
}).fail(function () {
deferred.reject();
});
}
function uploadImagesWithHistory(server, uploadHistory, apiClient, deferred) {
require(['localassetmanager'], function () {
// TODO: Mimic java version of ContentUploader.UploadImagesInternal
deferred.resolve();
});
}
}
if (!globalScope.MediaBrowser) {
globalScope.MediaBrowser = {};
}
globalScope.MediaBrowser.ContentUploader = contentUploader;
})(this);

View file

@ -0,0 +1,58 @@
(function (globalScope) {
function multiServerSync(connectionManager) {
self.sync = function () {
var deferred = DeferredBuilder.Deferred();
connectionManager.getAvailableServers().done(function (result) {
syncNext(result, 0, deferred);
});
return deferred.promise();
};
function syncNext(servers, index, deferred) {
var length = servers.length;
if (index >= length) {
deferred.resolve();
return;
}
if (progress.isCancelled) {
deferred.reject();
return;
}
var server = servers[index];
// get fresh info from connection manager
server = connectionManager.getServerInfo(server.Id) || server;
Logger.log("Creating ServerSync to server: " + server.Id);
require(['serversync'], function () {
new MediaBrowser.ServerSync(connectionManager).sync(server).done(function () {
syncNext(servers, index + 1, deferred);
}).fail(function () {
syncNext(servers, index + 1, deferred);
});
});
}
}
if (!globalScope.MediaBrowser) {
globalScope.MediaBrowser = {};
}
globalScope.MediaBrowser.MultiServerSync = multiServerSync;
})(this);

View file

@ -0,0 +1,64 @@
(function (globalScope) {
function serverSync(connectionManager) {
self.sync = function (server) {
var deferred = DeferredBuilder.Deferred();
if (!server.AccessToken && !server.ExchangeToken) {
Logger.log('Skipping sync to server ' + server.Id + ' because there is no saved authentication information.');
deferred.resolve();
return;
}
var connectionOptions = {
updateDateLastAccessed: false,
enableWebSocket: false,
reportCapabilities: false
};
connectionManager.connectToServer(server, connectionOptions).done(function (result) {
if (result.State == MediaBrowser.ConnectionState.SignedIn) {
performSync(server, deferred);
} else {
Logger.log('Unable to connect to server id: ' + server.Id);
deferred.reject();
}
}).fail(function () {
Logger.log('Unable to connect to server id: ' + server.Id);
deferred.reject();
});
return deferred.promise();
};
function performSync(server, deferred) {
Logger.log("Creating ContentUploader to server: " + server.Id);
require(['contentuploader'], function () {
new MediaBrowser.ContentUploader(connectionManager).uploadImages(server).done(function () {
deferred.resolve();
}).fail(function () {
deferred.resolve();
});
});
}
}
if (!globalScope.MediaBrowser) {
globalScope.MediaBrowser = {};
}
globalScope.MediaBrowser.ServerSync = serverSync;
})(this);