diff --git a/codegen/src/collect_album_types.rs b/codegen/src/collect_album_types.rs new file mode 100644 index 0000000..d7c054e --- /dev/null +++ b/codegen/src/collect_album_types.rs @@ -0,0 +1,121 @@ +use std::{collections::BTreeMap, fs::File, io::BufReader, path::Path}; + +use futures::stream::{self, StreamExt}; +use rustypipe::{ + client::{ClientType, RustyPipe, RustyPipeQuery, YTContext}, + model::AlbumType, + param::{locale::LANGUAGES, Language}, +}; +use serde::{Deserialize, Serialize}; + +use crate::util::{self, TextRuns}; + +pub async fn collect_album_types(project_root: &Path, concurrency: usize) { + let mut json_path = project_root.to_path_buf(); + json_path.push("testfiles/dict/album_type_samples.json"); + + let album_types = [ + (AlbumType::Album, "MPREb_nlBWQROfvjo"), + (AlbumType::Single, "MPREb_bHfHGoy7vuv"), + (AlbumType::Ep, "MPREb_u1I69lSAe5v"), + (AlbumType::Audiobook, "MPREb_gaoNzsQHedo"), + (AlbumType::Show, "MPREb_cwzk8EUwypZ"), + ]; + + let rp = RustyPipe::new(); + + let collected_album_types = stream::iter(LANGUAGES) + .map(|lang| { + let rp = rp.clone(); + async move { + let query = rp.query().lang(lang); + let mut data: BTreeMap = BTreeMap::new(); + + for (album_type, id) in album_types { + let atype_txt = get_album_type(&query, id).await; + println!("collected {}-{:?} ({})", lang, album_type, &atype_txt); + data.insert(album_type, atype_txt); + } + + (lang, data) + } + }) + .buffer_unordered(concurrency) + .collect::>() + .await; + + let file = File::create(json_path).unwrap(); + serde_json::to_writer_pretty(file, &collected_album_types).unwrap(); +} + +pub fn write_samples_to_dict(project_root: &Path) { + let mut json_path = project_root.to_path_buf(); + json_path.push("testfiles/dict/album_type_samples.json"); + + let json_file = File::open(json_path).unwrap(); + let collected: BTreeMap> = + serde_json::from_reader(BufReader::new(json_file)).unwrap(); + let mut dict = util::read_dict(project_root); + let langs = dict.keys().map(|k| k.to_owned()).collect::>(); + + for lang in langs { + let dict_entry = dict.entry(lang).or_default(); + + let mut e_langs = dict_entry.equivalent.clone(); + e_langs.push(lang); + + collected.get(&lang).unwrap().iter().for_each(|(t, v)| { + dict_entry.album_types.insert(v.to_lowercase(), *t); + }); + } + + util::write_dict(project_root, &dict); +} + +#[derive(Debug, Deserialize)] +struct AlbumData { + header: Header, +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +struct Header { + music_detail_header_renderer: HeaderRenderer, +} + +#[derive(Debug, Deserialize)] +struct HeaderRenderer { + subtitle: TextRuns, +} + +#[derive(Debug, Serialize)] +#[serde(rename_all = "camelCase")] +struct QBrowse<'a> { + context: YTContext<'a>, + browse_id: &'a str, +} + +async fn get_album_type(query: &RustyPipeQuery, id: &str) -> String { + let context = query + .get_context(ClientType::DesktopMusic, true, None) + .await; + let body = QBrowse { + context, + browse_id: id, + }; + let response_txt = query + .raw(ClientType::DesktopMusic, "browse", &body) + .await + .unwrap(); + let album = serde_json::from_str::(&response_txt).unwrap(); + + album + .header + .music_detail_header_renderer + .subtitle + .runs + .into_iter() + .next() + .unwrap() + .text +} diff --git a/codegen/src/collect_large_numbers.rs b/codegen/src/collect_large_numbers.rs index 6effed1..ca2aee8 100644 --- a/codegen/src/collect_large_numbers.rs +++ b/codegen/src/collect_large_numbers.rs @@ -375,13 +375,11 @@ async fn get_channel(channel_id: &str, lang: Language) -> Result { .iter() .map(|itm| { ( - util::parse_numeric( - &itm.grid_video_renderer.view_count_text.simple_text, - ) - .unwrap(), + util::parse_numeric(&itm.grid_video_renderer.view_count_text.text) + .unwrap(), itm.grid_video_renderer .short_view_count_text - .simple_text + .text .to_owned(), ) }) diff --git a/codegen/src/gen_dictionary.rs b/codegen/src/gen_dictionary.rs index d302110..71d2faa 100644 --- a/codegen/src/gen_dictionary.rs +++ b/codegen/src/gen_dictionary.rs @@ -36,6 +36,7 @@ pub fn generate_dictionary(project_root: &Path) { let code_head = r#"// This file is automatically generated. DO NOT EDIT. // See codegen/gen_dictionary.rs for the generation code. use crate::{ + model::AlbumType, param::Language, timeago::{DateCmp, TaToken, TimeUnit}, }; @@ -75,6 +76,10 @@ pub(crate) struct Entry { /// /// Format: Parsed token -> decimal power pub number_tokens: phf::Map<&'static str, u8>, + /// Names of album types (Album, Single, ...) + /// + /// Format: Parsed text -> Album type + pub album_types: phf::Map<&'static str, AlbumType>, } "#; @@ -136,13 +141,20 @@ pub(crate) fn entry(lang: Language) -> Entry { number_tokens.entry(txt, &mag.to_string()); }); + // Album types + let mut album_types = phf_codegen::Map::<&str>::new(); + entry.album_types.iter().for_each(|(txt, album_type)| { + album_types.entry(txt, &format!("AlbumType::{:?}", album_type)); + }); + let code_ta_tokens = &ta_tokens.build().to_string().replace('\n', "\n "); let code_ta_nd_tokens = &ta_nd_tokens.build().to_string().replace('\n', "\n "); let code_months = &months.build().to_string().replace('\n', "\n "); let code_number_tokens = &number_tokens.build().to_string().replace('\n', "\n "); + let code_album_types = &album_types.build().to_string().replace('\n', "\n "); - let _ = write!(code_timeago_tokens, "{} => Entry {{\n by_char: {:?},\n timeago_tokens: {},\n date_order: {},\n months: {},\n timeago_nd_tokens: {},\n comma_decimal: {:?},\n number_tokens: {},\n }},\n ", - selector, entry.by_char, code_ta_tokens, date_order, code_months, code_ta_nd_tokens, entry.comma_decimal, code_number_tokens); + let _ = write!(code_timeago_tokens, "{} => Entry {{\n by_char: {:?},\n timeago_tokens: {},\n date_order: {},\n months: {},\n timeago_nd_tokens: {},\n comma_decimal: {:?},\n number_tokens: {},\n album_types: {},\n }},\n ", + selector, entry.by_char, code_ta_tokens, date_order, code_months, code_ta_nd_tokens, entry.comma_decimal, code_number_tokens, code_album_types); }); code_timeago_tokens = code_timeago_tokens.trim_end().to_owned() + "\n }\n}\n"; diff --git a/codegen/src/gen_locales.rs b/codegen/src/gen_locales.rs index 842dacb..16b125f 100644 --- a/codegen/src/gen_locales.rs +++ b/codegen/src/gen_locales.rs @@ -359,7 +359,7 @@ fn map_language_section(section: &CompactLinkRendererWrap) -> BTreeMap { collect_large_numbers::collect_large_numbers(&cli.project_root, cli.concurrency).await; } + Commands::CollectAlbumTypes => { + collect_album_types::collect_album_types(&cli.project_root, cli.concurrency).await; + } Commands::ParsePlaylistDates => { collect_playlist_dates::write_samples_to_dict(&cli.project_root) } Commands::ParseLargeNumbers => { collect_large_numbers::write_samples_to_dict(&cli.project_root) } + Commands::ParseAlbumTypes => collect_album_types::write_samples_to_dict(&cli.project_root), Commands::GenLocales => { gen_locales::generate_locales(&cli.project_root).await; } diff --git a/codegen/src/util.rs b/codegen/src/util.rs index 51f7fb8..e5244d3 100644 --- a/codegen/src/util.rs +++ b/codegen/src/util.rs @@ -1,6 +1,6 @@ use std::{collections::BTreeMap, fs::File, io::BufReader, path::Path, str::FromStr}; -use rustypipe::param::Language; +use rustypipe::{model::AlbumType, param::Language}; use serde::{Deserialize, Serialize}; const DICT_PATH: &str = "testfiles/dict/dictionary.json"; @@ -44,12 +44,21 @@ pub struct DictEntry { /// /// Format: Parsed token -> decimal power pub number_tokens: BTreeMap, + /// Names of album types (Album, Single, ...) + /// + /// Format: Parsed text -> Album type + pub album_types: BTreeMap, +} + +#[derive(Clone, Debug, Deserialize)] +pub struct TextRuns { + pub runs: Vec, } #[derive(Clone, Debug, Deserialize)] -#[serde(rename_all = "camelCase")] pub struct Text { - pub simple_text: String, + #[serde(alias = "simpleText")] + pub text: String, } pub fn read_dict(project_root: &Path) -> Dictionary { diff --git a/notes/video_ids.txt b/notes/video_ids.txt index 35096d4..71df147 100644 --- a/notes/video_ids.txt +++ b/notes/video_ids.txt @@ -68,5 +68,5 @@ Dec PL1J-6JOckZtHo91uApeb10Qlf2XhkfM-9 24.12.2021 Album: MPREb_nlBWQROfvjo Single: MPREb_bHfHGoy7vuv EP: MPREb_u1I69lSAe5v -Show: MPREb_cwzk8EUwypZ Audiobook: MPREb_gaoNzsQHedo +Show: MPREb_cwzk8EUwypZ diff --git a/src/client/music_playlist.rs b/src/client/music_playlist.rs index 7c928b1..6f362a2 100644 --- a/src/client/music_playlist.rs +++ b/src/client/music_playlist.rs @@ -201,7 +201,7 @@ impl MapResponse for response::MusicPlaylist { .unwrap_or_default(); let by_va = artists_txt == util::VARIOUS_ARTISTS; - let album_type = map_album_type(album_type_txt.as_str()); + let album_type = map_album_type(album_type_txt.as_str(), lang); let year = year_txt.and_then(|txt| util::parse_numeric(&txt).ok()); let mut mapper = match by_va { diff --git a/src/client/response/music_item.rs b/src/client/response/music_item.rs index 46bbf99..cb08835 100644 --- a/src/client/response/music_item.rs +++ b/src/client/response/music_item.rs @@ -11,7 +11,7 @@ use crate::{ text::{Text, TextComponents}, MapResult, VecLogError, }, - util::{self, TryRemove}, + util::{self, dictionary, TryRemove}, }; use super::{ @@ -278,7 +278,7 @@ impl MusicListMapper { } PageType::Album => { let album_type = subtitle_p1 - .map(|st| map_album_type(st.first_str())) + .map(|st| map_album_type(st.first_str(), self.lang)) .unwrap_or_default(); let (artists, artists_txt) = map_artists(subtitle_p2); @@ -469,12 +469,12 @@ impl MusicListMapper { true, ) => { year = util::parse_numeric(year_txt.first_str()).ok(); - album_type = map_album_type(atype_txt.first_str()); + album_type = map_album_type(atype_txt.first_str(), self.lang); (artists.clone(), artists_txt.clone()) } // "Album", <"Oonagh"> (Album variants, new releases) (Some(atype_txt), Some(p2), _, false) => { - album_type = map_album_type(atype_txt.first_str()); + album_type = map_album_type(atype_txt.first_str(), self.lang); map_artists(Some(p2)) } _ => { @@ -612,11 +612,10 @@ pub(crate) fn map_artists(artists_p: Option) -> (Vec, (artists, artists_txt) } -pub(crate) fn map_album_type(txt: &str) -> AlbumType { - // TODO: add support for different languages - match txt { - "Single" => AlbumType::Single, - "EP" => AlbumType::Ep, - _ => AlbumType::Album, - } +pub(crate) fn map_album_type(txt: &str, lang: Language) -> AlbumType { + dictionary::entry(lang) + .album_types + .get(&txt.to_lowercase()) + .copied() + .unwrap_or_default() } diff --git a/src/model/mod.rs b/src/model/mod.rs index e40e105..41fd5eb 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -598,7 +598,9 @@ pub struct ChannelTag { */ /// Verification status of a channel -#[derive(Default, Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)] +#[derive( + Default, Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, +)] #[non_exhaustive] pub enum Verification { #[default] @@ -954,7 +956,9 @@ pub struct MusicPlaylistItem { } /// YouTube Music album type -#[derive(Default, Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[derive( + Default, Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, +)] #[non_exhaustive] pub enum AlbumType { /// Regular album (default) @@ -964,6 +968,10 @@ pub enum AlbumType { Ep, /// Single Single, + /// Audiobook + Audiobook, + /// Show (audio drama) + Show, } /// Album identifier @@ -1059,7 +1067,7 @@ pub enum MusicItem { Playlist(MusicPlaylistItem), } -#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum MusicEntityType { Track, Album, diff --git a/src/util/dictionary.rs b/src/util/dictionary.rs index 0e316f0..92e04a0 100644 --- a/src/util/dictionary.rs +++ b/src/util/dictionary.rs @@ -1,6 +1,7 @@ // This file is automatically generated. DO NOT EDIT. // See codegen/gen_dictionary.rs for the generation code. use crate::{ + model::AlbumType, param::Language, timeago::{DateCmp, TaToken, TimeUnit}, }; @@ -40,6 +41,10 @@ pub(crate) struct Entry { /// /// Format: Parsed token -> decimal power pub number_tokens: phf::Map<&'static str, u8>, + /// Names of album types (Album, Single, ...) + /// + /// Format: Parsed text -> Album type + pub album_types: phf::Map<&'static str, AlbumType>, } #[rustfmt::skip] @@ -114,6 +119,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("m", 6), ], }, + album_types: ::phf::Map { + key: 2980949210194914378, + disps: &[ + (0, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("drama", AlbumType::Show), + ("oudioboek", AlbumType::Audiobook), + ("ep", AlbumType::Ep), + ("enkelsnit", AlbumType::Single), + ], + }, }, Language::Am => Entry { by_char: false, @@ -186,6 +204,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ቢ", 9), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (4, 0), + ], + entries: &[ + ("ነጠላ", AlbumType::Single), + ("የተራዘመ አልበም", AlbumType::Ep), + ("ኦዲዮ መጽሐፍ", AlbumType::Audiobook), + ("ትዕይንት", AlbumType::Show), + ("አልበም", AlbumType::Album), + ], + }, }, Language::Ar => Entry { by_char: false, @@ -256,6 +287,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("مليار", 9), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (1, 0), + ], + entries: &[ + ("ألبوم", AlbumType::Album), + ("ألبوم قصير", AlbumType::Ep), + ("أغنية منفردة", AlbumType::Single), + ("عرض", AlbumType::Show), + ("الكتب المسموعة", AlbumType::Audiobook), + ], + }, }, Language::As => Entry { by_char: false, @@ -307,6 +351,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ল\u{9be}খট\u{9be}", 5), ], }, + album_types: ::phf::Map { + key: 14108922650502679131, + disps: &[ + (4, 0), + ], + entries: &[ + ("এলব\u{9be}ম", AlbumType::Album), + ("একক", AlbumType::Single), + ("অডিঅ’ব\u{9c1}ক", AlbumType::Audiobook), + ("শ\u{9cd}ব’", AlbumType::Show), + ("ep", AlbumType::Ep), + ], + }, }, Language::Az => Entry { by_char: false, @@ -370,6 +427,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mln", 6), ], }, + album_types: ::phf::Map { + key: 7485420634051515786, + disps: &[ + (0, 0), + ], + entries: &[ + ("albom", AlbumType::Album), + ("audio kitab", AlbumType::Audiobook), + ("şou", AlbumType::Show), + ("tək", AlbumType::Single), + ("ep", AlbumType::Ep), + ], + }, }, Language::Be => Entry { by_char: false, @@ -454,6 +524,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("тыс", 3), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (2, 0), + ], + entries: &[ + ("альбом", AlbumType::Album), + ("шоу", AlbumType::Show), + ("сінгл", AlbumType::Single), + ("аўдыякніга", AlbumType::Audiobook), + ("міні-альбом", AlbumType::Ep), + ], + }, }, Language::Bg => Entry { by_char: false, @@ -511,6 +594,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("млн", 6), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (3, 0), + ], + entries: &[ + ("сингъл", AlbumType::Single), + ("албум", AlbumType::Album), + ("аудиокнига", AlbumType::Audiobook), + ("миниалбум", AlbumType::Ep), + ("предаване", AlbumType::Show), + ], + }, }, Language::Bn => Entry { by_char: false, @@ -576,6 +672,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("কোটি", 7), ], }, + album_types: ::phf::Map { + key: 7485420634051515786, + disps: &[ + (0, 0), + ], + entries: &[ + ("সিঙ\u{9cd}গেল", AlbumType::Single), + ("শো", AlbumType::Show), + ("ইপি", AlbumType::Ep), + ("অডিওব\u{9c1}ক", AlbumType::Audiobook), + ("অ\u{9cd}য\u{9be}লব\u{9be}ম", AlbumType::Album), + ], + }, }, Language::Bs => Entry { by_char: false, @@ -654,6 +763,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mil", 6), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (4, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("audio knjiga", AlbumType::Audiobook), + ("serija", AlbumType::Show), + ("singl", AlbumType::Single), + ("ep", AlbumType::Ep), + ], + }, }, Language::Ca => Entry { by_char: false, @@ -726,6 +848,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("m", 3), ], }, + album_types: ::phf::Map { + key: 106375038446233661, + disps: &[ + (3, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("àlbum", AlbumType::Album), + ("single", AlbumType::Single), + ("programa", AlbumType::Show), + ("audiollibre", AlbumType::Audiobook), + ], + }, }, Language::Cs => Entry { by_char: false, @@ -784,6 +919,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mil", 6), ], }, + album_types: ::phf::Map { + key: 14108922650502679131, + disps: &[ + (3, 0), + ], + entries: &[ + ("zobrazit", AlbumType::Show), + ("audiokniha", AlbumType::Audiobook), + ("singl", AlbumType::Single), + ("ep", AlbumType::Ep), + ("album", AlbumType::Album), + ], + }, }, Language::Da => Entry { by_char: false, @@ -854,6 +1002,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mia", 9), ], }, + album_types: ::phf::Map { + key: 14108922650502679131, + disps: &[ + (4, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("lyddrama", AlbumType::Show), + ("single", AlbumType::Single), + ("lydbog", AlbumType::Audiobook), + ("ep", AlbumType::Ep), + ], + }, }, Language::De => Entry { by_char: false, @@ -910,6 +1071,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("Mio", 6), ], }, + album_types: ::phf::Map { + key: 2980949210194914378, + disps: &[ + (0, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("hörbuch", AlbumType::Audiobook), + ("single", AlbumType::Single), + ("ep", AlbumType::Ep), + ("hörspiel", AlbumType::Show), + ], + }, }, Language::El => Entry { by_char: false, @@ -982,6 +1156,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("δισ", 9), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (1, 0), + ], + entries: &[ + ("ηχητικό βιβλίο", AlbumType::Audiobook), + ("single", AlbumType::Single), + ("ep", AlbumType::Ep), + ("εκπομπή", AlbumType::Show), + ("άλμπουμ", AlbumType::Album), + ], + }, }, Language::En | Language::EnGb | Language::EnIn => Entry { by_char: false, @@ -1056,6 +1243,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("B", 9), ], }, + album_types: ::phf::Map { + key: 8694567506910003252, + disps: &[ + (3, 0), + ], + entries: &[ + ("show", AlbumType::Show), + ("ep", AlbumType::Ep), + ("single", AlbumType::Single), + ("album", AlbumType::Album), + ("audiobook", AlbumType::Audiobook), + ], + }, }, Language::Es => Entry { by_char: false, @@ -1127,6 +1327,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("M", 6), ], }, + album_types: ::phf::Map { + key: 2126027241312876569, + disps: &[ + (2, 0), + ], + entries: &[ + ("álbum", AlbumType::Album), + ("single", AlbumType::Single), + ("audiolibro", AlbumType::Audiobook), + ("audiodrama", AlbumType::Show), + ("ep", AlbumType::Ep), + ], + }, }, Language::EsUs | Language::Es419 => Entry { by_char: false, @@ -1198,6 +1411,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("M", 6), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (0, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("audiolibro", AlbumType::Audiobook), + ("sencillo", AlbumType::Single), + ("programa", AlbumType::Show), + ("álbum", AlbumType::Album), + ], + }, }, Language::Et => Entry { by_char: false, @@ -1273,6 +1499,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("tuh", 3), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (3, 0), + ], + entries: &[ + ("sari", AlbumType::Show), + ("singel", AlbumType::Single), + ("ep", AlbumType::Ep), + ("audioraamat", AlbumType::Audiobook), + ("album", AlbumType::Album), + ], + }, }, Language::Eu => Entry { by_char: false, @@ -1338,6 +1577,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("M", 6), ], }, + album_types: ::phf::Map { + key: 2980949210194914378, + disps: &[ + (4, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("singlea", AlbumType::Single), + ("saioa", AlbumType::Show), + ("audio-liburua", AlbumType::Audiobook), + ("albuma", AlbumType::Album), + ], + }, }, Language::Fa => Entry { by_char: false, @@ -1402,6 +1654,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("هزار", 3), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (3, 0), + ], + entries: &[ + ("آلبوم", AlbumType::Album), + ("تک آهنگ", AlbumType::Single), + ("نمایش", AlbumType::Show), + ("پخش فوق\u{200c}العاده", AlbumType::Ep), + ("کتاب صوتی", AlbumType::Audiobook), + ], + }, }, Language::Fi => Entry { by_char: false, @@ -1459,6 +1724,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("milj", 6), ], }, + album_types: ::phf::Map { + key: 8602556344903797927, + disps: &[ + (1, 0), + ], + entries: &[ + ("äänikirja", AlbumType::Audiobook), + ("single", AlbumType::Single), + ("albumi", AlbumType::Album), + ("näytä", AlbumType::Show), + ("ep", AlbumType::Ep), + ], + }, }, Language::Fil => Entry { by_char: false, @@ -1522,6 +1800,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("B", 9), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (3, 0), + ], + entries: &[ + ("audiobook", AlbumType::Audiobook), + ("single", AlbumType::Single), + ("palabas", AlbumType::Show), + ("album", AlbumType::Album), + ("ep", AlbumType::Ep), + ], + }, }, Language::Fr | Language::FrCa => Entry { by_char: false, @@ -1594,6 +1885,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("Md", 9), ], }, + album_types: ::phf::Map { + key: 2980949210194914378, + disps: &[ + (2, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("émission", AlbumType::Show), + ("ep", AlbumType::Ep), + ("livre audio", AlbumType::Audiobook), + ("single", AlbumType::Single), + ], + }, }, Language::Gl => Entry { by_char: false, @@ -1664,6 +1968,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("M", 6), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (1, 0), + ], + entries: &[ + ("álbum", AlbumType::Album), + ("single", AlbumType::Single), + ("ep", AlbumType::Ep), + ("programa", AlbumType::Show), + ("audiolibro", AlbumType::Audiobook), + ], + }, }, Language::Gu => Entry { by_char: false, @@ -1729,6 +2046,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("લાખ", 5), ], }, + album_types: ::phf::Map { + key: 2980949210194914378, + disps: &[ + (4, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("આલ\u{acd}બમ", AlbumType::Album), + ("શો", AlbumType::Show), + ("ઑડિયોબ\u{ac1}ક", AlbumType::Audiobook), + ("સિ\u{a82}ગલ", AlbumType::Single), + ], + }, }, Language::Hi => Entry { by_char: false, @@ -1794,6 +2124,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("अ॰", 9), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (3, 0), + ], + entries: &[ + ("ऑडियो ब\u{941}क", AlbumType::Audiobook), + ("शो", AlbumType::Show), + ("सि\u{902}गल", AlbumType::Single), + ("ईपी", AlbumType::Ep), + ("एल\u{94d}\u{200d}बम", AlbumType::Album), + ], + }, }, Language::Hr => Entry { by_char: false, @@ -1872,6 +2215,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mil", 6), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (1, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("serija", AlbumType::Show), + ("audioknjiga", AlbumType::Audiobook), + ("album", AlbumType::Album), + ("singl", AlbumType::Single), + ], + }, }, Language::Hu => Entry { by_char: false, @@ -1944,6 +2300,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("M", 6), ], }, + album_types: ::phf::Map { + key: 2980949210194914378, + disps: &[ + (2, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("kislemez", AlbumType::Single), + ("ep", AlbumType::Ep), + ("hangoskönyv", AlbumType::Audiobook), + ("műsor", AlbumType::Show), + ], + }, }, Language::Hy => Entry { by_char: false, @@ -2008,6 +2377,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("մլրդ", 9), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (1, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("աուդիոդրամա", AlbumType::Show), + ("աուդիոգիրք", AlbumType::Audiobook), + ("սինգլ", AlbumType::Single), + ("ալբոմ", AlbumType::Album), + ], + }, }, Language::Id => Entry { by_char: false, @@ -2072,6 +2454,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("rb", 3), ], }, + album_types: ::phf::Map { + key: 7485420634051515786, + disps: &[ + (4, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("single", AlbumType::Single), + ("buku audio", AlbumType::Audiobook), + ("album", AlbumType::Album), + ("acara", AlbumType::Show), + ], + }, }, Language::Is => Entry { by_char: false, @@ -2144,6 +2539,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("m", 6), ], }, + album_types: ::phf::Map { + key: 12213676231523076107, + disps: &[ + (3, 0), + ], + entries: &[ + ("hljóðbók", AlbumType::Audiobook), + ("þáttur", AlbumType::Show), + ("smáskífa", AlbumType::Single), + ("plata", AlbumType::Album), + ("ep", AlbumType::Ep), + ], + }, }, Language::It => Entry { by_char: false, @@ -2215,6 +2623,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("Mln", 6), ], }, + album_types: ::phf::Map { + key: 14108922650502679131, + disps: &[ + (1, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("audiolibro", AlbumType::Audiobook), + ("album", AlbumType::Album), + ("singolo", AlbumType::Single), + ("programma", AlbumType::Show), + ], + }, }, Language::Iw => Entry { by_char: false, @@ -2294,6 +2715,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("\u{202b}K\u{200f}\u{202c}", 3), ], }, + album_types: ::phf::Map { + key: 7485420634051515786, + disps: &[ + (1, 0), + ], + entries: &[ + ("אלבום", AlbumType::Album), + ("תסכית", AlbumType::Show), + ("מיני-אלבום", AlbumType::Ep), + ("ספר אודיו", AlbumType::Audiobook), + ("סינגל", AlbumType::Single), + ], + }, }, Language::Ja => Entry { by_char: true, @@ -2342,6 +2776,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("億", 8), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (2, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("アルバム", AlbumType::Album), + ("シングル", AlbumType::Single), + ("オーディオブック", AlbumType::Audiobook), + ("表示", AlbumType::Show), + ], + }, }, Language::Ka => Entry { by_char: false, @@ -2406,6 +2853,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ათ", 3), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (3, 0), + ], + entries: &[ + ("მინი-ალბომი", AlbumType::Ep), + ("აუდიოწიგნი", AlbumType::Audiobook), + ("ალბომი", AlbumType::Album), + ("ჩვენება", AlbumType::Show), + ("სინგლი", AlbumType::Single), + ], + }, }, Language::Kk => Entry { by_char: false, @@ -2471,6 +2931,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("млн", 6), ], }, + album_types: ::phf::Map { + key: 351906021642186605, + disps: &[ + (4, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("аудиокітап", AlbumType::Audiobook), + ("шоу", AlbumType::Show), + ("сингл", AlbumType::Single), + ("альбом", AlbumType::Album), + ], + }, }, Language::Km => Entry { by_char: false, @@ -2535,6 +3008,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ពាន\u{17cb}", 3), ], }, + album_types: ::phf::Map { + key: 12213676231523076107, + disps: &[ + (2, 0), + ], + entries: &[ + ("អាល\u{17cb}ប\u{17ca}\u{17bb}ម", AlbumType::Album), + ("សៀវភៅ\u{200b}ជា\u{200b}ស\u{17c6}ឡេង", AlbumType::Audiobook), + ("កម\u{17d2}មវ\u{17b7}ធ\u{17b8}ទ\u{17bc}រទស\u{17d2}សន\u{17cd}", AlbumType::Show), + ("ep", AlbumType::Ep), + ("ចម\u{17d2}រៀងទោល", AlbumType::Single), + ], + }, }, Language::Kn => Entry { by_char: false, @@ -2606,6 +3092,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ಲಕ\u{ccd}ಷ", 5), ], }, + album_types: ::phf::Map { + key: 9826310008611304355, + disps: &[ + (2, 0), + ], + entries: &[ + ("ಆಡ\u{cbf}ಯೋಬುಕ\u{ccd}", AlbumType::Audiobook), + ("ಶೋ", AlbumType::Show), + ("ಒಂದೇ", AlbumType::Single), + ("ep", AlbumType::Ep), + ("ಆಲ\u{ccd}ಬಮ\u{ccd}", AlbumType::Album), + ], + }, }, Language::Ko => Entry { by_char: false, @@ -2654,6 +3153,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("만회", 4), ], }, + album_types: ::phf::Map { + key: 12213676231523076107, + disps: &[ + (2, 0), + ], + entries: &[ + ("표시", AlbumType::Show), + ("오디오북", AlbumType::Audiobook), + ("앨범", AlbumType::Album), + ("ep", AlbumType::Ep), + ("싱글", AlbumType::Single), + ], + }, }, Language::Ky => Entry { by_char: false, @@ -2718,6 +3230,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("миң", 3), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (2, 0), + ], + entries: &[ + ("альбом", AlbumType::Album), + ("шоу", AlbumType::Show), + ("аудиокитеп", AlbumType::Audiobook), + ("сингл", AlbumType::Single), + ("чакан альбом", AlbumType::Ep), + ], + }, }, Language::Lo => Entry { by_char: false, @@ -2783,6 +3308,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ພ\u{eb1}ນ", 3), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (2, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("ຊ\u{eb4}ງເກ\u{eb4}ນ", AlbumType::Single), + ("ອະລະບ\u{ecd}\u{ec9}າ", AlbumType::Album), + ("ປ\u{eb6}\u{ec9}ມສຽງ", AlbumType::Audiobook), + ("ສະແດງ", AlbumType::Show), + ], + }, }, Language::Lt => Entry { by_char: false, @@ -2849,6 +3387,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("tūkst", 3), ], }, + album_types: ::phf::Map { + key: 7485420634051515786, + disps: &[ + (3, 0), + ], + entries: &[ + ("mini albumas", AlbumType::Ep), + ("serialas", AlbumType::Show), + ("singlas", AlbumType::Single), + ("albumas", AlbumType::Album), + ("garsinė knyga", AlbumType::Audiobook), + ], + }, }, Language::Lv => Entry { by_char: false, @@ -2921,6 +3472,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("tūkst", 3), ], }, + album_types: ::phf::Map { + key: 8694567506910003252, + disps: &[ + (3, 0), + ], + entries: &[ + ("singls", AlbumType::Single), + ("audiogrāmata", AlbumType::Audiobook), + ("albums", AlbumType::Album), + ("ep ieraksts", AlbumType::Ep), + ("pārraide", AlbumType::Show), + ], + }, }, Language::Mk => Entry { by_char: false, @@ -2979,6 +3543,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("М", 6), ], }, + album_types: ::phf::Map { + key: 7485420634051515786, + disps: &[ + (1, 0), + ], + entries: &[ + ("аудиокнига", AlbumType::Audiobook), + ("ep", AlbumType::Ep), + ("албум", AlbumType::Album), + ("сингл", AlbumType::Single), + ("серија", AlbumType::Show), + ], + }, }, Language::Ml => Entry { by_char: false, @@ -3042,6 +3619,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("കോടി", 7), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (1, 0), + ], + entries: &[ + ("സിംഗിൾ", AlbumType::Single), + ("ഓഡിയോ ബ\u{d41}ക\u{d4d}ക\u{d4d}", AlbumType::Audiobook), + ("ep", AlbumType::Ep), + ("ഷോ", AlbumType::Show), + ("ആല\u{d4d}\u{200d}\u{200c}ബം", AlbumType::Album), + ], + }, }, Language::Mn => Entry { by_char: false, @@ -3091,6 +3681,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("мянга", 3), ], }, + album_types: ::phf::Map { + key: 8694567506910003252, + disps: &[ + (3, 0), + ], + entries: &[ + ("сингл", AlbumType::Single), + ("ep", AlbumType::Ep), + ("жүжиг", AlbumType::Show), + ("аудио ном", AlbumType::Audiobook), + ("цомог", AlbumType::Album), + ], + }, }, Language::Mr => Entry { by_char: false, @@ -3164,6 +3767,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("कोटी", 7), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (0, 0), + ], + entries: &[ + ("भाग", AlbumType::Ep), + ("सि\u{902}गल", AlbumType::Single), + ("अल\u{94d}बम", AlbumType::Album), + ("ऑडिओब\u{941}क", AlbumType::Audiobook), + ("शो", AlbumType::Show), + ], + }, }, Language::Ms => Entry { by_char: false, @@ -3227,6 +3843,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("B", 9), ], }, + album_types: ::phf::Map { + key: 7485420634051515786, + disps: &[ + (0, 0), + ], + entries: &[ + ("rekod single", AlbumType::Single), + ("album", AlbumType::Album), + ("buku audio", AlbumType::Audiobook), + ("rancangan", AlbumType::Show), + ("ep", AlbumType::Ep), + ], + }, }, Language::My => Entry { by_char: false, @@ -3296,6 +3925,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("သ\u{102d}န\u{103a}း", 5), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (1, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("တစ\u{103a}က\u{102d}\u{102f}ယ\u{103a}တော\u{103a}", AlbumType::Single), + ("ရ\u{103e}\u{102d}\u{102f}း", AlbumType::Show), + ("အယ\u{103a}လ\u{103a}ဘမ\u{103a}", AlbumType::Album), + ("အော\u{103a}ဒ\u{102e}ယ\u{102d}\u{102f}စာအ\u{102f}ပ\u{103a}", AlbumType::Audiobook), + ], + }, }, Language::Ne => Entry { by_char: false, @@ -3361,6 +4003,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("लाख", 5), ], }, + album_types: ::phf::Map { + key: 6581282999337146909, + disps: &[ + (2, 0), + ], + entries: &[ + ("एकल एल\u{94d}बम", AlbumType::Single), + ("ep", AlbumType::Ep), + ("एल\u{94d}बम", AlbumType::Album), + ("टिभी सो", AlbumType::Show), + ("अडियोब\u{941}क", AlbumType::Audiobook), + ], + }, }, Language::Nl => Entry { by_char: false, @@ -3430,6 +4085,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mln", 6), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (4, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("single", AlbumType::Single), + ("audioboek", AlbumType::Audiobook), + ("aflevering", AlbumType::Show), + ("ep", AlbumType::Ep), + ], + }, }, Language::No => Entry { by_char: false, @@ -3501,6 +4169,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mill", 6), ], }, + album_types: ::phf::Map { + key: 12213676231523076107, + disps: &[ + (3, 0), + ], + entries: &[ + ("singel", AlbumType::Single), + ("album", AlbumType::Album), + ("hørespill", AlbumType::Show), + ("lydbok", AlbumType::Audiobook), + ("ep", AlbumType::Ep), + ], + }, }, Language::Or => Entry { by_char: false, @@ -3565,6 +4246,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ହଟ\u{b3f}", 3), ], }, + album_types: ::phf::Map { + key: 2126027241312876569, + disps: &[ + (0, 0), + ], + entries: &[ + ("ଶୋ", AlbumType::Show), + ("ସ\u{b3f}ଙ\u{b4d}ଗଲ\u{b4d}", AlbumType::Single), + ("ଅଡ\u{b3f}ଓବ\u{b41}କ\u{b4d}", AlbumType::Audiobook), + ("ଆଲବମ\u{b4d}", AlbumType::Album), + ("ep", AlbumType::Ep), + ], + }, }, Language::Pa => Entry { by_char: false, @@ -3633,6 +4327,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ਅਰਬ", 9), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (0, 0), + ], + entries: &[ + ("ਆਡੀਓ-ਕਿਤਾਬ", AlbumType::Audiobook), + ("ਸਿ\u{a70}ਗਲ", AlbumType::Single), + ("ਐਲਬਮ", AlbumType::Album), + ("ep", AlbumType::Ep), + ("ਸ\u{a3c}\u{a4b}ਅ", AlbumType::Show), + ], + }, }, Language::Pl => Entry { by_char: false, @@ -3711,6 +4418,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("tys", 3), ], }, + album_types: ::phf::Map { + key: 351906021642186605, + disps: &[ + (1, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("słuchowisko", AlbumType::Show), + ("singiel", AlbumType::Single), + ("ep", AlbumType::Ep), + ("audiobook", AlbumType::Audiobook), + ], + }, }, Language::Pt => Entry { by_char: false, @@ -3783,6 +4503,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mil", 3), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (2, 0), + ], + entries: &[ + ("álbum", AlbumType::Album), + ("ep", AlbumType::Ep), + ("single", AlbumType::Single), + ("programa", AlbumType::Show), + ("audiolivro", AlbumType::Audiobook), + ], + }, }, Language::PtPt => Entry { by_char: false, @@ -3840,6 +4573,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mil", 3), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (1, 0), + ], + entries: &[ + ("álbum", AlbumType::Album), + ("single", AlbumType::Single), + ("ep", AlbumType::Ep), + ("programa", AlbumType::Show), + ("livro áudio", AlbumType::Audiobook), + ], + }, }, Language::Ro => Entry { by_char: false, @@ -3911,6 +4657,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mld", 9), ], }, + album_types: ::phf::Map { + key: 7827257779606437632, + disps: &[ + (0, 0), + ], + entries: &[ + ("emisiune", AlbumType::Show), + ("ep", AlbumType::Ep), + ("carte audio", AlbumType::Audiobook), + ("single", AlbumType::Single), + ("album", AlbumType::Album), + ], + }, }, Language::Ru => Entry { by_char: false, @@ -3990,6 +4749,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("тыс", 3), ], }, + album_types: ::phf::Map { + key: 345707026197253659, + disps: &[ + (0, 0), + ], + entries: &[ + ("сингл", AlbumType::Single), + ("ep", AlbumType::Ep), + ("аудиокнига", AlbumType::Audiobook), + ("альбом", AlbumType::Album), + ("аудиошоу", AlbumType::Show), + ], + }, }, Language::Si => Entry { by_char: false, @@ -4055,6 +4827,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ද", 3), ], }, + album_types: ::phf::Map { + key: 2126027241312876569, + disps: &[ + (0, 0), + ], + entries: &[ + ("සංදර\u{dca}ශනය", AlbumType::Show), + ("ශ\u{dca}\u{200d}රව\u{dca}\u{200d}යපොත", AlbumType::Audiobook), + ("තන\u{dd2}", AlbumType::Single), + ("ද\u{dd3}ව\u{dcf}", AlbumType::Ep), + ("ඇල\u{dca}බමය", AlbumType::Album), + ], + }, }, Language::Sk => Entry { by_char: false, @@ -4112,6 +4897,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mil", 6), ], }, + album_types: ::phf::Map { + key: 4066803471364472071, + disps: &[ + (3, 0), + ], + entries: &[ + ("relácia", AlbumType::Show), + ("album", AlbumType::Album), + ("singel", AlbumType::Single), + ("ep", AlbumType::Ep), + ("audiokniha", AlbumType::Audiobook), + ], + }, }, Language::Sl => Entry { by_char: false, @@ -4194,6 +4992,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mrd", 9), ], }, + album_types: ::phf::Map { + key: 10121458955350035957, + disps: &[ + (4, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("singel", AlbumType::Single), + ("oddaja", AlbumType::Show), + ("zvočna knjiga", AlbumType::Audiobook), + ("ep", AlbumType::Ep), + ], + }, }, Language::Sq => Entry { by_char: false, @@ -4261,6 +5072,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mijë", 3), ], }, + album_types: ::phf::Map { + key: 2980949210194914378, + disps: &[ + (2, 0), + ], + entries: &[ + ("album", AlbumType::Album), + ("shfaq", AlbumType::Show), + ("ep", AlbumType::Ep), + ("libër me audio", AlbumType::Audiobook), + ("single", AlbumType::Single), + ], + }, }, Language::Sr => Entry { by_char: false, @@ -4321,6 +5145,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("хиљ", 3), ], }, + album_types: ::phf::Map { + key: 106375038446233661, + disps: &[ + (2, 0), + ], + entries: &[ + ("аудио-књига", AlbumType::Audiobook), + ("ep", AlbumType::Ep), + ("сингл", AlbumType::Single), + ("албум", AlbumType::Album), + ("серија", AlbumType::Show), + ], + }, }, Language::SrLatn => Entry { by_char: false, @@ -4382,6 +5219,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("mil", 6), ], }, + album_types: ::phf::Map { + key: 8694567506910003252, + disps: &[ + (4, 0), + ], + entries: &[ + ("audio-knjiga", AlbumType::Audiobook), + ("singl", AlbumType::Single), + ("ep", AlbumType::Ep), + ("album", AlbumType::Album), + ("serija", AlbumType::Show), + ], + }, }, Language::Sv => Entry { by_char: false, @@ -4452,6 +5302,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("md", 9), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (0, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("ljuddrama", AlbumType::Show), + ("ljudbok", AlbumType::Audiobook), + ("album", AlbumType::Album), + ("singel", AlbumType::Single), + ], + }, }, Language::Sw => Entry { by_char: false, @@ -4518,6 +5381,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("M", 6), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (2, 0), + ], + entries: &[ + ("singo", AlbumType::Single), + ("ep", AlbumType::Ep), + ("albamu", AlbumType::Album), + ("kitabu cha kusikiliza", AlbumType::Audiobook), + ("kipindi", AlbumType::Show), + ], + }, }, Language::Ta => Entry { by_char: false, @@ -4588,6 +5464,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("கோடி", 7), ], }, + album_types: ::phf::Map { + key: 106375038446233661, + disps: &[ + (0, 0), + ], + entries: &[ + ("சிங\u{bcd}கிள\u{bcd}", AlbumType::Single), + ("ஆல\u{bcd}பம\u{bcd}", AlbumType::Album), + ("ep", AlbumType::Ep), + ("ஆடியோ ஷோ", AlbumType::Show), + ("ஆடியோ புத\u{bcd}தகம\u{bcd}", AlbumType::Audiobook), + ], + }, }, Language::Te => Entry { by_char: false, @@ -4660,6 +5549,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("లక\u{c4d}షలు", 5), ], }, + album_types: ::phf::Map { + key: 345707026197253659, + disps: &[ + (3, 0), + ], + entries: &[ + ("ఆడ\u{c3f}య\u{c4b}బుక\u{c4d}", AlbumType::Audiobook), + ("ఆల\u{c4d}బమ\u{c4d}", AlbumType::Album), + ("ep", AlbumType::Ep), + ("చూప\u{c3f}ంచు", AlbumType::Show), + ("స\u{c3f}ంగ\u{c3f}ల\u{c4d}", AlbumType::Single), + ], + }, }, Language::Th => Entry { by_char: false, @@ -4728,6 +5630,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ล\u{e49}าน", 6), ], }, + album_types: ::phf::Map { + key: 8694567506910003252, + disps: &[ + (1, 0), + ], + entries: &[ + ("หน\u{e31}งส\u{e37}อเส\u{e35}ยง", AlbumType::Audiobook), + ("รายการ", AlbumType::Show), + ("ซ\u{e34}งเก\u{e34}ล", AlbumType::Single), + ("ep", AlbumType::Ep), + ("อ\u{e31}ลบ\u{e31}\u{e49}ม", AlbumType::Album), + ], + }, }, Language::Tr => Entry { by_char: false, @@ -4792,6 +5707,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("B", 3), ], }, + album_types: ::phf::Map { + key: 4066803471364472071, + disps: &[ + (3, 0), + ], + entries: &[ + ("sesli kitap", AlbumType::Audiobook), + ("single", AlbumType::Single), + ("program", AlbumType::Show), + ("ep", AlbumType::Ep), + ("albüm", AlbumType::Album), + ], + }, }, Language::Uk => Entry { by_char: false, @@ -4871,6 +5799,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("млн", 6), ], }, + album_types: ::phf::Map { + key: 14108922650502679131, + disps: &[ + (1, 0), + ], + entries: &[ + ("сингл", AlbumType::Single), + ("альбом", AlbumType::Album), + ("аудіокнига", AlbumType::Audiobook), + ("мініальбом", AlbumType::Ep), + ("аудіодрама", AlbumType::Show), + ], + }, }, Language::Ur => Entry { by_char: false, @@ -4943,6 +5884,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("لاکھ", 5), ], }, + album_types: ::phf::Map { + key: 106375038446233661, + disps: &[ + (0, 0), + ], + entries: &[ + ("آڈیو بک", AlbumType::Audiobook), + ("البم", AlbumType::Album), + ("ep", AlbumType::Ep), + ("واحد", AlbumType::Single), + ("شو", AlbumType::Show), + ], + }, }, Language::Uz => Entry { by_char: false, @@ -5007,6 +5961,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("ming", 3), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (1, 0), + ], + entries: &[ + ("shou", AlbumType::Show), + ("ep", AlbumType::Ep), + ("albom", AlbumType::Album), + ("singl", AlbumType::Single), + ("audiokitob", AlbumType::Audiobook), + ], + }, }, Language::Vi => Entry { by_char: false, @@ -5057,6 +6024,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("N", 3), ], }, + album_types: ::phf::Map { + key: 7485420634051515786, + disps: &[ + (2, 0), + ], + entries: &[ + ("đĩa đơn", AlbumType::Single), + ("đĩa nhạc mở rộng (ep)", AlbumType::Ep), + ("chương trình", AlbumType::Show), + ("sách nói", AlbumType::Audiobook), + ("đĩa nhạc", AlbumType::Album), + ], + }, }, Language::ZhCn => Entry { by_char: true, @@ -5105,6 +6085,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("亿", 8), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (3, 0), + ], + entries: &[ + ("迷你专辑", AlbumType::Ep), + ("有声读物", AlbumType::Audiobook), + ("专辑", AlbumType::Album), + ("广播剧", AlbumType::Show), + ("单曲", AlbumType::Single), + ], + }, }, Language::ZhHk => Entry { by_char: true, @@ -5154,6 +6147,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("B", 9), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (0, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("有聲書", AlbumType::Audiobook), + ("專輯", AlbumType::Album), + ("節目", AlbumType::Show), + ("單曲", AlbumType::Single), + ], + }, }, Language::ZhTw => Entry { by_char: true, @@ -5202,6 +6208,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("億", 8), ], }, + album_types: ::phf::Map { + key: 15467950696543387533, + disps: &[ + (0, 0), + ], + entries: &[ + ("ep", AlbumType::Ep), + ("有聲書", AlbumType::Audiobook), + ("專輯", AlbumType::Album), + ("節目", AlbumType::Show), + ("單曲", AlbumType::Single), + ], + }, }, Language::Zu => Entry { by_char: false, @@ -5273,6 +6292,19 @@ pub(crate) fn entry(lang: Language) -> Entry { ("B", 9), ], }, + album_types: ::phf::Map { + key: 12913932095322966823, + disps: &[ + (2, 0), + ], + entries: &[ + ("i-albhamu", AlbumType::Album), + ("i-audiobook", AlbumType::Audiobook), + ("i-single", AlbumType::Single), + ("bonisa", AlbumType::Show), + ("i-ep", AlbumType::Ep), + ], + }, }, } } diff --git a/testfiles/dict/album_type_samples.json b/testfiles/dict/album_type_samples.json new file mode 100644 index 0000000..c3869d3 --- /dev/null +++ b/testfiles/dict/album_type_samples.json @@ -0,0 +1,583 @@ +{ + "af": { + "Album": "Album", + "Ep": "EP", + "Single": "Enkelsnit", + "Audiobook": "Oudioboek", + "Show": "Drama" + }, + "am": { + "Album": "አልበም", + "Ep": "የተራዘመ አልበም", + "Single": "ነጠላ", + "Audiobook": "ኦዲዮ መጽሐፍ", + "Show": "ትዕይንት" + }, + "ar": { + "Album": "ألبوم", + "Ep": "ألبوم قصير", + "Single": "أغنية منفردة", + "Audiobook": "الكتب المسموعة", + "Show": "عرض" + }, + "as": { + "Album": "এলবাম", + "Ep": "EP", + "Single": "একক", + "Audiobook": "অডিঅ’বুক", + "Show": "শ্ব’" + }, + "az": { + "Album": "Albom", + "Ep": "EP", + "Single": "Tək", + "Audiobook": "Audio kitab", + "Show": "Şou" + }, + "be": { + "Album": "Альбом", + "Ep": "Міні-альбом", + "Single": "Сінгл", + "Audiobook": "Аўдыякніга", + "Show": "Шоу" + }, + "bg": { + "Album": "Албум", + "Ep": "Миниалбум", + "Single": "Сингъл", + "Audiobook": "Аудиокнига", + "Show": "Предаване" + }, + "bn": { + "Album": "অ্যালবাম", + "Ep": "ইপি", + "Single": "সিঙ্গেল", + "Audiobook": "অডিওবুক", + "Show": "শো" + }, + "bs": { + "Album": "Album", + "Ep": "EP", + "Single": "Singl", + "Audiobook": "Audio knjiga", + "Show": "Serija" + }, + "ca": { + "Album": "Àlbum", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Audiollibre", + "Show": "Programa" + }, + "cs": { + "Album": "Album", + "Ep": "EP", + "Single": "Singl", + "Audiobook": "Audiokniha", + "Show": "Zobrazit" + }, + "da": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Lydbog", + "Show": "Lyddrama" + }, + "de": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Hörbuch", + "Show": "Hörspiel" + }, + "el": { + "Album": "Άλμπουμ", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Ηχητικό βιβλίο", + "Show": "Εκπομπή" + }, + "en": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Audiobook", + "Show": "Show" + }, + "en-GB": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Audiobook", + "Show": "Show" + }, + "en-IN": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Audiobook", + "Show": "Show" + }, + "es": { + "Album": "Álbum", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Audiolibro", + "Show": "Audiodrama" + }, + "es-419": { + "Album": "Álbum", + "Ep": "EP", + "Single": "Sencillo", + "Audiobook": "Audiolibro", + "Show": "Programa" + }, + "es-US": { + "Album": "Álbum", + "Ep": "EP", + "Single": "Sencillo", + "Audiobook": "Audiolibro", + "Show": "Programa" + }, + "et": { + "Album": "Album", + "Ep": "EP", + "Single": "Singel", + "Audiobook": "Audioraamat", + "Show": "Sari" + }, + "eu": { + "Album": "Albuma", + "Ep": "EP", + "Single": "Singlea", + "Audiobook": "Audio-liburua", + "Show": "Saioa" + }, + "fa": { + "Album": "آلبوم", + "Ep": "پخش فوق‌العاده", + "Single": "تک آهنگ", + "Audiobook": "کتاب صوتی", + "Show": "نمایش" + }, + "fi": { + "Album": "Albumi", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Äänikirja", + "Show": "Näytä" + }, + "fil": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Audiobook", + "Show": "Palabas" + }, + "fr": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Livre audio", + "Show": "Émission" + }, + "fr-CA": { + "Album": "Album", + "Ep": "Microalbum", + "Single": "Simple", + "Audiobook": "Livre audio", + "Show": "Émission" + }, + "gl": { + "Album": "Álbum", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Audiolibro", + "Show": "Programa" + }, + "gu": { + "Album": "આલ્બમ", + "Ep": "EP", + "Single": "સિંગલ", + "Audiobook": "ઑડિયોબુક", + "Show": "શો" + }, + "hi": { + "Album": "एल्‍बम", + "Ep": "ईपी", + "Single": "सिंगल", + "Audiobook": "ऑडियो बुक", + "Show": "शो" + }, + "hr": { + "Album": "Album", + "Ep": "EP", + "Single": "Singl", + "Audiobook": "Audioknjiga", + "Show": "Serija" + }, + "hu": { + "Album": "Album", + "Ep": "EP", + "Single": "Kislemez", + "Audiobook": "Hangoskönyv", + "Show": "Műsor" + }, + "hy": { + "Album": "Ալբոմ", + "Ep": "EP", + "Single": "Սինգլ", + "Audiobook": "Աուդիոգիրք", + "Show": "Աուդիոդրամա" + }, + "id": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Buku audio", + "Show": "Acara" + }, + "is": { + "Album": "Plata", + "Ep": "EP", + "Single": "Smáskífa", + "Audiobook": "Hljóðbók", + "Show": "Þáttur" + }, + "it": { + "Album": "Album", + "Ep": "EP", + "Single": "Singolo", + "Audiobook": "Audiolibro", + "Show": "Programma" + }, + "iw": { + "Album": "אלבום", + "Ep": "מיני-אלבום", + "Single": "סינגל", + "Audiobook": "ספר אודיו", + "Show": "תסכית" + }, + "ja": { + "Album": "アルバム", + "Ep": "EP", + "Single": "シングル", + "Audiobook": "オーディオブック", + "Show": "表示" + }, + "ka": { + "Album": "ალბომი", + "Ep": "მინი-ალბომი", + "Single": "სინგლი", + "Audiobook": "აუდიოწიგნი", + "Show": "ჩვენება" + }, + "kk": { + "Album": "Альбом", + "Ep": "EP", + "Single": "Сингл", + "Audiobook": "Аудиокітап", + "Show": "Шоу" + }, + "km": { + "Album": "អាល់ប៊ុម", + "Ep": "EP", + "Single": "ចម្រៀងទោល", + "Audiobook": "សៀវភៅ​ជា​សំឡេង", + "Show": "កម្មវិធីទូរទស្សន៍" + }, + "kn": { + "Album": "ಆಲ್ಬಮ್", + "Ep": "EP", + "Single": "ಒಂದೇ", + "Audiobook": "ಆಡಿಯೋಬುಕ್", + "Show": "ಶೋ" + }, + "ko": { + "Album": "앨범", + "Ep": "EP", + "Single": "싱글", + "Audiobook": "오디오북", + "Show": "표시" + }, + "ky": { + "Album": "Альбом", + "Ep": "Чакан альбом", + "Single": "Сингл", + "Audiobook": "Аудиокитеп", + "Show": "Шоу" + }, + "lo": { + "Album": "ອະລະບໍ້າ", + "Ep": "EP", + "Single": "ຊິງເກິນ", + "Audiobook": "ປຶ້ມສຽງ", + "Show": "ສະແດງ" + }, + "lt": { + "Album": "Albumas", + "Ep": "Mini albumas", + "Single": "Singlas", + "Audiobook": "Garsinė knyga", + "Show": "Serialas" + }, + "lv": { + "Album": "Albums", + "Ep": "EP ieraksts", + "Single": "Singls", + "Audiobook": "Audiogrāmata", + "Show": "Pārraide" + }, + "mk": { + "Album": "Албум", + "Ep": "EP", + "Single": "Сингл", + "Audiobook": "Аудиокнига", + "Show": "Серија" + }, + "ml": { + "Album": "ആല്‍‌ബം", + "Ep": "EP", + "Single": "സിംഗിൾ", + "Audiobook": "ഓഡിയോ ബുക്ക്", + "Show": "ഷോ" + }, + "mn": { + "Album": "Цомог", + "Ep": "EP", + "Single": "Сингл", + "Audiobook": "Аудио ном", + "Show": "Жүжиг" + }, + "mr": { + "Album": "अल्बम", + "Ep": "भाग", + "Single": "सिंगल", + "Audiobook": "ऑडिओबुक", + "Show": "शो" + }, + "ms": { + "Album": "Album", + "Ep": "EP", + "Single": "Rekod single", + "Audiobook": "Buku audio", + "Show": "Rancangan" + }, + "my": { + "Album": "အယ်လ်ဘမ်", + "Ep": "EP", + "Single": "တစ်ကိုယ်တော်", + "Audiobook": "အော်ဒီယိုစာအုပ်", + "Show": "ရှိုး" + }, + "ne": { + "Album": "एल्बम", + "Ep": "EP", + "Single": "एकल एल्बम", + "Audiobook": "अडियोबुक", + "Show": "टिभी सो" + }, + "nl": { + "Album": "Album", + "Ep": "Ep", + "Single": "Single", + "Audiobook": "Audioboek", + "Show": "Aflevering" + }, + "no": { + "Album": "Album", + "Ep": "EP", + "Single": "Singel", + "Audiobook": "Lydbok", + "Show": "Hørespill" + }, + "or": { + "Album": "ଆଲବମ୍", + "Ep": "EP", + "Single": "ସିଙ୍ଗଲ୍", + "Audiobook": "ଅଡିଓବୁକ୍", + "Show": "ଶୋ" + }, + "pa": { + "Album": "ਐਲਬਮ", + "Ep": "EP", + "Single": "ਸਿੰਗਲ", + "Audiobook": "ਆਡੀਓ-ਕਿਤਾਬ", + "Show": "ਸ਼ੋਅ" + }, + "pl": { + "Album": "Album", + "Ep": "EP", + "Single": "Singiel", + "Audiobook": "Audiobook", + "Show": "Słuchowisko" + }, + "pt": { + "Album": "Álbum", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Audiolivro", + "Show": "Programa" + }, + "pt-PT": { + "Album": "Álbum", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Livro áudio", + "Show": "Programa" + }, + "ro": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Carte audio", + "Show": "Emisiune" + }, + "ru": { + "Album": "Альбом", + "Ep": "EP", + "Single": "Сингл", + "Audiobook": "Аудиокнига", + "Show": "Аудиошоу" + }, + "si": { + "Album": "ඇල්බමය", + "Ep": "දීවා", + "Single": "තනි", + "Audiobook": "ශ්‍රව්‍යපොත", + "Show": "සංදර්ශනය" + }, + "sk": { + "Album": "Album", + "Ep": "EP", + "Single": "Singel", + "Audiobook": "Audiokniha", + "Show": "Relácia" + }, + "sl": { + "Album": "Album", + "Ep": "EP", + "Single": "Singel", + "Audiobook": "Zvočna knjiga", + "Show": "Oddaja" + }, + "sq": { + "Album": "Album", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Libër me audio", + "Show": "Shfaq" + }, + "sr": { + "Album": "Албум", + "Ep": "EP", + "Single": "Сингл", + "Audiobook": "Аудио-књига", + "Show": "Серија" + }, + "sr-Latn": { + "Album": "Album", + "Ep": "EP", + "Single": "Singl", + "Audiobook": "Audio-knjiga", + "Show": "Serija" + }, + "sv": { + "Album": "Album", + "Ep": "EP", + "Single": "Singel", + "Audiobook": "Ljudbok", + "Show": "Ljuddrama" + }, + "sw": { + "Album": "Albamu", + "Ep": "EP", + "Single": "Singo", + "Audiobook": "Kitabu cha kusikiliza", + "Show": "Kipindi" + }, + "ta": { + "Album": "ஆல்பம்", + "Ep": "EP", + "Single": "சிங்கிள்", + "Audiobook": "ஆடியோ புத்தகம்", + "Show": "ஆடியோ ஷோ" + }, + "te": { + "Album": "ఆల్బమ్", + "Ep": "EP", + "Single": "సింగిల్", + "Audiobook": "ఆడియోబుక్", + "Show": "చూపించు" + }, + "th": { + "Album": "อัลบั้ม", + "Ep": "EP", + "Single": "ซิงเกิล", + "Audiobook": "หนังสือเสียง", + "Show": "รายการ" + }, + "tr": { + "Album": "Albüm", + "Ep": "EP", + "Single": "Single", + "Audiobook": "Sesli kitap", + "Show": "Program" + }, + "uk": { + "Album": "Альбом", + "Ep": "Мініальбом", + "Single": "Сингл", + "Audiobook": "Аудіокнига", + "Show": "Аудіодрама" + }, + "ur": { + "Album": "البم", + "Ep": "EP", + "Single": "واحد", + "Audiobook": "آڈیو بک", + "Show": "شو" + }, + "uz": { + "Album": "Albom", + "Ep": "EP", + "Single": "Singl", + "Audiobook": "Audiokitob", + "Show": "Shou" + }, + "vi": { + "Album": "Đĩa nhạc", + "Ep": "Đĩa nhạc mở rộng (EP)", + "Single": "Đĩa đơn", + "Audiobook": "Sách nói", + "Show": "Chương trình" + }, + "zh-CN": { + "Album": "专辑", + "Ep": "迷你专辑", + "Single": "单曲", + "Audiobook": "有声读物", + "Show": "广播剧" + }, + "zh-HK": { + "Album": "專輯", + "Ep": "EP", + "Single": "單曲", + "Audiobook": "有聲書", + "Show": "節目" + }, + "zh-TW": { + "Album": "專輯", + "Ep": "EP", + "Single": "單曲", + "Audiobook": "有聲書", + "Show": "節目" + }, + "zu": { + "Album": "I-albhamu", + "Ep": "I-EP", + "Single": "I-Single", + "Audiobook": "I-audiobook", + "Show": "Bonisa" + } +} diff --git a/testfiles/dict/dictionary.json b/testfiles/dict/dictionary.json index 1be5db3..fcdc00d 100644 --- a/testfiles/dict/dictionary.json +++ b/testfiles/dict/dictionary.json @@ -40,6 +40,13 @@ "number_tokens": { "m": 6, "mjd": 9 + }, + "album_types": { + "album": "Album", + "drama": "Show", + "enkelsnit": "Single", + "ep": "Ep", + "oudioboek": "Audiobook" } }, "am": { @@ -85,6 +92,13 @@ "ሚ": 6, "ሺ": 3, "ቢ": 9 + }, + "album_types": { + "ትዕይንት": "Show", + "ነጠላ": "Single", + "አልበም": "Album", + "ኦዲዮ መጽሐፍ": "Audiobook", + "የተራዘመ አልበም": "Ep" } }, "ar": { @@ -124,10 +138,17 @@ }, "comma_decimal": false, "number_tokens": { - "ألف": 3, "آلاف": 3, + "ألف": 3, "مليار": 9, "مليون": 6 + }, + "album_types": { + "أغنية منفردة": "Single", + "ألبوم": "Album", + "ألبوم قصير": "Ep", + "الكتب المسموعة": "Audiobook", + "عرض": "Show" } }, "as": { @@ -155,6 +176,13 @@ "নিযুতটা": 6, "লাখটা": 5, "হাজাৰটা": 3 + }, + "album_types": { + "ep": "Ep", + "অডিঅ’বুক": "Audiobook", + "একক": "Single", + "এলবাম": "Album", + "শ্ব’": "Show" } }, "az": { @@ -192,6 +220,13 @@ "number_tokens": { "mln": 6, "mlrd": 9 + }, + "album_types": { + "albom": "Album", + "audio kitab": "Audiobook", + "ep": "Ep", + "tək": "Single", + "şou": "Show" } }, "be": { @@ -247,6 +282,13 @@ "млн": 6, "млрд": 9, "тыс": 3 + }, + "album_types": { + "альбом": "Album", + "аўдыякніга": "Audiobook", + "міні-альбом": "Ep", + "сінгл": "Single", + "шоу": "Show" } }, "bg": { @@ -279,6 +321,13 @@ "млн": 6, "млрд": 9, "хил": 3 + }, + "album_types": { + "албум": "Album", + "аудиокнига": "Audiobook", + "миниалбум": "Ep", + "предаване": "Show", + "сингъл": "Single" } }, "bn": { @@ -314,10 +363,17 @@ }, "comma_decimal": false, "number_tokens": { + "কোটি": 7, "লাটি": 5, "শত": 2, - "হাটি": 3, - "কোটি": 7 + "হাটি": 3 + }, + "album_types": { + "অডিওবুক": "Audiobook", + "অ্যালবাম": "Album", + "ইপি": "Ep", + "শো": "Show", + "সিঙ্গেল": "Single" } }, "bs": { @@ -368,6 +424,13 @@ "hilj": 3, "mil": 6, "mlr": 9 + }, + "album_types": { + "album": "Album", + "audio knjiga": "Audiobook", + "ep": "Ep", + "serija": "Show", + "singl": "Single" } }, "ca": { @@ -413,6 +476,13 @@ "M": 6, "m": 3, "mM": 9 + }, + "album_types": { + "audiollibre": "Audiobook", + "ep": "Ep", + "programa": "Show", + "single": "Single", + "àlbum": "Album" } }, "cs": { @@ -446,6 +516,13 @@ "mil": 6, "mld": 9, "tis": 3 + }, + "album_types": { + "album": "Album", + "audiokniha": "Audiobook", + "ep": "Ep", + "singl": "Single", + "zobrazit": "Show" } }, "da": { @@ -489,6 +566,13 @@ "number_tokens": { "mia": 9, "mio": 6 + }, + "album_types": { + "album": "Album", + "ep": "Ep", + "lydbog": "Audiobook", + "lyddrama": "Show", + "single": "Single" } }, "de": { @@ -520,6 +604,13 @@ "number_tokens": { "Mio": 6, "Mrd": 9 + }, + "album_types": { + "album": "Album", + "ep": "Ep", + "hörbuch": "Audiobook", + "hörspiel": "Show", + "single": "Single" } }, "el": { @@ -565,6 +656,13 @@ "δισ": 9, "εκ": 6, "χιλ": 3 + }, + "album_types": { + "ep": "Ep", + "single": "Single", + "άλμπουμ": "Album", + "εκπομπή": "Show", + "ηχητικό βιβλίο": "Audiobook" } }, "en": { @@ -615,6 +713,13 @@ "M": 6, "crore": 7, "lakh": 5 + }, + "album_types": { + "album": "Album", + "audiobook": "Audiobook", + "ep": "Ep", + "show": "Show", + "single": "Single" } }, "es": { @@ -659,6 +764,13 @@ "number_tokens": { "M": 6, "mil": 3 + }, + "album_types": { + "audiodrama": "Show", + "audiolibro": "Audiobook", + "ep": "Ep", + "single": "Single", + "álbum": "Album" } }, "es-US": { @@ -705,6 +817,13 @@ "number_tokens": { "M": 6, "mil": 3 + }, + "album_types": { + "audiolibro": "Audiobook", + "ep": "Ep", + "programa": "Show", + "sencillo": "Single", + "álbum": "Album" } }, "et": { @@ -752,6 +871,13 @@ "mld": 9, "mln": 6, "tuh": 3 + }, + "album_types": { + "album": "Album", + "audioraamat": "Audiobook", + "ep": "Ep", + "sari": "Show", + "singel": "Single" } }, "eu": { @@ -791,6 +917,13 @@ "comma_decimal": true, "number_tokens": { "M": 6 + }, + "album_types": { + "albuma": "Album", + "audio-liburua": "Audiobook", + "ep": "Ep", + "saioa": "Show", + "singlea": "Single" } }, "fa": { @@ -829,6 +962,13 @@ "میلیارد": 9, "میلیون": 6, "هزار": 3 + }, + "album_types": { + "آلبوم": "Album", + "تک آهنگ": "Single", + "نمایش": "Show", + "پخش فوق‌العاده": "Ep", + "کتاب صوتی": "Audiobook" } }, "fi": { @@ -861,6 +1001,13 @@ "milj": 6, "mrd": 9, "t": 3 + }, + "album_types": { + "albumi": "Album", + "ep": "Ep", + "näytä": "Show", + "single": "Single", + "äänikirja": "Audiobook" } }, "fil": { @@ -898,6 +1045,13 @@ "number_tokens": { "B": 9, "M": 6 + }, + "album_types": { + "album": "Album", + "audiobook": "Audiobook", + "ep": "Ep", + "palabas": "Show", + "single": "Single" } }, "fr": { @@ -945,6 +1099,13 @@ "G": 9, "M": 6, "Md": 9 + }, + "album_types": { + "album": "Album", + "ep": "Ep", + "livre audio": "Audiobook", + "single": "Single", + "émission": "Show" } }, "gl": { @@ -988,6 +1149,13 @@ "comma_decimal": true, "number_tokens": { "M": 6 + }, + "album_types": { + "audiolibro": "Audiobook", + "ep": "Ep", + "programa": "Show", + "single": "Single", + "álbum": "Album" } }, "gu": { @@ -1027,6 +1195,13 @@ "કરોડ": 7, "લાખ": 5, "હજાર": 3 + }, + "album_types": { + "ep": "Ep", + "આલ્બમ": "Album", + "ઑડિયોબુક": "Audiobook", + "શો": "Show", + "સિંગલ": "Single" } }, "hi": { @@ -1066,6 +1241,13 @@ "क॰": 7, "लाख": 5, "हज़ार": 3 + }, + "album_types": { + "ईपी": "Ep", + "एल्‍बम": "Album", + "ऑडियो बुक": "Audiobook", + "शो": "Show", + "सिंगल": "Single" } }, "hr": { @@ -1116,6 +1298,13 @@ "mil": 6, "mlr": 9, "tis": 3 + }, + "album_types": { + "album": "Album", + "audioknjiga": "Audiobook", + "ep": "Ep", + "serija": "Show", + "singl": "Single" } }, "hu": { @@ -1161,6 +1350,13 @@ "E": 3, "M": 6, "Mrd": 9 + }, + "album_types": { + "album": "Album", + "ep": "Ep", + "hangoskönyv": "Audiobook", + "kislemez": "Single", + "műsor": "Show" } }, "hy": { @@ -1199,6 +1395,13 @@ "հզր": 3, "մլն": 6, "մլրդ": 9 + }, + "album_types": { + "ep": "Ep", + "ալբոմ": "Album", + "աուդիոգիրք": "Audiobook", + "աուդիոդրամա": "Show", + "սինգլ": "Single" } }, "id": { @@ -1237,6 +1440,13 @@ "M": 9, "jt": 6, "rb": 3 + }, + "album_types": { + "acara": "Show", + "album": "Album", + "buku audio": "Audiobook", + "ep": "Ep", + "single": "Single" } }, "is": { @@ -1282,6 +1492,13 @@ "m": 6, "ma": 9, "þ": 3 + }, + "album_types": { + "ep": "Ep", + "hljóðbók": "Audiobook", + "plata": "Album", + "smáskífa": "Single", + "þáttur": "Show" } }, "it": { @@ -1326,6 +1543,13 @@ "number_tokens": { "Mln": 6, "Mrd": 9 + }, + "album_types": { + "album": "Album", + "audiolibro": "Audiobook", + "ep": "Ep", + "programma": "Show", + "singolo": "Single" } }, "iw": { @@ -1377,6 +1601,13 @@ "‫B‏‬": 9, "‫K‏‬": 3, "‫M‏‬": 6 + }, + "album_types": { + "אלבום": "Album", + "מיני-אלבום": "Ep", + "סינגל": "Single", + "ספר אודיו": "Audiobook", + "תסכית": "Show" } }, "ja": { @@ -1401,6 +1632,13 @@ "number_tokens": { "万": 4, "億": 8 + }, + "album_types": { + "ep": "Ep", + "アルバム": "Album", + "オーディオブック": "Audiobook", + "シングル": "Single", + "表示": "Show" } }, "ka": { @@ -1439,6 +1677,13 @@ "ათ": 3, "მლნ": 6, "მლრდ": 9 + }, + "album_types": { + "ალბომი": "Album", + "აუდიოწიგნი": "Audiobook", + "მინი-ალბომი": "Ep", + "სინგლი": "Single", + "ჩვენება": "Show" } }, "kk": { @@ -1478,6 +1723,13 @@ "млн": 6, "млрд": 9, "мың": 3 + }, + "album_types": { + "ep": "Ep", + "альбом": "Album", + "аудиокітап": "Audiobook", + "сингл": "Single", + "шоу": "Show" } }, "km": { @@ -1516,6 +1768,13 @@ "ប៊ីលាន": 9, "ពាន់": 3, "លាន": 6 + }, + "album_types": { + "ep": "Ep", + "កម្មវិធីទូរទស្សន៍": "Show", + "ចម្រៀងទោល": "Single", + "សៀវភៅ​ជា​សំឡេង": "Audiobook", + "អាល់ប៊ុម": "Album" } }, "kn": { @@ -1560,6 +1819,13 @@ "number_tokens": { "ಕೋಟಿ": 7, "ಲಕ್ಷ": 5 + }, + "album_types": { + "ep": "Ep", + "ಆಡಿಯೋಬುಕ್": "Audiobook", + "ಆಲ್ಬಮ್": "Album", + "ಒಂದೇ": "Single", + "ಶೋ": "Show" } }, "ko": { @@ -1584,6 +1850,13 @@ "만회": 4, "억회": 8, "천회": 3 + }, + "album_types": { + "ep": "Ep", + "싱글": "Single", + "앨범": "Album", + "오디오북": "Audiobook", + "표시": "Show" } }, "ky": { @@ -1622,6 +1895,13 @@ "миң": 3, "млд": 9, "млн": 6 + }, + "album_types": { + "альбом": "Album", + "аудиокитеп": "Audiobook", + "сингл": "Single", + "чакан альбом": "Ep", + "шоу": "Show" } }, "lo": { @@ -1661,6 +1941,13 @@ "ຕື້": 9, "ພັນ": 3, "ລ້ານ": 6 + }, + "album_types": { + "ep": "Ep", + "ຊິງເກິນ": "Single", + "ປຶ້ມສຽງ": "Audiobook", + "ສະແດງ": "Show", + "ອະລະບໍ້າ": "Album" } }, "lt": { @@ -1700,6 +1987,13 @@ "mln": 6, "mlrd": 9, "tūkst": 3 + }, + "album_types": { + "albumas": "Album", + "garsinė knyga": "Audiobook", + "mini albumas": "Ep", + "serialas": "Show", + "singlas": "Single" } }, "lv": { @@ -1745,6 +2039,13 @@ "milj": 6, "mljrd": 9, "tūkst": 3 + }, + "album_types": { + "albums": "Album", + "audiogrāmata": "Audiobook", + "ep ieraksts": "Ep", + "pārraide": "Show", + "singls": "Single" } }, "mk": { @@ -1778,6 +2079,13 @@ "илј": 3, "мил": 6, "милј": 9 + }, + "album_types": { + "ep": "Ep", + "албум": "Album", + "аудиокнига": "Audiobook", + "серија": "Show", + "сингл": "Single" } }, "ml": { @@ -1815,6 +2123,13 @@ "number_tokens": { "കോടി": 7, "ലക്ഷം": 5 + }, + "album_types": { + "ep": "Ep", + "ആല്‍‌ബം": "Album", + "ഓഡിയോ ബുക്ക്": "Audiobook", + "ഷോ": "Show", + "സിംഗിൾ": "Single" } }, "mn": { @@ -1840,6 +2155,13 @@ "мянга": 3, "сая": 6, "тэрбум": 9 + }, + "album_types": { + "ep": "Ep", + "аудио ном": "Audiobook", + "жүжиг": "Show", + "сингл": "Single", + "цомог": "Album" } }, "mr": { @@ -1886,6 +2208,13 @@ "कोटी": 7, "लाख": 5, "ह": 3 + }, + "album_types": { + "अल्बम": "Album", + "ऑडिओबुक": "Audiobook", + "भाग": "Ep", + "शो": "Show", + "सिंगल": "Single" } }, "ms": { @@ -1923,6 +2252,13 @@ "number_tokens": { "B": 9, "J": 6 + }, + "album_types": { + "album": "Album", + "buku audio": "Audiobook", + "ep": "Ep", + "rancangan": "Show", + "rekod single": "Single" } }, "my": { @@ -1965,6 +2301,13 @@ "သန်း": 6, "သိန်း": 5, "သောင်း": 4 + }, + "album_types": { + "ep": "Ep", + "တစ်ကိုယ်တော်": "Single", + "ရှိုး": "Show", + "အယ်လ်ဘမ်": "Album", + "အော်ဒီယိုစာအုပ်": "Audiobook" } }, "ne": { @@ -2004,6 +2347,13 @@ "करोड": 7, "लाख": 5, "हजार": 3 + }, + "album_types": { + "ep": "Ep", + "अडियोबुक": "Audiobook", + "एकल एल्बम": "Single", + "एल्बम": "Album", + "टिभी सो": "Show" } }, "nl": { @@ -2046,6 +2396,13 @@ "number_tokens": { "mld": 9, "mln": 6 + }, + "album_types": { + "aflevering": "Show", + "album": "Album", + "audioboek": "Audiobook", + "ep": "Ep", + "single": "Single" } }, "no": { @@ -2090,6 +2447,13 @@ "number_tokens": { "mill": 6, "mrd": 9 + }, + "album_types": { + "album": "Album", + "ep": "Ep", + "hørespill": "Show", + "lydbok": "Audiobook", + "singel": "Single" } }, "or": { @@ -2128,6 +2492,13 @@ "ନିଟି": 6, "ବିଟି": 9, "ହଟି": 3 + }, + "album_types": { + "ep": "Ep", + "ଅଡିଓବୁକ୍": "Audiobook", + "ଆଲବମ୍": "Album", + "ଶୋ": "Show", + "ସିଙ୍ଗଲ୍": "Single" } }, "pa": { @@ -2170,6 +2541,13 @@ "ਕਰੋੜ": 7, "ਲੱਖ": 5, "ਹਜ਼ਾਰ": 3 + }, + "album_types": { + "ep": "Ep", + "ਆਡੀਓ-ਕਿਤਾਬ": "Audiobook", + "ਐਲਬਮ": "Album", + "ਸ਼ੋਅ": "Show", + "ਸਿੰਗਲ": "Single" } }, "pl": { @@ -2220,6 +2598,13 @@ "mld": 9, "mln": 6, "tys": 3 + }, + "album_types": { + "album": "Album", + "audiobook": "Audiobook", + "ep": "Ep", + "singiel": "Single", + "słuchowisko": "Show" } }, "pt": { @@ -2265,6 +2650,13 @@ "bi": 9, "mi": 6, "mil": 3 + }, + "album_types": { + "audiolivro": "Audiobook", + "ep": "Ep", + "programa": "Show", + "single": "Single", + "álbum": "Album" } }, "pt-PT": { @@ -2297,6 +2689,13 @@ "M": 6, "mM": 9, "mil": 3 + }, + "album_types": { + "ep": "Ep", + "livro áudio": "Audiobook", + "programa": "Show", + "single": "Single", + "álbum": "Album" } }, "ro": { @@ -2341,6 +2740,13 @@ "number_tokens": { "mil": 6, "mld": 9 + }, + "album_types": { + "album": "Album", + "carte audio": "Audiobook", + "emisiune": "Show", + "ep": "Ep", + "single": "Single" } }, "ru": { @@ -2392,6 +2798,13 @@ "млн": 6, "млрд": 9, "тыс": 3 + }, + "album_types": { + "ep": "Ep", + "альбом": "Album", + "аудиокнига": "Audiobook", + "аудиошоу": "Show", + "сингл": "Single" } }, "si": { @@ -2431,6 +2844,13 @@ "ද": 3, "බි": 9, "මි": 6 + }, + "album_types": { + "ඇල්බමය": "Album", + "තනි": "Single", + "දීවා": "Ep", + "ශ්‍රව්‍යපොත": "Audiobook", + "සංදර්ශනය": "Show" } }, "sk": { @@ -2463,6 +2883,13 @@ "mil": 6, "mld": 9, "tis": 3 + }, + "album_types": { + "album": "Album", + "audiokniha": "Audiobook", + "ep": "Ep", + "relácia": "Show", + "singel": "Single" } }, "sl": { @@ -2516,6 +2943,13 @@ "mio": 6, "mrd": 9, "tis": 3 + }, + "album_types": { + "album": "Album", + "ep": "Ep", + "oddaja": "Show", + "singel": "Single", + "zvočna knjiga": "Audiobook" } }, "sq": { @@ -2557,6 +2991,13 @@ "mijë": 3, "mld": 9, "mln": 6 + }, + "album_types": { + "album": "Album", + "ep": "Ep", + "libër me audio": "Audiobook", + "shfaq": "Show", + "single": "Single" } }, "sr": { @@ -2591,6 +3032,13 @@ "мил": 6, "млрд": 9, "хиљ": 3 + }, + "album_types": { + "ep": "Ep", + "албум": "Album", + "аудио-књига": "Audiobook", + "серија": "Show", + "сингл": "Single" } }, "sr-Latn": { @@ -2626,6 +3074,13 @@ "hilj": 3, "mil": 6, "mlrd": 9 + }, + "album_types": { + "album": "Album", + "audio-knjiga": "Audiobook", + "ep": "Ep", + "serija": "Show", + "singl": "Single" } }, "sv": { @@ -2669,6 +3124,13 @@ "number_tokens": { "md": 9, "mn": 6 + }, + "album_types": { + "album": "Album", + "ep": "Ep", + "ljudbok": "Audiobook", + "ljuddrama": "Show", + "singel": "Single" } }, "sw": { @@ -2709,6 +3171,13 @@ "B": 9, "M": 6, "elfu": 3 + }, + "album_types": { + "albamu": "Album", + "ep": "Ep", + "kipindi": "Show", + "kitabu cha kusikiliza": "Audiobook", + "singo": "Single" } }, "ta": { @@ -2752,6 +3221,13 @@ "number_tokens": { "கோடி": 7, "லட்சம்": 5 + }, + "album_types": { + "ep": "Ep", + "ஆடியோ புத்தகம்": "Audiobook", + "ஆடியோ ஷோ": "Show", + "ஆல்பம்": "Album", + "சிங்கிள்": "Single" } }, "te": { @@ -2797,6 +3273,13 @@ "కోట్లు": 7, "లక్ష": 5, "లక్షలు": 5 + }, + "album_types": { + "ep": "Ep", + "ఆడియోబుక్": "Audiobook", + "ఆల్బమ్": "Album", + "చూపించు": "Show", + "సింగిల్": "Single" } }, "th": { @@ -2838,6 +3321,13 @@ "หมื่น": 4, "หมื่นล้าน": 10, "แสน": 5 + }, + "album_types": { + "ep": "Ep", + "ซิงเกิล": "Single", + "รายการ": "Show", + "หนังสือเสียง": "Audiobook", + "อัลบั้ม": "Album" } }, "tr": { @@ -2876,6 +3366,13 @@ "B": 3, "Mn": 6, "Mr": 9 + }, + "album_types": { + "albüm": "Album", + "ep": "Ep", + "program": "Show", + "sesli kitap": "Audiobook", + "single": "Single" } }, "uk": { @@ -2927,6 +3424,13 @@ "млн": 6, "млрд": 9, "тис": 3 + }, + "album_types": { + "альбом": "Album", + "аудіодрама": "Show", + "аудіокнига": "Audiobook", + "мініальбом": "Ep", + "сингл": "Single" } }, "ur": { @@ -2972,6 +3476,13 @@ "لاکھ": 5, "کروڑ": 7, "ہزار": 3 + }, + "album_types": { + "ep": "Ep", + "آڈیو بک": "Audiobook", + "البم": "Album", + "شو": "Show", + "واحد": "Single" } }, "uz": { @@ -3010,6 +3521,13 @@ "ming": 3, "mln": 6, "mlrd": 9 + }, + "album_types": { + "albom": "Album", + "audiokitob": "Audiobook", + "ep": "Ep", + "shou": "Show", + "singl": "Single" } }, "vi": { @@ -3036,6 +3554,13 @@ "N": 3, "T": 9, "Tr": 6 + }, + "album_types": { + "chương trình": "Show", + "sách nói": "Audiobook", + "đĩa nhạc": "Album", + "đĩa nhạc mở rộng (ep)": "Ep", + "đĩa đơn": "Single" } }, "zh-CN": { @@ -3060,6 +3585,13 @@ "number_tokens": { "万": 4, "亿": 8 + }, + "album_types": { + "专辑": "Album", + "单曲": "Single", + "广播剧": "Show", + "有声读物": "Audiobook", + "迷你专辑": "Ep" } }, "zh-HK": { @@ -3085,6 +3617,13 @@ "number_tokens": { "B": 9, "M": 6 + }, + "album_types": { + "ep": "Ep", + "單曲": "Single", + "專輯": "Album", + "有聲書": "Audiobook", + "節目": "Show" } }, "zh-TW": { @@ -3109,6 +3648,13 @@ "number_tokens": { "億": 8, "萬": 4 + }, + "album_types": { + "ep": "Ep", + "單曲": "Single", + "專輯": "Album", + "有聲書": "Audiobook", + "節目": "Show" } }, "zu": { @@ -3153,6 +3699,13 @@ "number_tokens": { "B": 9, "M": 6 + }, + "album_types": { + "bonisa": "Show", + "i-albhamu": "Album", + "i-audiobook": "Audiobook", + "i-ep": "Ep", + "i-single": "Single" } } } diff --git a/tests/snapshots/youtube__music_album_audiobook.snap b/tests/snapshots/youtube__music_album_audiobook.snap index 6d73252..fd02699 100644 --- a/tests/snapshots/youtube__music_album_audiobook.snap +++ b/tests/snapshots/youtube__music_album_audiobook.snap @@ -9,7 +9,7 @@ MusicAlbum( cover: "[cover]", artists: [], artists_txt: "George Orwell & Dirk Jacobs", - album_type: Album, + album_type: Audiobook, year: Some(2022), by_va: false, tracks: [ diff --git a/tests/snapshots/youtube__music_album_show.snap b/tests/snapshots/youtube__music_album_show.snap index ed2a5c5..ac8d8d9 100644 --- a/tests/snapshots/youtube__music_album_show.snap +++ b/tests/snapshots/youtube__music_album_show.snap @@ -14,7 +14,7 @@ MusicAlbum( ), ], artists_txt: "Kingdom Force", - album_type: Album, + album_type: Show, year: Some(2022), by_va: false, tracks: [