kai_fansubs/
lib.rs

1//! # kai-fansubs
2//!
3//! A Rust client library for interacting with the fansubs.ru to access media and subtitle information.
4//!
5//! ## Overview
6//!
7//! This library provides a convenient interface to:
8//! - Browse media catalog alphabetically
9//! - Fetch detailed media information including subtitles
10//! - Download subtitle files in various formats
11//! - Retrieve subtitle notes and additional information
12//!
13//! ## Quick Start
14//!
15//! ```rust,no_run
16//! use kai_fansubs::client::Client;
17//! use kai_fansubs::queries::{AlphabetCatalogQuery, CatalogSymbol, MediaQuery};
18//!
19//! #[tokio::main]
20//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
21//!     // Create a client with default settings
22//!     let client = Client::new();
23//!
24//!     // Browse catalog by letter
25//!     let catalog = AlphabetCatalogQuery::new(CatalogSymbol::A)
26//!         .execute(&client)
27//!         .await?;
28//!
29//!     // Get detailed information about a specific media
30//!     let media = MediaQuery::new(4214).execute(&client).await?;
31//!     println!("Title: {}", media.main_title);
32//!     println!("Subtitles available: {}", media.subtitles.len());
33//!
34//!     Ok(())
35//! }
36//! ```
37//!
38//! ## Client Configuration
39//!
40//! The client can be customized using the builder pattern:
41//!
42//! ```rust,no_run
43//! use kai_fansubs::client::Client;
44//!
45//! #[tokio::main]
46//! async fn main() {
47//!     let client = Client::builder()
48//!         .user_agent("MyApp/1.0")
49//!         .rate_limit_per_minute(60) // Custom rate limit
50//!         .rate_limit_per_second(3) // Custom rate limit
51//!         .build();
52//! }
53//! ```
54
55pub mod client;
56pub mod error;
57mod parsing;
58pub mod queries;
59pub mod types;