diff options
| author | Igor Tolmachov <me@igorek.dev> | 2022-07-09 01:13:20 +0900 |
|---|---|---|
| committer | Igor Tolmachov <me@igorek.dev> | 2022-07-09 01:13:20 +0900 |
| commit | 93067d9a91395c339ce55a111ce4b6e1020f0121 (patch) | |
| tree | 310012b67d6e31c3779e57cd50285650b2d83d13 /handlers/pin.py | |
| parent | 91a36ea91b7a1933e3f5933ca01396fee77c214a (diff) | |
| download | karpov_ai_bot-93067d9a91395c339ce55a111ce4b6e1020f0121.tar.gz karpov_ai_bot-93067d9a91395c339ce55a111ce4b6e1020f0121.zip | |
Теперь доступен не только в ананасах!
+ опрос на вступление человека
Diffstat (limited to 'handlers/pin.py')
| -rw-r--r-- | handlers/pin.py | 48 |
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 @@ | |||
| 1 | from datetime import datetime, timedelta | ||
| 2 | |||
| 3 | from aiogram import types as t | ||
| 4 | |||
| 5 | from shared.instances import bot, dp | ||
| 6 | from utils import filters as f | ||
| 7 | |||
| 8 | |||
| 9 | @dp.message_handler(f.message.is_chat, commands=["pin"]) | ||
| 10 | async 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") | ||
| 30 | async 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() | ||
