mirror of
https://github.com/VueTorrent/VueTorrent.git
synced 2025-04-07 17:25:05 +03:00
101 lines
2.3 KiB
JavaScript
101 lines
2.3 KiB
JavaScript
const api = require('qbittorrent-api-v2')
|
|
const dotenv = require('dotenv')
|
|
const Torrent = require('./models/torrent.class.js')
|
|
const Stat = require('./models/stat.class.js')
|
|
|
|
dotenv.config()
|
|
|
|
const connection = api.connect(process.env.QBIT_HOST, process.env.QBIT_USER, process.env.QBIT_PASS)
|
|
|
|
|
|
class Qbit {
|
|
async get_all(prop) {
|
|
try {
|
|
const res = await (await connection).torrents('all', null, prop.name, String(prop.reverse), '20', null, null)
|
|
const torrents = []
|
|
res.forEach((el) => {
|
|
const t = new Torrent(el)
|
|
torrents.push(t)
|
|
})
|
|
return torrents
|
|
} catch (err) {
|
|
return `something went wrong:${err}`
|
|
}
|
|
}
|
|
|
|
async get_session_stats() {
|
|
try {
|
|
const res = await (await connection).transferInfo()
|
|
return new Stat(res)
|
|
} catch (err) {
|
|
return `something went wrong:${err}`
|
|
}
|
|
}
|
|
|
|
async pause_torrents(torrents) {
|
|
let _torrents = ''
|
|
torrents.forEach((el) => {
|
|
_torrents += `${el}|`
|
|
})
|
|
try {
|
|
return await (await connection).pauseTorrents(_torrents)
|
|
} catch (err) {
|
|
return `something went wrong:${err}`
|
|
}
|
|
}
|
|
|
|
async pause_all() {
|
|
try {
|
|
return await (await connection).pauseTorrents('all')
|
|
} catch (err) {
|
|
return `something went wrong:${err}`
|
|
}
|
|
}
|
|
|
|
async resume_torrents(torrents) {
|
|
let _torrents = ''
|
|
torrents.forEach((el) => {
|
|
_torrents += `${el}|`
|
|
})
|
|
console.log(_torrents)
|
|
try {
|
|
return await (await connection).resumeTorrents(_torrents)
|
|
} catch (err) {
|
|
return `something went wrong:${err}`
|
|
}
|
|
}
|
|
|
|
async resume_all() {
|
|
try {
|
|
return await (await connection).resumeTorrents('all')
|
|
} catch (err) {
|
|
return `something went wrong:${err}`
|
|
}
|
|
}
|
|
|
|
async remove_torrents(torrents) {
|
|
let _torrents = ''
|
|
torrents.forEach((el) => {
|
|
_torrents += `${el}|`
|
|
})
|
|
console.log(_torrents)
|
|
try {
|
|
return await (await connection).deleteTorrents(_torrents, 'true')
|
|
} catch (err) {
|
|
return `something went wrong:${err}`
|
|
}
|
|
}
|
|
|
|
async add(torrent) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.add(torrent.path, null, null, (err, res) => {
|
|
resolve(res)
|
|
reject(err)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
const qbit = new Qbit()
|
|
|
|
module.exports = qbit
|