TypeScript api wrapper for qBittorrent using got
npm install @ctrl/qbittorrent
import { QBittorrent } from '@ctrl/qbittorrent';
const client = new QBittorrent({
baseUrl: 'http://localhost:8080/',
username: 'admin',
password: 'adminadmin',
});
async function main() {
const res = await qbittorrent.getAllData();
console.log(res);
}
Docs: https://qbittorrent.netlify.com/
qBittorrent Api Docs: https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation
These functions have been normalized between torrent clients. Can easily support multiple torrent clients. See below for alternative supported torrent clients
Returns all torrent data and an array of label objects. Data has been normalized and does not match the output of native listTorrents()
.
const data = await client.getAllData();
console.log(data.torrents);
Returns one torrent data
const data = await client.getTorrent();
console.log(data);
Pause or resume a torrent
const paused = await client.pauseTorrent();
console.log(paused);
const resumed = await client.resumeTorrent();
console.log(resumed);
Remove a torrent. Does not remove data on disk by default.
// does not remove data on disk
const result = await client.removeTorrent('torrent_id', false);
console.log(result);
// remove data on disk
const res = await client.removeTorrent('torrent_id', true);
console.log(res);
Add a torrent, has client specific options. Also see normalizedAddTorrent
const result = await client.addTorrent(fs.readFileSync(torrentFile));
console.log(result);
Add a torrent and return normalized torrent data, can start a torrent paused and add label
const result = await client.normalizedAddTorrent(fs.readFileSync(torrentFile), {
startPaused: false;
label: 'linux';
});
console.log(result);
All torrent clients support the same normalized functions
deluge - https://github.com/TypeCtrl/deluge
transmission - https://github.com/TypeCtrl/transmission
感谢@ctrl/qbittorrent项目的作者,本仓库只是修改原包的部分代码