From df07db973318f1a2fd11cf77cad924f1b2d824cf Mon Sep 17 00:00:00 2001 From: Igor Tolmachov Date: Sat, 9 Jul 2022 01:45:37 +0900 Subject: Фикс багов и /void MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handlers/gen.py | 13 +++++++++++++ handlers/leave.py | 9 --------- handlers/member.py | 55 +++++++++++++++++++++++++----------------------------- handlers/pin.py | 14 ++++++++++---- shared/commands.py | 8 ++++++++ 5 files changed, 56 insertions(+), 43 deletions(-) delete mode 100644 handlers/leave.py diff --git a/handlers/gen.py b/handlers/gen.py index a27fb86..d324049 100644 --- a/handlers/gen.py +++ b/handlers/gen.py @@ -1,3 +1,5 @@ +import os + import mc from aiogram import types as t @@ -24,6 +26,17 @@ async def удалить_хуету(msg: t.Message): await msg.answer("Ты умник, ответь на сообщение") +@dp.message_handler(commands=["void"]) +async def лоботомия(msg: t.Message): + if msg.get_args() == "Я знаю что делаю": + os.remove(f"data/{msg.chat.id}") + await msg.answer("Лоботомия проведена успешно") + else: + await msg.answer( + "Напишите /void Я знаю что делаю", parse_mode=t.ParseMode.HTML + ) + + @dp.message_handler(commands=["chance"]) async def изменить_шанс_срания(msg: t.Message): if msg.get_args(): diff --git a/handlers/leave.py b/handlers/leave.py deleted file mode 100644 index 198e847..0000000 --- a/handlers/leave.py +++ /dev/null @@ -1,9 +0,0 @@ -from aiogram import types as t - -from shared.instances import dp -from utils import filters as f - - -@dp.my_chat_member_handler(f.user.add_member) -async def создатьтемплейты(upd: t.ChatMemberUpdated): - open(f"data/{upd.chat.id}", "w").close() diff --git a/handlers/member.py b/handlers/member.py index 3704c33..83fd39f 100644 --- a/handlers/member.py +++ b/handlers/member.py @@ -3,38 +3,34 @@ from aiogram import types as t from shared.instances import bot, dp from utils import filters as f -request_queue: list[int] = [] - @dp.chat_join_request_handler() async def приём_запроса(cjr: t.ChatJoinRequest): - if cjr.from_user.id not in request_queue: - request_queue.append(cjr.from_user.id) - r = await bot.send_message( - cjr.chat.id, - f'{cjr.from_user.mention} хочет в чат', - parse_mode=t.ParseMode.HTML, - ) - await bot.send_poll( - cjr.chat.id, - "Пускаем ?", - [ - "Да", - "Нет", - ], - False, - reply_to_message_id=r.message_id, - open_period=600, - reply_markup=t.InlineKeyboardMarkup().add( - t.InlineKeyboardButton( - "Проверить опрос", - callback_data=f"check_request_poll:{cjr.from_user.id}", - ) - ), - ) - await bot.send_message( - cjr.from_user.id, "Заявка на вступление в группу будет вскоре рассмотрена" - ) + r = await bot.send_message( + cjr.chat.id, + f'{cjr.from_user.mention} хочет в чат', + parse_mode=t.ParseMode.HTML, + ) + await bot.send_poll( + cjr.chat.id, + "Пускаем ?", + [ + "Да", + "Нет", + ], + False, + reply_to_message_id=r.message_id, + open_period=600, + reply_markup=t.InlineKeyboardMarkup().add( + t.InlineKeyboardButton( + "Проверить опрос", + callback_data=f"check_request_poll:{cjr.from_user.id}", + ) + ), + ) + await bot.send_message( + cjr.from_user.id, "Заявка на вступление в группу будет вскоре рассмотрена" + ) @dp.callback_query_handler( @@ -52,7 +48,6 @@ async def проверить_запрос(clb: t.CallbackQuery): if not poll.is_closed: await bot.stop_poll(msg.chat.id, msg.message_id) - request_queue.remove(user_id) yes = poll.options[0].voter_count no = poll.options[1].voter_count win = max(yes, no) diff --git a/handlers/pin.py b/handlers/pin.py index dc08633..e2781c4 100644 --- a/handlers/pin.py +++ b/handlers/pin.py @@ -19,17 +19,23 @@ async def закрепить_хуету(msg: t.Message): ["Да", "УДАЛИ НАХУЙ", "Нет"], close_date=datetime.now() + timedelta(minutes=10), reply_markup=t.InlineKeyboardMarkup().add( - t.InlineKeyboardButton("Проверить опрос", callback_data="check_pin_poll") + t.InlineKeyboardButton( + "Проверить опрос", + callback_data=f"check_pin_poll:{msg.reply_to_message.id}", + ) ), ) else: await msg.answer("Ты умник, ответь на сообщение") -@dp.callback_query_handler(f.message.is_chat, lambda clb: clb.data == "check_pin_poll") +@dp.callback_query_handler( + f.message.is_chat, lambda clb: clb.data.split(":")[0] == "check_pin_poll" +) async def проверить_закреп(clb: t.CallbackQuery): poll = clb.message.poll msg = clb.message + pin = int(clb.data.split(":")[1]) if poll.total_voter_count < 2: await clb.answer(f"Нужно хотябы 2 голоса, сейчас {poll.total_voter_count}") @@ -42,7 +48,7 @@ async def проверить_закреп(clb: t.CallbackQuery): win = max(yes, delete) if win == yes: - await msg.reply_to_message.pin() + await msg.chat.pin_message(pin) elif win == delete: - await msg.reply_to_message.delete() + await msg.chat.delete_message(pin) await msg.delete() diff --git a/shared/commands.py b/shared/commands.py index bf1a6cb..ceb6226 100644 --- a/shared/commands.py +++ b/shared/commands.py @@ -6,6 +6,14 @@ commands = { group(): [ cmd("gen", "Покакать текстом"), cmd("del", "Убрать говно"), + cmd("void", "Лоботомия"), + cmd("pin", "Закрепить говно"), + cmd("chance", "Установить шанс покакать в туалет"), + ], + private(): [ + cmd("gen", "Покакать текстом"), + cmd("del", "Убрать говно"), + cmd("void", "Лоботомия"), cmd("pin", "Закрепить говно"), cmd("chance", "Установить шанс покакать в туалет"), ], -- cgit v1.2.3