From 0de7969d30e3e57d681afdfcadd245f6988a0342 Mon Sep 17 00:00:00 2001 From: Igor Tolmachov Date: Mon, 5 Dec 2022 22:29:41 +0900 Subject: 2.1 --- handlers/gen.py | 59 +++++++-------------------------------------------------- 1 file changed, 7 insertions(+), 52 deletions(-) (limited to 'handlers/gen.py') diff --git a/handlers/gen.py b/handlers/gen.py index 72afb79..ef397db 100644 --- a/handlers/gen.py +++ b/handlers/gen.py @@ -1,60 +1,15 @@ -import random - -import mc from aiogram import types as t -from shared.database import Message -from shared.instances import bot, config, dp, session +from shared.instances import chats, dp +from shared.samples import samples from utils import filters as f -def get_text(chat_id: int) -> str: - with session() as s: - samples = [ - m.tuple()[0] - for m in s.query(Message.message).filter(Message.chat_id == chat_id).all() - ] - - assert ( - len(samples) != 0 - ), "Нету данных на основе которых можно сгенерировать сообщение" - - generator = mc.PhraseGenerator(samples) - gen_config = config.get_config(chat_id).gen - validators = [] - - if gen_config.max_word_count is not None or gen_config.min_word_count is not None: - validators.append( - mc.builtin.validators.words_count( - minimal=gen_config.min_word_count, - maximal=gen_config.max_word_count, - ) - ) - - while True: - message = generator.generate_phrase_or_none(1, validators=validators) - if message is not None: - return message - - @dp.message_handler(commands=["gen"]) async def gen_command(msg: t.Message) -> None: - if config.get_config(msg.chat.id).gen.delete_command: + if chats.get(msg.chat.id).gen.delete_command: await msg.delete() - await msg.answer(get_text(msg.chat.id)) - - -@dp.message_handler(commands=["del"]) -async def del_command(msg: t.Message) -> None: - await msg.delete() - - if msg.reply_to_message: - if msg.reply_to_message.from_user.id == bot.id: - await msg.reply_to_message.delete() - else: - await msg.reply("Можно удалять только сообщения бота") - else: - await msg.reply("Вы не ответили на сообщение") + await msg.answer(samples.get(msg.chat.id).generate()) @dp.message_handler( @@ -63,7 +18,7 @@ async def del_command(msg: t.Message) -> None: content_types=[t.ContentType.ANY], ) async def chance_message(msg: t.Message) -> None: - if config.get_config(msg.chat.id).gen.reply: - await msg.reply(get_text(msg.chat.id)) + if chats.get(msg.chat.id).gen.reply: + await msg.reply(samples.get(msg.chat.id).generate()) else: - await msg.answer(get_text(msg.chat.id)) + await msg.answer(samples.get(msg.chat.id).generate()) -- cgit v1.2.3