feat: показать шаблоны вместо SD_MAIN_MENU_TEXT при нажатии 3
This commit is contained in:
@@ -153,21 +153,17 @@ async def main_menu(msg: Message):
|
|||||||
tasks = [check_template(t, client) for t in pre_filtered]
|
tasks = [check_template(t, client) for t in pre_filtered]
|
||||||
results = await asyncio.gather(*tasks)
|
results = await asyncio.gather(*tasks)
|
||||||
templates = [t for t in results if t is not None]
|
templates = [t for t in results if t is not None]
|
||||||
# Пагинация по 10
|
|
||||||
per_page = 10
|
|
||||||
total_pages = (len(templates) + per_page - 1) // per_page if templates else 1
|
|
||||||
start = 0
|
|
||||||
end = min(per_page, len(templates))
|
|
||||||
page_items = templates[start:end]
|
|
||||||
template_lines = ""
|
template_lines = ""
|
||||||
for idx, t in enumerate(page_items):
|
for idx, t in enumerate(templates):
|
||||||
num = idx + 1
|
num = idx + 1
|
||||||
digit = f"{num}⃣"
|
digit = f"{num}⃣" if num <= 9 else "0⃣" if num == 10 else str(num)
|
||||||
template_lines += f"{digit} - {t['name']}\n"
|
template_lines += f"{digit} - {t['name']}\n"
|
||||||
page_info = f"\n📄 <b>Страница 1 из {total_pages}</b>"
|
# Сохраняем шаблоны в sd_sessions для sd_module_handler
|
||||||
template_text = f"\n\n📋 <b>Выберите шаблон:</b>\n{template_lines}{page_info}"
|
sd_sessions[user_id]["templates"] = templates
|
||||||
full_text = SD_MAIN_MENU_TEXT + template_text
|
sd_sessions[user_id]["template_names"] = {str(i+1): str(t["id"]) for i, t in enumerate(templates)}
|
||||||
await msg.answer(full_text, parse_mode="html")
|
sd_sessions[user_id]["template_menu_text"] = template_lines.strip()
|
||||||
|
template_text = f"📋 <b>Выберите нужный шаблон:</b>\n\n{template_lines}"
|
||||||
|
await msg.answer(template_text, parse_mode="html")
|
||||||
else:
|
else:
|
||||||
await msg.answer(SD_MAIN_MENU_TEXT, parse_mode="html")
|
await msg.answer(SD_MAIN_MENU_TEXT, parse_mode="html")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user