RARBG TorrentAPI

A Rust wrapper for RARBG TorrentAPI
Report bug ยท Request feature

![GitHub Workflow Status](https://img.shields.io/github/workflow/status/baptistecdr/rarbg_api/Rust-CI-CD) ![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.9" tokio = { version = "1.18.0", features = ["full"] }

Examples

```rust extern crate rarbg_api;

use rarbgapi::apiparametersbuilder::ApiParametersBuilder; use rarbgapi::category::Category; use rarbgapi::limit::Limit; use rarbgapi::RarBgApi; use rarbgapi::sortby::SortBy;

[tokio::main]

pub async fn main() -> Result<(), ()> { let mut api = RarBgApi::new("myappid"); let parameters = ApiParametersBuilder::new() .limit(Limit::TwentyFive) .categories(vec![Category::TvUhdEpisodes, Category::TvHdEpisodes, Category::TvEpisodes]) .sortby(SortBy::Seeders) .build(); let result = api.list(Some(&parameters)).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().foreach(|t| println!("Torrent exported to '{}'.", t.export(".").unwrap())), Err(reason) => println!("{}", reason.error()) } Ok(()) } ```

```rust extern crate rarbg_api;

use rarbgapi::apiparametersbuilder::ApiParametersBuilder; use rarbgapi::category::Category; use rarbgapi::limit::Limit; use rarbgapi::RarBgApi; use rarbgapi::sortby::SortBy;

[tokio::main]

pub async fn main() -> Result<(), ()> { let mut api = RarBgApi::new("myappid").await; let parameters = ApiParametersBuilder::new() .limit(Limit::TwentyFive) .categories(vec![Category::TvUhdEpisodes, Category::TvHdEpisodes, Category::TvEpisodes]) .sortby(SortBy::Seeders) .build(); let result = api.search("Rick and Morty", Some(&parameters)).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).foreach(|t| println!("Torrent exported to '{}'.", t.export(".").unwrap())), Err(reason) => println!("{}", reason.error()) } Ok(()) } ```

Documentation

Documentation is available here.

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.

Contributing

Contributions are welcome!

Contributors

Disclaimer

Downloading content that you (don't) have might be illegal in your country.

This is an unofficial rust package.