diff --git a/codegen/src/gen_locales.rs b/codegen/src/gen_locales.rs index 5f0a279..783f803 100644 --- a/codegen/src/gen_locales.rs +++ b/codegen/src/gen_locales.rs @@ -141,6 +141,9 @@ pub async fn generate_locales(project_root: &Path) { let (languages, countries) = get_locales().await; let code_head = r#"// This file is automatically generated. DO NOT EDIT. + +//! Languages and countries + use std::{fmt::Display, str::FromStr}; use serde::{Deserialize, Serialize}; @@ -177,28 +180,41 @@ impl FromStr for Country { } "#; - let mut code_langs = - r#"#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] + let mut code_langs = r#"/// Available languages +#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(rename_all = "lowercase")] pub enum Language { -"#.to_owned(); +"# + .to_owned(); - let mut code_countries = - r#"#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] + let mut code_countries = r#"/// Available countries +#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(rename_all = "UPPERCASE")] pub enum Country { -"#.to_owned(); +"# + .to_owned(); - let mut code_lang_array = format!("pub const LANGUAGES: [Language; {}] = [\n", languages.len()); - let mut code_country_array = - format!("pub const COUNTRIES: [Country; {}] = [\n", countries.len()); + let mut code_lang_array = format!( + "/// Array of all available languages\npub const LANGUAGES: [Language; {}] = [\n", + languages.len() + ); + let mut code_country_array = format!( + "/// Array of all available countries\npub const COUNTRIES: [Country; {}] = [\n", + countries.len() + ); let mut code_lang_names = r#"impl Language { + /// Get the native name of the language + /// + /// Examples: "English (US)", "Deutsch", "中文 (简体)" pub fn name(&self) -> &str { match self { "# .to_owned(); let mut code_country_names = r#"impl Country { + /// Get the English name of the country + /// + /// Examples: "United States", "Germany" pub fn name(&self) -> &str { match self { "# diff --git a/src/client/mod.rs b/src/client/mod.rs index 2292471..cc50473 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -8,6 +8,7 @@ mod response; mod video_details; #[cfg(feature = "rss")] +#[cfg_attr(docsrs, doc(cfg(feature = "rss")))] mod channel_rss; use std::fmt::Debug; diff --git a/src/client/player.rs b/src/client/player.rs index 92b09a5..4f972db 100644 --- a/src/client/player.rs +++ b/src/client/player.rs @@ -731,18 +731,6 @@ mod tests { assert!(player_data.expires_in_seconds > 10000); } - #[tokio::test] - async fn tmp() { - let rp = RustyPipe::builder().strict().build(); - let player_data = rp - .query() - .player("tVWWp1PqDus", ClientType::Desktop) - .await - .unwrap(); - - dbg!(&player_data); - } - #[test] fn t_cipher_to_url() { let signature_cipher = "s=w%3DAe%3DA6aDNQLkViKS7LOm9QtxZJHKwb53riq9qEFw-ecBWJCAiA%3DcEg0tn3dty9jEHszfzh4Ud__bg9CEHVx4ix-7dKsIPAhIQRw8JQ0qOA&sp=sig&url=https://rr5---sn-h0jelnez.googlevideo.com/videoplayback%3Fexpire%3D1659376413%26ei%3Dvb7nYvH5BMK8gAfBj7ToBQ%26ip%3D2003%253Ade%253Aaf06%253A6300%253Ac750%253A1b77%253Ac74a%253A80e3%26id%3Do-AB_BABwrXZJN428ZwDxq5ScPn2AbcGODnRlTVhCQ3mj2%26itag%3D251%26source%3Dyoutube%26requiressl%3Dyes%26mh%3DhH%26mm%3D31%252C26%26mn%3Dsn-h0jelnez%252Csn-4g5ednsl%26ms%3Dau%252Conr%26mv%3Dm%26mvi%3D5%26pl%3D37%26initcwndbps%3D1588750%26spc%3DlT-Khi831z8dTejFIRCvCEwx_6romtM%26vprv%3D1%26mime%3Daudio%252Fwebm%26ns%3Db_Mq_qlTFcSGlG9RpwpM9xQH%26gir%3Dyes%26clen%3D3781277%26dur%3D229.301%26lmt%3D1655510291473933%26mt%3D1659354538%26fvip%3D5%26keepalive%3Dyes%26fexp%3D24001373%252C24007246%26c%3DWEB%26rbqsm%3Dfr%26txp%3D4532434%26n%3Dd2g6G2hVqWIXxedQ%26sparams%3Dexpire%252Cei%252Cip%252Cid%252Citag%252Csource%252Crequiressl%252Cspc%252Cvprv%252Cmime%252Cns%252Cgir%252Cclen%252Cdur%252Clmt%26lsparams%3Dmh%252Cmm%252Cmn%252Cms%252Cmv%252Cmvi%252Cpl%252Cinitcwndbps%26lsig%3DAG3C_xAwRQIgCKCGJ1iu4wlaGXy3jcJyU3inh9dr1FIfqYOZEG_MdmACIQCbungkQYFk7EhD6K2YvLaHFMjKOFWjw001_tLb0lPDtg%253D%253D"; diff --git a/src/model/locale.rs b/src/model/locale.rs index 4ec4adb..b882074 100644 --- a/src/model/locale.rs +++ b/src/model/locale.rs @@ -1,8 +1,12 @@ // This file is automatically generated. DO NOT EDIT. + +//! Languages and countries + use std::{fmt::Display, str::FromStr}; use serde::{Deserialize, Serialize}; +/// Available languages #[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(rename_all = "lowercase")] pub enum Language { @@ -184,6 +188,7 @@ pub enum Language { Zu, } +/// Available countries #[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(rename_all = "UPPERCASE")] pub enum Country { @@ -407,6 +412,7 @@ pub enum Country { Zw, } +/// Array of all available languages pub const LANGUAGES: [Language; 83] = [ Language::Af, Language::Am, @@ -493,6 +499,7 @@ pub const LANGUAGES: [Language; 83] = [ Language::Zu, ]; +/// Array of all available countries pub const COUNTRIES: [Country; 109] = [ Country::Ae, Country::Ar, @@ -606,6 +613,9 @@ pub const COUNTRIES: [Country; 109] = [ ]; impl Language { + /// Get the native name of the language + /// + /// Examples: "English (US)", "Deutsch", "中文 (简体)" pub fn name(&self) -> &str { match self { Language::Af => "Afrikaans", @@ -696,6 +706,9 @@ impl Language { } impl Country { + /// Get the English name of the country + /// + /// Examples: "United States", "Germany" pub fn name(&self) -> &str { match self { Country::Ae => "United Arab Emirates", diff --git a/src/model/mod.rs b/src/model/mod.rs index 58f8d2d..33a49fa 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -465,9 +465,9 @@ pub struct VideoDetails { /// /// Information about the license: /// - /// https://www.youtube.com/t/creative_commons + /// /// - /// https://creativecommons.org/licenses/by/3.0/ + /// pub is_ccommons: bool, /// Chapters of the video pub chapters: Vec, diff --git a/src/model/richtext.rs b/src/model/richtext.rs index 726962c..34192e4 100644 --- a/src/model/richtext.rs +++ b/src/model/richtext.rs @@ -1,3 +1,5 @@ +//! Data model for texts with links + use serde::{Deserialize, Serialize}; #[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] @@ -41,6 +43,7 @@ pub trait ToPlaintext { /// Trait for converting rich text to html. #[cfg(feature = "html")] +#[cfg_attr(docsrs, doc(cfg(feature = "html")))] pub trait ToHtml { /// Convert rich text to html. fn to_html(&self) -> String { @@ -93,6 +96,7 @@ impl ToPlaintext for TextComponent { } #[cfg(feature = "html")] +#[cfg_attr(docsrs, doc(cfg(feature = "html")))] impl ToHtml for TextComponent { fn to_html_yt_host(&self, yt_host: &str) -> String { match self { @@ -127,6 +131,7 @@ impl ToPlaintext for RichText { } #[cfg(feature = "html")] +#[cfg_attr(docsrs, doc(cfg(feature = "html")))] impl ToHtml for RichText { fn to_html_yt_host(&self, yt_host: &str) -> String { self.0.iter().map(|c| c.to_html_yt_host(yt_host)).collect() diff --git a/src/model/stream_filter.rs b/src/model/stream_filter.rs index edd4e1d..71fbe1c 100644 --- a/src/model/stream_filter.rs +++ b/src/model/stream_filter.rs @@ -1,3 +1,5 @@ +//! Filters for selecting audio/video streams + use std::collections::HashSet; use super::{