search/
search.rs

1use magneto::{Category, Knaben, Magneto, OrderBy, SearchRequest};
2
3#[tokio::main]
4async fn main() {
5    // Only use Knaben provider
6    let magneto = Magneto::default().add_provider(Box::new(Knaben::new()));
7
8    // You can add categories which your search are filtered by.
9    let request = SearchRequest::new("Ubuntu")
10        .add_category(Category::Software)
11        .add_categories(vec![Category::Audio, Category::Movies]);
12
13    // Or initialize the request like this for more customization.
14    let _request = SearchRequest {
15        query: "Debian",
16        order_by: OrderBy::Seeders,
17        categories: vec![Category::Movies],
18        number_of_results: 10,
19    };
20
21    match magneto.search(request).await {
22        Ok(results) => {
23            for torrent in results {
24                println!(
25                    "found: {} from {} with magnet link {} (seeders: {}, peers: {})",
26                    torrent.name,
27                    torrent.provider,
28                    torrent.magnet_link,
29                    torrent.seeders,
30                    torrent.peers,
31                );
32            }
33        }
34        Err(e) => eprintln!("error during search: {:?}", e),
35    }
36}