Skip to content

Commit

Permalink
UI; Whitespace
Browse files Browse the repository at this point in the history
  • Loading branch information
msimmer committed Sep 29, 2019
1 parent 473249f commit b581402
Show file tree
Hide file tree
Showing 10 changed files with 367 additions and 209 deletions.
5 changes: 4 additions & 1 deletion lib/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ class API {
addClients(rpcPorts, transmissionPorts, callback) {
let args = []
args = rpcPorts.reduce((acc, port) => acc.concat(['-p', port]), args)
args = transmissionPorts.reduce((acc, port) => acc.concat(['-P', port]), args)
args = transmissionPorts.reduce(
(acc, port) => acc.concat(['-P', port]),
args
)

this.exec(process.env.SCRIPT_CREATE_CLIENTS, args, callback)
}
Expand Down
244 changes: 139 additions & 105 deletions lib/db.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,23 +53,27 @@ class Database {
ports[0].push([rpcPort, transmissionPort])
}

return this.connection.query(`INSERT INTO ports (rpc_port, transmission_port) VALUES ?`, ports, error1 => {
if (error1) return callback(error1)

return this.connection.query(
`INSERT INTO clients (name, rpc_port, transmission_port) VALUES ?`,
clients,
error2 => {
if (error2) return callback(error2)

const active = ports[0].slice(0, Math.round(n / 2))
return this.startClients(active, (error3, data) => {
if (error3) return callback(error3)
return callback(null, data)
})
}
)
})
return this.connection.query(
`INSERT INTO ports (rpc_port, transmission_port) VALUES ?`,
ports,
error1 => {
if (error1) return callback(error1)

return this.connection.query(
`INSERT INTO clients (name, rpc_port, transmission_port) VALUES ?`,
clients,
error2 => {
if (error2) return callback(error2)

const active = ports[0].slice(0, Math.round(n / 2))
return this.startClients(active, (error3, data) => {
if (error3) return callback(error3)
return callback(null, data)
})
}
)
}
)
}

