diff options
Diffstat (limited to 'handlers')
| -rw-r--r-- | handlers/gen.py | 13 | ||||
| -rw-r--r-- | handlers/leave.py | 9 | ||||
| -rw-r--r-- | handlers/member.py | 55 | ||||
| -rw-r--r-- | handlers/pin.py | 14 |
4 files changed, 48 insertions, 43 deletions
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 @@ | |||
| 1 | import os | ||
| 2 | |||
| 1 | import mc | 3 | import mc |
| 2 | from aiogram import types as t | 4 | from aiogram import types as t |
| 3 | 5 | ||
| @@ -24,6 +26,17 @@ async def удалить_хуету(msg: t.Message): | |||
| 24 | await msg.answer("Ты умник, ответь на сообщение") | 26 | await msg.answer("Ты умник, ответь на сообщение") |
| 25 | 27 | ||
| 26 | 28 | ||
| 29 | @dp.message_handler(commands=["void"]) | ||
| 30 | async def лоботомия(msg: t.Message): | ||
| 31 | if msg.get_args() == "Я знаю что делаю": | ||
| 32 | os.remove(f"data/{msg.chat.id}") | ||
| 33 | await msg.answer("Лоботомия проведена успешно") | ||
| 34 | else: | ||
| 35 | await msg.answer( | ||
| 36 | "Напишите <code>/void Я знаю что делаю</code>", parse_mode=t.ParseMode.HTML | ||
| 37 | ) | ||
| 38 | |||
| 39 | |||
| 27 | @dp.message_handler(commands=["chance"]) | 40 | @dp.message_handler(commands=["chance"]) |
| 28 | async def изменить_шанс_срания(msg: t.Message): | 41 | async def изменить_шанс_срания(msg: t.Message): |
| 29 | if msg.get_args(): | 42 | 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 @@ | |||
| 1 | from aiogram import types as t | ||
| 2 | |||
| 3 | from shared.instances import dp | ||
| 4 | from utils import filters as f | ||
| 5 | |||
| 6 | |||
| 7 | @dp.my_chat_member_handler(f.user.add_member) | ||
| 8 | async def создатьтемплейты(upd: t.ChatMemberUpdated): | ||
| 9 | 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 | |||
| 3 | from shared.instances import bot, dp | 3 | from shared.instances import bot, dp |
| 4 | from utils import filters as f | 4 | from utils import filters as f |
| 5 | 5 | ||
| 6 | request_queue: list[int] = [] | ||
| 7 | |||
| 8 | 6 | ||
| 9 | @dp.chat_join_request_handler() | 7 | @dp.chat_join_request_handler() |
| 10 | async def приём_запроса(cjr: t.ChatJoinRequest): | 8 | async def приём_запроса(cjr: t.ChatJoinRequest): |
| 11 | if cjr.from_user.id not in request_queue: | 9 | r = await bot.send_message( |
| 12 | request_queue.append(cjr.from_user.id) | 10 | cjr.chat.id, |
| 13 | r = await bot.send_message( | 11 | f'<a href="tg://user?id={cjr.from_user.id}">{cjr.from_user.mention}</a> хочет в чат', |
| 14 | cjr.chat.id, | 12 | parse_mode=t.ParseMode.HTML, |
| 15 | f'<a href="tg://user?id={cjr.from_user.id}">{cjr.from_user.mention}</a> хочет в чат', | 13 | ) |
| 16 | parse_mode=t.ParseMode.HTML, | 14 | await bot.send_poll( |
| 17 | ) | 15 | cjr.chat.id, |
| 18 | await bot.send_poll( | 16 | "Пускаем ?", |
| 19 | cjr.chat.id, | 17 | [ |
| 20 | "Пускаем ?", | 18 | "Да", |
| 21 | [ | 19 | "Нет", |
| 22 | "Да", | 20 | ], |
| 23 | "Нет", | 21 | False, |
| 24 | ], | 22 | reply_to_message_id=r.message_id, |
| 25 | False, | 23 | open_period=600, |
| 26 | reply_to_message_id=r.message_id, | 24 | reply_markup=t.InlineKeyboardMarkup().add( |
| 27 | open_period=600, | 25 | t.InlineKeyboardButton( |
| 28 | reply_markup=t.InlineKeyboardMarkup().add( | 26 | "Проверить опрос", |
| 29 | t.InlineKeyboardButton( | 27 | callback_data=f"check_request_poll:{cjr.from_user.id}", |
| 30 | "Проверить опрос", | 28 | ) |
| 31 | callback_data=f"check_request_poll:{cjr.from_user.id}", | 29 | ), |
| 32 | ) | 30 | ) |
| 33 | ), | 31 | await bot.send_message( |
| 34 | ) | 32 | cjr.from_user.id, "Заявка на вступление в группу будет вскоре рассмотрена" |
| 35 | await bot.send_message( | 33 | ) |
| 36 | cjr.from_user.id, "Заявка на вступление в группу будет вскоре рассмотрена" | ||
| 37 | ) | ||
| 38 | 34 | ||
| 39 | 35 | ||
| 40 | @dp.callback_query_handler( | 36 | @dp.callback_query_handler( |
| @@ -52,7 +48,6 @@ async def проверить_запрос(clb: t.CallbackQuery): | |||
| 52 | if not poll.is_closed: | 48 | if not poll.is_closed: |
| 53 | await bot.stop_poll(msg.chat.id, msg.message_id) | 49 | await bot.stop_poll(msg.chat.id, msg.message_id) |
| 54 | 50 | ||
| 55 | request_queue.remove(user_id) | ||
| 56 | yes = poll.options[0].voter_count | 51 | yes = poll.options[0].voter_count |
| 57 | no = poll.options[1].voter_count | 52 | no = poll.options[1].voter_count |
| 58 | win = max(yes, no) | 53 | 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): | |||
| 19 | ["Да", "УДАЛИ НАХУЙ", "Нет"], | 19 | ["Да", "УДАЛИ НАХУЙ", "Нет"], |
| 20 | close_date=datetime.now() + timedelta(minutes=10), | 20 | close_date=datetime.now() + timedelta(minutes=10), |
| 21 | reply_markup=t.InlineKeyboardMarkup().add( | 21 | reply_markup=t.InlineKeyboardMarkup().add( |
| 22 | t.InlineKeyboardButton("Проверить опрос", callback_data="check_pin_poll") | 22 | t.InlineKeyboardButton( |
| 23 | "Проверить опрос", | ||
| 24 | callback_data=f"check_pin_poll:{msg.reply_to_message.id}", | ||
| 25 | ) | ||
| 23 | ), | 26 | ), |
| 24 | ) | 27 | ) |
| 25 | else: | 28 | else: |
| 26 | await msg.answer("Ты умник, ответь на сообщение") | 29 | await msg.answer("Ты умник, ответь на сообщение") |
| 27 | 30 | ||
| 28 | 31 | ||
| 29 | @dp.callback_query_handler(f.message.is_chat, lambda clb: clb.data == "check_pin_poll") | 32 | @dp.callback_query_handler( |
| 33 | f.message.is_chat, lambda clb: clb.data.split(":")[0] == "check_pin_poll" | ||
| 34 | ) | ||
| 30 | async def проверить_закреп(clb: t.CallbackQuery): | 35 | async def проверить_закреп(clb: t.CallbackQuery): |
| 31 | poll = clb.message.poll | 36 | poll = clb.message.poll |
| 32 | msg = clb.message | 37 | msg = clb.message |
| 38 | pin = int(clb.data.split(":")[1]) | ||
| 33 | 39 | ||
| 34 | if poll.total_voter_count < 2: | 40 | if poll.total_voter_count < 2: |
| 35 | await clb.answer(f"Нужно хотябы 2 голоса, сейчас {poll.total_voter_count}") | 41 | await clb.answer(f"Нужно хотябы 2 голоса, сейчас {poll.total_voter_count}") |
| @@ -42,7 +48,7 @@ async def проверить_закреп(clb: t.CallbackQuery): | |||
| 42 | win = max(yes, delete) | 48 | win = max(yes, delete) |
| 43 | 49 | ||
| 44 | if win == yes: | 50 | if win == yes: |
| 45 | await msg.reply_to_message.pin() | 51 | await msg.chat.pin_message(pin) |
| 46 | elif win == delete: | 52 | elif win == delete: |
| 47 | await msg.reply_to_message.delete() | 53 | await msg.chat.delete_message(pin) |
| 48 | await msg.delete() | 54 | await msg.delete() |
