electorrent
Version:
An Electron/Node/AngularJS remote client app for uTorrent server
61 lines (48 loc) • 1.99 kB
JavaScript
angular.module("torrentApp").controller("welcomeController", ["$scope", "$timeout", "$bittorrent", "$btclients", "electron", "configService", "notificationService", "Server", function ($scope, $timeout, $bittorrent, $btclients, electron, config, $notify, Server) {
$scope.connecting = false;
$scope.btclients = $btclients;
function clearForm() {
$scope.ip = ''
$scope.port = ''
$scope.username = ''
$scope.password = ''
$scope.client = undefined
}
$scope.connect = function() {
var ip = $scope.ip || '';
var port = $scope.port || '';
var user = $scope.username || '';
var password = $scope.password || '';
var client = $scope.client || '';
var btclient = $bittorrent.getClient(client);
if (!btclient) {
$notify.alert("Opps!", "Please select a client to connect to!")
$scope.connecting = false;
return;
}
$scope.connecting = true;
btclient.connect(ip, port, user, password).then(function() {
$timeout(function(){
$bittorrent.setClient(btclient);
saveServer(ip, port, user, password, client);
}, 500)
}).catch(function(err) {
$timeout(function(){
console.error(err);
}, 500)
}).finally(function() {
$scope.connecting = false;
})
}
function saveServer(ip, port, username, password, client){
let server = new Server(ip, port, username, password, client)
$bittorrent.setServer(server)
config.saveServer(server).then(function(){
$scope.$emit('show:torrents');
clearForm()
$notify.ok("Success!", "Hooray! Welcome to Electorrent")
}).catch(function(){
$notify.alert("Oops!", "Could not save settings?!")
})
}
}]);