getTorrents(callback) {
Expand All @@ -88,127 +92,157 @@ class Database {

addClients(n, callback) {
// Get available ports
return this.connection.query(`SELECT * FROM ports WHERE available = 1 LIMIT ${n}`, (error1, results1) => {
if (error1) return callback(error1)
if (!results1.length) return callback(new Error('No available ports'))

// Save reference to ports
const rpcPorts = results1.reduce((acc, curr) => acc.concat(curr.rpc_port), []).join()

// Set up insert
const data = [
results1.reduce(
(acc, curr) => acc.push([`transmission-${curr.rpc_port}`, curr.rpc_port, curr.transmission_port]) && acc,
[]
return this.connection.query(
`SELECT * FROM ports WHERE available = 1 LIMIT ${n}`,
(error1, results1) => {
if (error1) return callback(error1)
if (!results1.length) return callback(new Error('No available ports'))

// Save reference to ports
const rpcPorts = results1
.reduce((acc, curr) => acc.concat(curr.rpc_port), [])
.join()

// Set up insert
const data = [
results1.reduce(
(acc, curr) =>
acc.push([
`transmission-${curr.rpc_port}`,
curr.rpc_port,
curr.transmission_port
]) && acc,
[]
)
]

// Insert rows
return this.connection.query(
'INSERT INTO clients (name, rpc_port, transmission_port) VALUES ?',
data,
error2 => {
if (error2) return callback(error2)

// Set available status on ports table
return this.connection.query(
`UPDATE ports SET available = 0 WHERE rpc_port IN (${rpcPorts})`,
error3 => {
if (error3) return callback(error3)

// Get newly added clients ports
return this.connection.query(
`SELECT * FROM clients WHERE rpc_port IN (${rpcPorts})`,
(error4, results4) => {
if (error4) return callback(error4)
return callback(null, results4)
}
)
}
)
}
)
]

// Insert rows
return this.connection.query('INSERT INTO clients (name, rpc_port, transmission_port) VALUES ?', data, error2 => {
if (error2) return callback(error2)

// Set available status on ports table
return this.connection.query(`UPDATE ports SET available = 0 WHERE rpc_port IN (${rpcPorts})`, error3 => {
if (error3) return callback(error3)

// Get newly added clients ports
return this.connection.query(`SELECT * FROM clients WHERE rpc_port IN (${rpcPorts})`, (error4, results4) => {
if (error4) return callback(error4)
return callback(null, results4)
})
})
})
})
}
)
}

removeClients(ports, callback) {
// Release ports
const ports_ = ports.join()
this.connection.query(`UPDATE ports SET available = 1 WHERE rpc_port IN (${ports_})`, error1 => {
if (error1) callback(error1)

// Update client status
return this.connection.query(`DELETE FROM clients WHERE rpc_port IN (${ports_})`, (error2, results2) => {
if (error2) callback(error2)
return callback(null, results2)
})
})
this.connection.query(
`UPDATE ports SET available = 1 WHERE rpc_port IN (${ports_})`,
error1 => {
if (error1) callback(error1)

// Update client status
return this.connection.query(
`DELETE FROM clients WHERE rpc_port IN (${ports_})`,
(error2, results2) => {
if (error2) callback(error2)
return callback(null, results2)
}
)
}
)
}

// Start clients and update port status
startClients(ports, callback) {
const ports_ = ports.join()
return this.connection.query(`UPDATE clients SET active = 1 WHERE rpc_port IN (${ports_})`, error1 => {
if (error1) return callback(error1)

return this.connection.query(
`UPDATE ports SET available = 0 WHERE rpc_port IN (${ports_})`,
(error2, results) => {
if (error2) return callback(error2)

return callback(null, results)
}
)
})
return this.connection.query(
`UPDATE clients SET active = 1 WHERE rpc_port IN (${ports_})`,
error1 => {
if (error1) return callback(error1)

return this.connection.query(
`UPDATE ports SET available = 0 WHERE rpc_port IN (${ports_})`,
(error2, results) => {
if (error2) return callback(error2)

return callback(null, results)
}
)
}
)
}

// Stop clients and update port status
stopClients(ports, callback) {
const ports_ = ports.join()
return this.connection.query(`UPDATE clients SET active = 0 WHERE rpc_port IN (${ports_})`, error1 => {
if (error1) return callback(error1)

return this.connection.query(
`UPDATE ports SET available = 1 WHERE rpc_port IN (${ports_})`,
(error2, results) => {
if (error2) return callback(error2)
return callback(null, results)
}
)
})
return this.connection.query(
`UPDATE clients SET active = 0 WHERE rpc_port IN (${ports_})`,
error1 => {
if (error1) return callback(error1)

return this.connection.query(
`UPDATE ports SET available = 1 WHERE rpc_port IN (${ports_})`,
(error2, results) => {
if (error2) return callback(error2)
return callback(null, results)
}
)
}
)
}

// Adds torrent data to the db
createTorrent(fileName, hash, callback) {
const data = [[[`${fileName}.torrent`, hash]]]
return this.connection.query('INSERT INTO torrents (name, hash) VALUES ?', data, error => {
if (error) return callback(error)
return callback(null)
})
const name = `${fileName}.torrent`
const data = [[[name, hash]]]
return this.connection.query(
'INSERT INTO torrents (name, hash) VALUES ?',
data,
(error, results) => {
if (error) return callback(error)
return callback(null, { id: results.insertId, name, hash })
}
)
}

// Adds a torrent to all active clients
addTorrents(torrentIds, callback) {
const torrentIds_ = torrentIds.join()
return this.connection.query(`UPDATE torrents SET active = 1 WHERE id IN (${torrentIds_})`, (error, results) => {
if (error) return callback(error)
return callback(null, results)
})
return this.connection.query(
`UPDATE torrents SET active = 1 WHERE id IN (${torrentIds_})`,
(error, results) => {
if (error) return callback(error)
return callback(null, results)
}
)
}

// Removes a torrent from all active clients
removeTorrents(torrentIds, callback) {
const torrentIds_ = torrentIds.join()
return this.connection.query(`UPDATE torrents SET active = 0 WHERE id IN (${torrentIds_})`, (error, results) => {
if (error) return callback(error)
return callback(null, results)
})
return this.connection.query(
`UPDATE torrents SET active = 0 WHERE id IN (${torrentIds_})`,
(error, results) => {
if (error) return callback(error)
return callback(null, results)
}
)
}
}

// const callback = (err, results, fields) => {
// if (err) console.log('ERR!', err)
// console.log(results)
// console.log(fields)
// connection.end()
// }

// const db = new Database()
// db.create(err => {
// if (err) throw err
// db.seed(10, callback)
// })

// db.getClients(callback)
// db.addClients(2, callback)
// db.removeClients([9091, 9092], callback)
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
"version": "0.1.0",
"private": true,
"scripts": {
"scripts:vendor": "node scripts/copy-vendor-scripts.js",
"start": "npm run scripts:vendor && node ./bin/www",
"vendor": "node scripts/copy-vendor-scripts.js",
"reset": ". ./env.sh && node scripts/reset-database.js",
"start": "npm run vendor && node ./bin/www",
"start:dev": ". ./env.sh && DEBUG=dashboard:* node ./bin/www"
},
"dependencies": {
Expand Down
Loading

0 comments on commit b581402

Please sign in to comment.