RARBG TorrentAPI
A Rust wrapper for RARBG TorrentAPI
Report bug
ยท
Request feature
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/baptistecdr/rarbg_api/rust.yml?branch=main) ![Crates.io](https://img.shields.io/crates/v/rarbg_api) ![Crates.io](https://img.shields.io/crates/d/rarbg_api) ![GitHub](https://img.shields.io/github/license/baptistecdr/rarbg_api)
## Description
This Rust module allows easy interaction with RARBG TorrentAPI.
In particular, it allows you to list or search torrents and to export them to a magnet file.
## Quick start
Add this to your `Cargo.toml`:
```toml
[dependencies]
rarbg_api = "1.0.42"
tokio = { version = "1.28.1", features = ["full"] }
```
### Examples
```rust
extern crate rarbg_api;
use rarbg_api::api_parameters_builder::ApiParametersBuilder;
use rarbg_api::category::Category;
use rarbg_api::limit::Limit;
use rarbg_api::RarBgApi;
use rarbg_api::sort_by::SortBy;
#[tokio::main]
pub async fn main() {
let mut api = RarBgApi::new("my_app_id").await;
let parameters = ApiParametersBuilder::new()
.limit(Limit::TwentyFive)
.categories(vec![Category::TvUhdEpisodes, Category::TvHdEpisodes, Category::TvEpisodes])
.sort_by(SortBy::Seeders)
.build();
let result = api.list(Some(¶meters)).await;
match result {
// Export all torrents found in the current directory.
// Each file contains a magnet link that can be add in your Bittorrent client.
Ok(result) => result.torrents().iter().for_each(|t| println!("Torrent exported to '{}'.", t.export(".").unwrap())),
Err(reason) => println!("{}", reason.error())
}
}
```
```rust
extern crate rarbg_api;
use rarbg_api::api_parameters_builder::ApiParametersBuilder;
use rarbg_api::category::Category;
use rarbg_api::limit::Limit;
use rarbg_api::RarBgApi;
use rarbg_api::sort_by::SortBy;
#[tokio::main]
pub async fn main() {
let mut api = RarBgApi::new("my_app_id").await;
let parameters = ApiParametersBuilder::new()
.limit(Limit::TwentyFive)
.categories(vec![Category::TvUhdEpisodes, Category::TvHdEpisodes, Category::TvEpisodes])
.sort_by(SortBy::Seeders)
.build();
let result = api.search("Rick and Morty", Some(¶meters)).await;
match result {
// Export first torrent found in the current directory.
// The file contains a magnet link that can be add in your Bittorrent client.
Ok(result) => result.torrents().iter().take(1).for_each(|t| println!("Torrent exported to '{}'.", t.export(".").unwrap())),
Err(reason) => println!("{}", reason.error())
}
}
```
## Documentation
Documentation is available [here](https://docs.rs/rarbg_api).
## Bugs and feature requests
Have a bug or a feature request? Please first search for existing and closed issues. If your problem or idea is not
addressed yet, [please open a new issue](https://github.com/baptistecdr/rarbg_api/issues).
## Contributing
Contributions are welcome!
## Contributors
- [Orestis](https://github.com/omalaspinas) for his feedback
## Disclaimer
Downloading content that you (don't) have might be illegal in your country.
This is an unofficial rust package.