/qb-mine

Primary LanguageTypeScriptMIT LicenseMIT

qBittorrent npm CircleCI coverage status

TypeScript api wrapper for qBittorrent using got

Install

npm install @ctrl/qbittorrent

Use

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);
}

API

Docs: https://qbittorrent.netlify.com/
qBittorrent Api Docs: https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation

Normalized API

These functions have been normalized between torrent clients. Can easily support multiple torrent clients. See below for alternative supported torrent clients

getAllData

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);
getTorrent

Returns one torrent data

const data = await client.getTorrent();
console.log(data);
pauseTorrent and resumeTorrent

Pause or resume a torrent

const paused = await client.pauseTorrent();
console.log(paused);
const resumed = await client.resumeTorrent();
console.log(resumed);
removeTorrent

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);
addTorrent

Add a torrent, has client specific options. Also see normalizedAddTorrent

const result = await client.addTorrent(fs.readFileSync(torrentFile));
console.log(result);
normalizedAddTorrent

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);

See Also

All torrent clients support the same normalized functions deluge - https://github.com/TypeCtrl/deluge
transmission - https://github.com/TypeCtrl/transmission

See Also

感谢@ctrl/qbittorrent项目的作者,本仓库只是修改原包的部分代码