Qbit-rs
A Rust library for interacting with qBittorrent's Web API.
Implemented according to WebUI API (qBittorrent 4.1).
Usage
Add this to your Cargo.toml
:
toml
[dependencies]
qbit-rs = "0.3"
And this to your crate:
```rust
use qbitrs::Qbit;
use httpclient::h1::H1Client;
let credential = Credential::new("admin", "adminadmin");
let api = Qbit::new(url, credential, H1Client::new()); // Or alternatively use Qbit::new_with_cookie
let torrents = api.gettorrentlist().await?;
```
For more methods, see Qbit
.
API Coverage
Most of the API is covered, except RSS
and Search
. PR is welcomed if you need that part of the API. The following is a list of the implementation status:
- [x] Authentication
- [x] [Login](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.login)
- [x] [Logout](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.logout)
- [x] Application
- [x] [Get application version](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getversion)
- [x] [Get API version](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getwebapiversion)
- [x] [Get build info](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getbuildinfo)
- [x] [Shutdown application](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.shutdown)
- [x] [Get application preferences](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getpreferences)
- [x] [Set application preferences](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.setpreferences)
- [x] [Get default save path](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getdefaultsavepath)
- [x] Log
- [x] [Get log](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.get_logs)
- [x] [Get peer log](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getpeerlogs)
- [x] Sync
- [x] [Get main data](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.sync)
- [x] [Get torrent peers data](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentpeers)
- [x] Transfer info
- [x] [Get global transfer info](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettransferinfo)
- [x] [Get alternative speed limits state](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getspeedlimitsmode)
- [x] [Toggle alternative speed limits](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.togglespeedlimitsmode)
- [x] [Get global download limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getdownloadlimit)
- [x] [Set global download limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.setdownloadlimit)
- [x] [Get global upload limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getuploadlimit)
- [x] [Set global upload limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.setuploadlimit)
- [x] [Ban peers](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.ban_peers)
- [x] Torrent management
- [x] [Get torrent list](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentlist)
- [x] [Get torrent generic properties](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentproperties)
- [x] [Get torrent trackers](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrenttrackers)
- [x] [Get torrent web seeds](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentwebseeds)
- [x] [Get torrent contents](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentcontents)
- [x] [Get torrent pieces' states](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentpiecesstats)
- [x] [Get torrent pieces' hashes](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentpieceshashes)
- [x] [Add new torrent](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.addtorrent)
- [x] [Pause torrents](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.paucetorrents)
- [x] [Resume torrents](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.resumetorrents)
- [x] [Delete torrents](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.deletetorrents)
- [x] [Recheck torrents](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.rechecktorrents)
- [x] [Reannounce torrents](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.reannouncetorrents)
- [x] [Edit trackers](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.edittrackers)
- [x] [Remove trackers](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.removetrackers)
- [x] [Add peers](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.addpeers)
- [x] [Add trackers to torrent](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.addtrackers)
- [x] [Increase torrent priority](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.increasepriority)
- [x] [Decrease torrent priority](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.decreasepriority)
- [x] [Maximal torrent priority](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.maximalpriority)
- [x] [Minimal torrent priority](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.minimalpriority)
- [x] [Set file priority](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.setfilepriority)
- [x] [Get torrent download limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentdownloadlimit)
- [x] [Set torrent download limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.settorrentdownloadlimit)
- [x] [Set torrent share limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.settorrentsharedlimit)
- [x] [Get torrent upload limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.gettorrentuploadlimit)
- [x] [Set torrent upload limit](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.settorrentuploadlimit)
- [x] [Set torrent location](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.settorrentlocation)
- [x] [Set torrent name](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.settorrentname)
- [x] [Set torrent category](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.settorrentcategory)
- [x] [Get all categories](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getcategories)
- [x] [Add new category](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.addcategory)
- [x] [Edit category](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.editcategories)
- [x] [Remove categories](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.removecategories)
- [x] [Add torrent tags](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.addtorrenttags)
- [x] [Remove torrent tags](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.removetorrenttags)
- [x] [Get all tags](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.getalltags)
- [x] [Create tags](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.createtags)
- [x] [Delete tags](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.deletetags)
- [x] [Set automatic torrent management](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.setautomanagement)
- [x] [Toggle sequential download](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.togglesequentialdownload)
- [x] [Set first/last piece priority](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.togglefirstlastpiecepriority)
- [x] [Set force start](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.setforcestar)
- [x] [Set super seeding](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.setsuperseeding)
- [x] [Rename file](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.renamefile)
- [x] [Rename folder](https://docs.rs/qbit-rs/latest/qbit-rs/struct.Qbit.html#method.renamefolder)
- [ ] RSS (experimental)
- [ ] Add folder
- [ ] Add feed
- [ ] Remove item
- [ ] Move item
- [ ] Get all items
- [ ] Mark as read
- [ ] Refresh item
- [ ] Set auto-downloading rule
- [ ] Rename auto-downloading rule
- [ ] Remove auto-downloading rule
- [ ] Get all auto-downloading rules
- [ ] Get all articles matching a rule
- [ ] Search
- [ ] Start search
- [ ] Stop search
- [ ] Get search status
- [ ] Get search results
- [ ] Delete search
- [ ] Get search plugins
- [ ] Install search plugin
- [ ] Uninstall search plugin
- [ ] Enable search plugin
- [ ] Update search plugins