diff --git a/src/bots/approved_bot/services/book_library/formaters.rs b/src/bots/approved_bot/services/book_library/formaters.rs index 9de79ff..b1f6c2c 100644 --- a/src/bots/approved_bot/services/book_library/formaters.rs +++ b/src/bots/approved_bot/services/book_library/formaters.rs @@ -241,10 +241,26 @@ impl Format for AuthorBook { false => "".to_string(), }; + let sequences = match !self.sequences.is_empty() { + true => { + let formated_sequences: String = self + .sequences + .clone()[..min(5, self.sequences.len())] + .into_iter() + .map(|sequence| sequence.format()) + .collect::>() + .join("\n"); + + let post_fix = if self.sequences.len() > 5 { "\nи др." } else { "" }; + format!("Серии:\n{formated_sequences}{post_fix}\n\n") + } + false => "".to_string(), + }; + let download_command = (StartDownloadData { id: self.id }).to_string(); let download_links = format!("Скачать:\n📥{download_command}"); - format!("{book_title}{annotations}{translators}{download_links}") + format!("{book_title}{annotations}{translators}{sequences}{download_links}") } } @@ -277,9 +293,25 @@ impl Format for TranslatorBook { false => "".to_string(), }; + let sequences = match !self.sequences.is_empty() { + true => { + let formated_sequences: String = self + .sequences + .clone()[..min(5, self.sequences.len())] + .into_iter() + .map(|sequence| sequence.format()) + .collect::>() + .join("\n"); + + let post_fix = if self.sequences.len() > 5 { "\nи др." } else { "" }; + format!("Серии:\n{formated_sequences}{post_fix}\n\n") + } + false => "".to_string(), + }; + let download_command = (StartDownloadData { id: self.id }).to_string(); let download_links = format!("Скачать:\n📥{download_command}"); - format!("{book_title}{annotations}{authors}{download_links}") + format!("{book_title}{annotations}{authors}{sequences}{download_links}") } } diff --git a/src/bots/approved_bot/services/book_library/types.rs b/src/bots/approved_bot/services/book_library/types.rs index 7045c37..8bb785b 100644 --- a/src/bots/approved_bot/services/book_library/types.rs +++ b/src/bots/approved_bot/services/book_library/types.rs @@ -168,6 +168,7 @@ pub struct AuthorBook { // uploaded: String, pub annotation_exists: bool, pub translators: Vec, + pub sequences: Vec, } #[derive(Deserialize, Debug, Clone)] @@ -180,4 +181,5 @@ pub struct TranslatorBook { // uploaded: String, pub annotation_exists: bool, pub authors: Vec, + pub sequences: Vec, }