mirror of
https://github.com/civsocit/olgram.git
synced 2023-07-22 01:29:12 +03:00
minor fixes
This commit is contained in:
parent
d53a574377
commit
a3eb985d28
@ -5,7 +5,7 @@ from olgram.models.models import Bot, User, DefaultAnswer
|
|||||||
from aiogram.dispatcher import FSMContext
|
from aiogram.dispatcher import FSMContext
|
||||||
from aiogram.utils.callback_data import CallbackData
|
from aiogram.utils.callback_data import CallbackData
|
||||||
from textwrap import dedent
|
from textwrap import dedent
|
||||||
from olgram.utils.mix import edit_or_create, button_text_limit
|
from olgram.utils.mix import edit_or_create, button_text_limit, wrap
|
||||||
from olgram.commands import bot_actions
|
from olgram.commands import bot_actions
|
||||||
|
|
||||||
import typing as ty
|
import typing as ty
|
||||||
@ -237,7 +237,13 @@ async def send_bot_templates_menu(bot: Bot, call: ty.Optional[types.CallbackQuer
|
|||||||
""")
|
""")
|
||||||
|
|
||||||
templates = await bot.answers
|
templates = await bot.answers
|
||||||
templates_text = "\n".join(f"{n}. {template.text}" for n, template in enumerate(templates))
|
|
||||||
|
total_text_len = sum(len(t.text) for t in templates) + len(text) # примерная длина текста
|
||||||
|
max_len = 1000
|
||||||
|
if total_text_len > 4000:
|
||||||
|
max_len = 100
|
||||||
|
|
||||||
|
templates_text = "\n".join(f"{n}. {wrap(template.text, max_len)}" for n, template in enumerate(templates))
|
||||||
if not templates_text:
|
if not templates_text:
|
||||||
templates_text = "(нет шаблонов)"
|
templates_text = "(нет шаблонов)"
|
||||||
text = text.format(bot.name, templates_text)
|
text = text.format(bot.name, templates_text)
|
||||||
@ -283,8 +289,12 @@ async def template_received(message: types.Message, state: FSMContext):
|
|||||||
await templates[number].delete()
|
await templates[number].delete()
|
||||||
else:
|
else:
|
||||||
# Add template
|
# Add template
|
||||||
template = DefaultAnswer(text=message.text, bot=bot)
|
total_templates = len(await bot.answers)
|
||||||
await template.save()
|
if total_templates > 30:
|
||||||
|
await message.answer("У вашего бота уже слишком много щаблонов")
|
||||||
|
else:
|
||||||
|
template = DefaultAnswer(text=message.text, bot=bot)
|
||||||
|
await template.save()
|
||||||
|
|
||||||
await send_bot_templates_menu(bot, chat_id=message.chat.id)
|
await send_bot_templates_menu(bot, chat_id=message.chat.id)
|
||||||
|
|
||||||
|
@ -22,8 +22,11 @@ async def edit_or_create(call: CallbackQuery, message: str,
|
|||||||
parse_mode=parse_mode)
|
parse_mode=parse_mode)
|
||||||
|
|
||||||
|
|
||||||
def button_text_limit(data: str) -> str:
|
def wrap(data: str, max_len: int) -> str:
|
||||||
max_len = 30
|
|
||||||
if len(data) > max_len:
|
if len(data) > max_len:
|
||||||
data = data[:max_len-4] + "..."
|
data = data[:max_len-4] + "..."
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
def button_text_limit(data: str) -> str:
|
||||||
|
return wrap(data, 30)
|
||||||
|
Loading…
Reference in New Issue
Block a user