1
0
Fork 0
mirror of https://github.com/VueTorrent/VueTorrent.git synced 2025-04-10 10:45:11 +03:00
VueTorrent/server/qbit.js
2020-03-22 10:59:38 +01:00

108 lines
No EOL
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