43 stable releases
1.0.42 | May 11, 2023 |
---|---|
1.0.39 | Feb 6, 2023 |
1.0.36 | Dec 11, 2022 |
1.0.34 | Nov 19, 2022 |
0.5.1 | Jul 24, 2020 |
#387 in Web programming
37KB
645 lines
RARBG TorrentAPI
A Rust wrapper for RARBG TorrentAPI
Report bug
·
Request feature
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
:
[dependencies]
rarbg_api = "1.0.42"
tokio = { version = "1.28.1", features = ["full"] }
Examples
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())
}
}
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.
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
- Orestis for his feedback
Disclaimer
Downloading content that you (don't) have might be illegal in your country.
This is an unofficial rust package.
Dependencies
~7–20MB
~290K SLoC