mirror of
https://github.com/kristoferssolo/transmission-rpc.git
synced 2025-10-21 20:10:37 +00:00
38 lines
1.6 KiB
Rust
38 lines
1.6 KiB
Rust
extern crate transmission_rpc;
|
|
|
|
use std::env;
|
|
use dotenv::dotenv;
|
|
use transmission_rpc::TransClient;
|
|
use transmission_rpc::types::{Result, RpcResponse, BasicAuth};
|
|
use transmission_rpc::types::{Torrents, Torrent, TorrentGetField, Id};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<()> {
|
|
dotenv().ok();
|
|
env_logger::init();
|
|
let url= env::var("TURL")?;
|
|
let basic_auth = BasicAuth{user: env::var("TUSER")?, password: env::var("TPWD")?};
|
|
let client = TransClient::with_auth(&url, basic_auth);
|
|
|
|
let res: RpcResponse<Torrents<Torrent>> = client.torrent_get(None, None).await?;
|
|
let names: Vec<&String> = res.arguments.torrents.iter().map(|it| it.name.as_ref().unwrap()).collect();
|
|
println!("{:#?}", names);
|
|
|
|
let res1: RpcResponse<Torrents<Torrent>> = client.torrent_get(Some(vec![TorrentGetField::Id, TorrentGetField::Name]), Some(vec![Id::Id(1), Id::Id(2), Id::Id(3)])).await?;
|
|
let first_three: Vec<String> = res1.arguments.torrents.iter().map(|it|
|
|
format!("{}. {}",&it.id.as_ref().unwrap(), &it.name.as_ref().unwrap())
|
|
).collect();
|
|
println!("{:#?}", first_three);
|
|
|
|
|
|
let res2: RpcResponse<Torrents<Torrent>> = client.torrent_get(Some(vec![TorrentGetField::Id, TorrentGetField::HashString, TorrentGetField::Name]), Some(vec![Id::Hash(String::from("64b0d9a53ac9cd1002dad1e15522feddb00152fe"))])).await?;
|
|
let info: Vec<String> = res2.arguments.torrents.iter().map(|it|
|
|
format!("{:5}. {:^45} {}",
|
|
&it.id.as_ref().unwrap(),
|
|
&it.hash_string.as_ref().unwrap(),
|
|
&it.name.as_ref().unwrap())
|
|
).collect();
|
|
println!("{:#?}", info);
|
|
|
|
Ok(())
|
|
} |