clash-telegram-bot/handlers/group/captcha.py
2022-03-18 21:25:50 +02:00

53 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from aiogram import types
from aiogram.types.chat_permissions import ChatPermissions
from load import dp, bot, config
from keyboards.inline.keyboard import verify_button
from utils.timer import timer_manager, KickTimer
async def captcha_kick_user(message: types.Message, chat_id: int, user_id:int):
print("asdasdasd")
try:
await bot.ban_chat_member(chat_id=chat_id, user_id=user_id)
except Exception: pass
await bot.unban_chat_member(chat_id, user_id, only_if_banned=True)
await message.delete()
try:
await bot.send_message(user_id, "Время вышло!")
except Exception: pass
state = dp.current_state(chat=user_id, user=user_id)
await state.finish()
@dp.message_handler(is_chat=True, content_types=["new_chat_members"])
async def on_join(message: types.Message):
user_id = message.from_user.id
chat_id = message.chat.id
try:
await bot.restrict_chat_member(
chat_id=chat_id,
user_id=user_id,
permissions=ChatPermissions(can_send_messages=False)
)
except Exception: return
hello_message = (
"Привет, <a href='tg://user?id={user_id}'>{name}</a>! "
"Для того чтобы удостоверится что ты наш игрок, мы попросим пройти верификацию!\n"
"<b>У вас есть 2 минуты на прохождение верификации!</b>"
)
me = await bot.get_me()
captcha_message = await bot.send_message(
message.chat.id,
hello_message.format(user_id=user_id, name=message.from_user.first_name),
reply_markup=verify_button(message.from_user, me.username)
)
timer_manager.add_timer(user_id, captcha_message, KickTimer(int(config['Bot']['verify_timeout']), captcha_kick_user,
args=[captcha_message, chat_id, user_id]))
#Timer(int(config['Bot']['verify_timeout']), captcha_kick_user, args=[captcha_message, chat_id, user_id])
await message.delete()