From 6750ffcbb85ef5bbb6da52025c51792be106a97e Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Sun, 22 Jan 2023 23:38:21 +0100 Subject: [PATCH] Fix message to long for books search --- .../services/book_library/formaters.rs | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/bots/approved_bot/services/book_library/formaters.rs b/src/bots/approved_bot/services/book_library/formaters.rs index 5b232df..b8cb52b 100644 --- a/src/bots/approved_bot/services/book_library/formaters.rs +++ b/src/bots/approved_bot/services/book_library/formaters.rs @@ -1,3 +1,5 @@ +use std::cmp::min; + use super::types::{Author, AuthorBook, Book, SearchBook, Sequence, Translator, TranslatorBook}; pub trait Format { @@ -143,32 +145,34 @@ impl Format for SearchBook { false => "".to_string(), }; - let authors = match self.authors.len() != 0 { - true => { - let formated_authors = self + let authors = if self.authors.len() != 0 { + let formated_authors = self .authors - .clone() + .clone()[..min(5, self.authors.len())] .into_iter() .map(|author| author.format_author()) .collect::>() .join("\n"); - format!("Авторы:\n{formated_authors}\n") - } - false => "".to_string(), + + let post_fix = if self.authors.len() > 5 { "\nи др." } else { "" }; + format!("Авторы:\n{formated_authors}{post_fix}\n") + } else { + "".to_string() }; - let translators = match self.translators.len() != 0 { - true => { - let formated_translators = self + let translators = if self.translators.len() != 0 { + let formated_translators = self .translators - .clone() + .clone()[..min(5, self.translators.len())] .into_iter() .map(|translator| translator.format_translator()) .collect::>() .join("\n"); - format!("Переводчики:\n{formated_translators}\n") - } - false => "".to_string(), + + let post_fix = if self.translators.len() > 5 { "\nи др." } else { "" }; + format!("Переводчики:\n{formated_translators}{post_fix}\n") + } else { + "".to_string() }; let links: String = self