mirror of
https://github.com/flibusta-apps/book_bot.git
synced 2025-12-06 07:25:36 +01:00
Fix
This commit is contained in:
@@ -167,12 +167,7 @@ where
|
||||
return Ok(());
|
||||
};
|
||||
|
||||
let total_pages = items_page.pages;
|
||||
let footer = format!("\n\nСтраница 1/{total_pages}");
|
||||
|
||||
let formated_items = items_page.format_items(4096 - footer.len());
|
||||
|
||||
let message_text = format!("{formated_items}{footer}");
|
||||
let formated_page = items_page.format(1, 4096);
|
||||
|
||||
let callback_data = match command {
|
||||
BookCommand::Author { id } => BookCallbackData::Author { id, page: 1 },
|
||||
@@ -180,10 +175,10 @@ where
|
||||
BookCommand::Sequence { id } => BookCallbackData::Sequence { id, page: 1 },
|
||||
};
|
||||
|
||||
let keyboard = generic_get_pagination_keyboard(1, total_pages, callback_data, true);
|
||||
let keyboard = generic_get_pagination_keyboard(1, items_page.pages, callback_data, true);
|
||||
|
||||
bot
|
||||
.send_message(chat_id, message_text)
|
||||
.send_message(chat_id, formated_page)
|
||||
.reply_markup(keyboard)
|
||||
.send()
|
||||
.await?;
|
||||
@@ -260,17 +255,12 @@ where
|
||||
};
|
||||
}
|
||||
|
||||
let total_pages = items_page.pages;
|
||||
let footer = format!("\n\nСтраница {page}/{total_pages}");
|
||||
let formated_page = items_page.format(page, 4096);
|
||||
|
||||
let formated_items = items_page.format_items(4096 - footer.len());
|
||||
|
||||
let message_text = format!("{formated_items}{footer}");
|
||||
|
||||
let keyboard = generic_get_pagination_keyboard(page, total_pages, callback_data, true);
|
||||
let keyboard = generic_get_pagination_keyboard(page, items_page.pages, callback_data, true);
|
||||
|
||||
bot
|
||||
.edit_message_text(chat_id, message_id, message_text)
|
||||
.edit_message_text(chat_id, message_id, formated_page)
|
||||
.reply_markup(keyboard)
|
||||
.send()
|
||||
.await?;
|
||||
|
||||
@@ -190,17 +190,12 @@ where
|
||||
};
|
||||
}
|
||||
|
||||
let total_pages = items_page.pages;
|
||||
let footer = format!("\n\nСтраница {page}/{total_pages}");
|
||||
let formated_page = items_page.format(page, 4096);
|
||||
|
||||
let formated_items = items_page.format_items(4096 - footer.len());
|
||||
|
||||
let message_text = format!("{formated_items}{footer}");
|
||||
|
||||
let keyboard = generic_get_pagination_keyboard(page, total_pages, search_data, true);
|
||||
let keyboard = generic_get_pagination_keyboard(page, items_page.pages, search_data, true);
|
||||
|
||||
bot
|
||||
.edit_message_text(chat_id, message_id, message_text)
|
||||
.edit_message_text(chat_id, message_id, formated_page)
|
||||
.reply_markup(keyboard)
|
||||
.send()
|
||||
.await?;
|
||||
|
||||
@@ -175,11 +175,10 @@ async fn update_log_pagination_handler(
|
||||
|
||||
let page = update_callback_data.page;
|
||||
let total_pages = items_page.pages;
|
||||
let footer = format!("\n\nСтраница {page}/{total_pages}");
|
||||
|
||||
let formated_items = items_page.format_items(4096 - footer.len());
|
||||
let formated_page = items_page.format(page, 4096);
|
||||
|
||||
let message_text = format!("{header}{formated_items}{footer}");
|
||||
let message_text = format!("{header}{formated_page}");
|
||||
|
||||
let keyboard = generic_get_pagination_keyboard(page, total_pages, update_callback_data, true);
|
||||
bot
|
||||
|
||||
@@ -94,9 +94,7 @@ where
|
||||
T: Format + Clone + Debug,
|
||||
P: FormatTitle + Clone + Debug
|
||||
{
|
||||
pub fn format_items(&self, max_size: usize) -> String {
|
||||
log::error!("format: {:?}", self);
|
||||
|
||||
pub fn format(&self, page: u32, max_size: usize) -> String {
|
||||
let title: String = match &self.parent_item {
|
||||
Some(parent_item) => {
|
||||
let item_title = parent_item.format_title();
|
||||
@@ -109,13 +107,21 @@ where
|
||||
},
|
||||
None => "".to_string(),
|
||||
};
|
||||
let title_len: usize = title.len();
|
||||
|
||||
let total_pages = self.pages;
|
||||
let footer = format!("\n\nСтраница {page}/{total_pages}");
|
||||
|
||||
let formated_items = self.format_items(max_size - title.len() - footer.len());
|
||||
|
||||
format!("{title}{formated_items}{footer}")
|
||||
}
|
||||
|
||||
fn format_items(&self, max_size: usize) -> String {
|
||||
let separator = "\n\n\n";
|
||||
let separator_len: usize = separator.len();
|
||||
|
||||
let items_count: usize = self.items.len();
|
||||
let item_size: usize = (max_size - title_len - separator_len * items_count) / items_count;
|
||||
let item_size: usize = (max_size - separator_len * items_count) / items_count;
|
||||
|
||||
let format_result: Vec<FormatResult> = self.items
|
||||
.iter()
|
||||
@@ -129,13 +135,11 @@ where
|
||||
};
|
||||
|
||||
if !has_any_spliced {
|
||||
let items_string = format_result
|
||||
return format_result
|
||||
.into_iter()
|
||||
.map(|item| item.result)
|
||||
.collect::<Vec<String>>()
|
||||
.join(separator);
|
||||
|
||||
return format!("{title}{items_string}");
|
||||
}
|
||||
|
||||
let mut free_symbols: usize = format_result
|
||||
@@ -144,7 +148,7 @@ where
|
||||
.map(|item| item_size - item.current_size)
|
||||
.sum();
|
||||
|
||||
let items_string = self.items
|
||||
self.items
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(index, item)| {
|
||||
@@ -162,9 +166,7 @@ where
|
||||
}
|
||||
})
|
||||
.collect::<Vec<String>>()
|
||||
.join(separator);
|
||||
|
||||
format!("{title}{items_string}")
|
||||
.join(separator)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user