1mod error;
2pub mod format;
3mod scraper;
4
5#[doc(inline)]
6pub use error::{Error, Result};
7
8pub use scraper::*;
9
10pub mod language_tags {
11 pub use language_tags::{LanguageTag, ParseError, ValidationError};
12}
13
14#[cfg(test)]
15mod tests {
16 use language_tags::LanguageTag;
17
18 use crate::scraper::DigestScraper;
19
20 type Result<T, E = Box<dyn std::error::Error>> = std::result::Result<T, E>;
21
22 #[tokio::test]
23 async fn it_works() -> Result<()> {
24 let video_id = "JRMOIE_wAFk";
25 let scraper = DigestScraper::new(reqwest::Client::new());
26 let digest = scraper.fetch(video_id, None).await?;
27 let en = LanguageTag::parse("en")?;
28 let en_caption = digest.captions.into_iter().find(|cap| en.matches(&cap.lang_tag)).unwrap();
29 dbg!(en_caption);
30
31 Ok(())
32 }
33}