From 4e7b5e6493497eb2de0dd40df19fc6492427e446 Mon Sep 17 00:00:00 2001 From: Igor <50257429+igorechek06@users.noreply.github.com> Date: Tue, 12 Oct 2021 21:10:36 +0900 Subject: Исправил баги MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handlers/generate.py | 80 +++++++++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 36 deletions(-) (limited to 'handlers') diff --git a/handlers/generate.py b/handlers/generate.py index 6d0ee3d..7f58185 100644 --- a/handlers/generate.py +++ b/handlers/generate.py @@ -4,8 +4,11 @@ import mc from shared.instances import dp, bot from aiogram import types as t from utils import filters as f +from shared import instances as ins -poll_ids = {} +pin_reply_markup = t.InlineKeyboardMarkup().add( + t.InlineKeyboardButton("Проверить сейчас", callback_data="chek") +) @dp.message_handler(f.message.is_chat, commands=['gen']) @@ -30,55 +33,60 @@ async def удалить_хуету(msg: t.Message): @dp.message_handler(f.message.is_chat, commands=["pin"]) async def закрепить_хуету(msg: t.Message): await msg.delete() - - btns = t.InlineKeyboardMarkup().add( - t.InlineKeyboardButton("Проверить сейчас", callback_data="chek") - ) - if msg.reply_to_message: - if msg.reply_to_message.from_user.id == bot.id: - poll = await msg.reply_to_message.reply_poll( - "Закрепить ?", - [ - "Да", - "УДАЛИ НАХУЙ", - "Нет" - ], - close_date=datetime.now() + timedelta(minutes=10), - reply_markup=btns - ) - - poll_ids[poll.poll.id] = msg.reply_to_message - - else: - await msg.answer("Ты умник, можно только мои закреплять") + await msg.reply_to_message.reply_poll( + "Закрепить ?", + [ + "Да", + "УДАЛИ НАХУЙ", + "Нет" + ], + close_date=datetime.now() + timedelta(minutes=10), + reply_markup=pin_reply_markup + ) else: await msg.answer("Ты умник, ответь на сообщение") -@dp.message_handler(f.message.chance(10), f.message.is_chat, content_types=[t.ContentType.ANY]) +@dp.message_handler(commands=["chance"]) +async def закрепить_хуту(msg: t.Message): + if msg.get_args(): + try: + chance = int(msg.get_args().split()[0]) + if 0 <= chance <= 100: + ins.gen_chance = chance + else: + raise RuntimeError() + + await msg.answer(f"Теперь я сру с шансом в: {chance}%") + except Exception: + await msg.answer("Я хз что не так, но я знаю что ты дебил \n /chance <ЧИСЛО ОТ 0 ДО 100>") + else: + await msg.answer(f"Я сру с шансом в: {ins.gen_chance}%") + + +@dp.message_handler(f.message.chance, f.message.is_chat, content_types=[t.ContentType.ANY]) async def срать_сообщение_с_шансом(msg: t.Message): await сгенерировать_хуету(msg) -@dp.poll_handler() -async def время_вышло(poll: t.Poll): - if poll.is_closed and poll.total_voter_count > 0: +@dp.callback_query_handler(f.message.is_chat, lambda clb: clb.data == "chek") +async def проверить_опрос(clb: t.CallbackQuery): + poll = clb.message.poll + msg = clb.message + + if poll.total_voter_count <= 0: + await clb.answer("Видишь голоса? Вот и я невижу") + else: + if not poll.is_closed: + await bot.stop_poll(msg.chat.id, msg.message_id) + await msg.delete_reply_markup() + yes = poll.options[0].voter_count delete = poll.options[1].voter_count win = max(yes, delete) - try: - msg: t.Message = poll_ids.pop(poll.id) - except KeyError: - return - if win == yes: await msg.pin() elif win == delete: await msg.delete() - - -@dp.callback_query_handler(f.message.is_chat, lambda clb: clb.data == "chek") -async def проверить_опрос(clb: t.CallbackQuery): - await bot.stop_poll(clb.message.chat.id, clb.message.message_id) -- cgit v1.2.3