aboutsummaryrefslogtreecommitdiff
path: root/handlers/pin.py
diff options
context:
space:
mode:
Diffstat (limited to 'handlers/pin.py')
-rw-r--r--handlers/pin.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/handlers/pin.py b/handlers/pin.py
new file mode 100644
index 0000000..dc08633
--- /dev/null
+++ b/handlers/pin.py
@@ -0,0 +1,48 @@
1from datetime import datetime, timedelta
2
3from aiogram import types as t
4
5from shared.instances import bot, dp
6from utils import filters as f
7
8
9@dp.message_handler(f.message.is_chat, commands=["pin"])
10async def закрепить_хуету(msg: t.Message):
11 await msg.delete()
12 if msg.reply_to_message:
13 r = await msg.reply_to_message.reply(
14 f'<a href="tg://user?id={msg.from_user.id}">{msg.from_user.mention}</a> хочет закрепить сообщение',
15 parse_mode=t.ParseMode.HTML,
16 )
17 await r.reply_poll(
18 "Закрепить ?",
19 ["Да", "УДАЛИ НАХУЙ", "Нет"],
20 close_date=datetime.now() + timedelta(minutes=10),
21 reply_markup=t.InlineKeyboardMarkup().add(
22 t.InlineKeyboardButton("Проверить опрос", callback_data="check_pin_poll")
23 ),
24 )
25 else:
26 await msg.answer("Ты умник, ответь на сообщение")
27
28
29@dp.callback_query_handler(f.message.is_chat, lambda clb: clb.data == "check_pin_poll")
30async def проверить_закреп(clb: t.CallbackQuery):
31 poll = clb.message.poll
32 msg = clb.message
33
34 if poll.total_voter_count < 2:
35 await clb.answer(f"Нужно хотябы 2 голоса, сейчас {poll.total_voter_count}")
36 else:
37 if not poll.is_closed:
38 await bot.stop_poll(msg.chat.id, msg.message_id)
39
40 yes = poll.options[0].voter_count
41 delete = poll.options[1].voter_count
42 win = max(yes, delete)
43
44 if win == yes:
45 await msg.reply_to_message.pin()
46 elif win == delete:
47 await msg.reply_to_message.delete()
48 await msg.delete()