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,ignore use qbit_rs::{Qbit, Credential};

let credential = Credential::new("admin", "adminadmin"); let api = Qbit::new(url, credential); // Or alternatively use Qbit::new_with_client let torrents = api.get_version().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:

  1. [x] Authentication
    1. [x] [Login](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.login)
    2. [x] [Logout](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.logout)
  2. [x] Application
    1. [x] [Get application version](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getversion)
    2. [x] [Get API version](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getwebapiversion)
    3. [x] [Get build info](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getbuildinfo)
    4. [x] [Shutdown application](https://docs.rs/qbit-rs/latest/qbit_rs/struct.Qbit.html#method.shutdown)
    5. [x] [Get application preferences](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getpreferences)
    6. [x] [Set application preferences](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.setpreferences)
    7. [x] [Get default save path](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getdefaultsavepath)
  3. [x] Log
    1. [x] [Get log](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getlogs)
    2. [x] [Get peer log](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getpeer_logs)
  4. [x] Sync
    1. [x] [Get main data](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.sync)
    2. [x] [Get torrent peers data](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentpeers)
  5. [x] Transfer info
    1. [x] [Get global transfer info](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettransferinfo)
    2. [x] [Get alternative speed limits state](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getspeedlimitsmode)
    3. [x] [Toggle alternative speed limits](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.togglespeedlimitsmode)
    4. [x] [Get global download limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getdownloadlimit)
    5. [x] [Set global download limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.setdownloadlimit)
    6. [x] [Get global upload limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getuploadlimit)
    7. [x] [Set global upload limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.setupload_limit)
    8. [x] [Ban peers](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.banpeers)
  6. [x] Torrent management
    1. [x] [Get torrent list](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentlist)
    2. [x] [Get torrent generic properties](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentproperties)
    3. [x] [Get torrent trackers](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrenttrackers)
    4. [x] [Get torrent web seeds](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentwebseeds)
    5. [x] [Get torrent contents](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentcontents)
    6. [x] [Get torrent pieces' states](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentpiecesstats)
    7. [x] [Get torrent pieces' hashes](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentpieceshashes)
    8. [x] [Add new torrent](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.addtorrent)
    9. [x] [Pause torrents](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.paucetorrents)
    10. [x] [Resume torrents](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.resumetorrents)
    11. [x] [Delete torrents](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.deletetorrents)
    12. [x] [Recheck torrents](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.rechecktorrents)
    13. [x] [Reannounce torrents](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.reannouncetorrents)
    14. [x] [Edit trackers](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.edittrackers)
    15. [x] [Remove trackers](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.removetrackers)
    16. [x] [Add peers](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.addpeers)
    17. [x] [Add trackers to torrent](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.addtrackers)
    18. [x] [Increase torrent priority](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.increasepriority)
    19. [x] [Decrease torrent priority](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.decreasepriority)
    20. [x] [Maximal torrent priority](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.maximalpriority)
    21. [x] [Minimal torrent priority](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.minimalpriority)
    22. [x] [Set file priority](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.setfilepriority)
    23. [x] [Get torrent download limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentdownloadlimit)
    24. [x] [Set torrent download limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.settorrentdownloadlimit)
    25. [x] [Set torrent share limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.settorrentsharedlimit)
    26. [x] [Get torrent upload limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.gettorrentuploadlimit)
    27. [x] [Set torrent upload limit](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.settorrentuploadlimit)
    28. [x] [Set torrent location](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.settorrentlocation)
    29. [x] [Set torrent name](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.settorrentname)
    30. [x] [Set torrent category](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.settorrentcategory)
    31. [x] [Get all categories](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getcategories)
    32. [x] [Add new category](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.addcategory)
    33. [x] [Edit category](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.editcategories)
    34. [x] [Remove categories](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.removecategories)
    35. [x] [Add torrent tags](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.addtorrenttags)
    36. [x] [Remove torrent tags](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.removetorrenttags)
    37. [x] [Get all tags](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.getalltags)
    38. [x] [Create tags](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.createtags)
    39. [x] [Delete tags](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.deletetags)
    40. [x] [Set automatic torrent management](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.setautomanagement)
    41. [x] [Toggle sequential download](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.togglesequentialdownload)
    42. [x] [Set first/last piece priority](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.togglefirstlastpiecepriority)
    43. [x] [Set force start](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.setforcestar)
    44. [x] [Set super seeding](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.setsuperseeding)
    45. [x] [Rename file](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.renamefile)
    46. [x] [Rename folder](https://docs.rs/qbit-rs/latest/qbitrs/struct.Qbit.html#method.renamefolder)
  7. [ ] RSS (experimental)
    1. [ ] Add folder
    2. [ ] Add feed
    3. [ ] Remove item
    4. [ ] Move item
    5. [ ] Get all items
    6. [ ] Mark as read
    7. [ ] Refresh item
    8. [ ] Set auto-downloading rule
    9. [ ] Rename auto-downloading rule
    10. [ ] Remove auto-downloading rule
    11. [ ] Get all auto-downloading rules
    12. [ ] Get all articles matching a rule
  8. [ ] Search
    1. [ ] Start search
    2. [ ] Stop search
    3. [ ] Get search status
    4. [ ] Get search results
    5. [ ] Delete search
    6. [ ] Get search plugins
    7. [ ] Install search plugin
    8. [ ] Uninstall search plugin
    9. [ ] Enable search plugin
    10. [ ] Update search plugins