From 74deae076e8d437609451d4cce160aa9f487326f Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Fri, 26 May 2023 22:38:09 +0200 Subject: [PATCH] Add sequences to search books --- src/bots/approved_bot/modules/download.rs | 2 +- .../services/book_library/formaters.rs | 18 +++++++++++++++++- .../services/book_library/types.rs | 1 + 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/bots/approved_bot/modules/download.rs b/src/bots/approved_bot/modules/download.rs index 15173af..b206126 100644 --- a/src/bots/approved_bot/modules/download.rs +++ b/src/bots/approved_bot/modules/download.rs @@ -69,7 +69,7 @@ pub struct StartDownloadData { impl ToString for StartDownloadData { fn to_string(&self) -> String { - let id = self.id; + let StartDownloadData { id } = self; format!("/d_{id}") } } diff --git a/src/bots/approved_bot/services/book_library/formaters.rs b/src/bots/approved_bot/services/book_library/formaters.rs index 0489982..9de79ff 100644 --- a/src/bots/approved_bot/services/book_library/formaters.rs +++ b/src/bots/approved_bot/services/book_library/formaters.rs @@ -153,6 +153,22 @@ impl Format for SearchBook { "".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 translators = if !self.translators.is_empty() { let formated_translators = self .translators @@ -171,7 +187,7 @@ impl Format for SearchBook { let download_command = (StartDownloadData { id: self.id }).to_string(); let download_links = format!("Скачать:\n📥{download_command}"); - format!("{book_title}{annotations}{authors}{translators}{download_links}") + format!("{book_title}{annotations}{authors}{translators}{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 828cc2e..7045c37 100644 --- a/src/bots/approved_bot/services/book_library/types.rs +++ b/src/bots/approved_bot/services/book_library/types.rs @@ -139,6 +139,7 @@ pub struct SearchBook { pub annotation_exists: bool, pub authors: Vec, pub translators: Vec, + pub sequences: Vec, } #[derive(Deserialize, Debug, Clone)]