|
|
@@ -11,59 +11,43 @@ from pyrogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton,
|
|
|
from pyrogram.errors.exceptions.bad_request_400 import UserNotParticipant, ChatAdminRequired
|
|
|
from wbb.utils.errors import capture_err
|
|
|
from wbb.utils.filter_groups import welcome_captcha_group
|
|
|
-from wbb.utils.dbfunctions import is_gbanned_user
|
|
|
+#from wbb.utils.dbfunctions import is_gbanned_user
|
|
|
from random import randint, shuffle
|
|
|
-
|
|
|
-answers = []
|
|
|
-
|
|
|
+from pyrogram import emoji
|
|
|
|
|
|
@app.on_message(filters.new_chat_members, group=welcome_captcha_group)
|
|
|
@capture_err
|
|
|
async def welcome(_, message: Message):
|
|
|
- global answers
|
|
|
"""Mute new member and send message with button"""
|
|
|
for member in message.new_chat_members:
|
|
|
- n1 = str(randint(1, 99))
|
|
|
- n2 = str(randint(1, 99))
|
|
|
- r1 = str(randint(1, 99))
|
|
|
- r2 = str(randint(1, 99))
|
|
|
- r3 = str(randint(1, 99))
|
|
|
- correct_answer = str(int(n1) + int(n2))
|
|
|
- answers.append(
|
|
|
- {
|
|
|
- "user_id": member.id,
|
|
|
- "correct_answer": correct_answer
|
|
|
- }
|
|
|
- )
|
|
|
try:
|
|
|
- if await is_gbanned_user(member.id):
|
|
|
- await message.chat.kick_member(member.id)
|
|
|
- continue
|
|
|
+ #if await is_gbanned_user(member.id):
|
|
|
+ # await message.chat.kick_member(member.id)
|
|
|
+ # continue
|
|
|
if member.is_bot:
|
|
|
continue # ignore bots
|
|
|
- text = (f"**Welcome**, {(member.mention())}\n**Are you human?**\n"
|
|
|
- f"Solve this expression in less than {WELCOME_DELAY_KICK_SEC} seconds.\n"
|
|
|
- f"**Expression:** __{n1} + {n2}__")
|
|
|
+ text = (f"Welcome, {(member.mention())}\nAre you human?\n"
|
|
|
+ f"Click on the button which include this emoji {emoji.CHECK_MARK_BUTTON}.'")
|
|
|
await message.chat.restrict_member(member.id, ChatPermissions())
|
|
|
except ChatAdminRequired:
|
|
|
continue
|
|
|
|
|
|
keyboard = [
|
|
|
InlineKeyboardButton(
|
|
|
- f"{r1}",
|
|
|
- callback_data=f"pressed_button {r1} {member.id}"
|
|
|
+ f"{emoji.BRAIN}",
|
|
|
+ callback_data=f"pressed_button {emoji.BRAIN} {member.id}"
|
|
|
),
|
|
|
InlineKeyboardButton(
|
|
|
- f"{r2}",
|
|
|
- callback_data=f"pressed_button {r2} {member.id}"
|
|
|
+ f"{emoji.CHECK_MARK_BUTTON}",
|
|
|
+ callback_data=f"pressed_button {emoji.CHECK_MARK_BUTTON} {member.id}"
|
|
|
),
|
|
|
InlineKeyboardButton(
|
|
|
- f"{r3}",
|
|
|
- callback_data=f"pressed_button {r3} {member.id}"
|
|
|
+ f"{emoji.CROSS_MARK}",
|
|
|
+ callback_data=f"pressed_button {emoji.CROSS_MARK} {member.id}"
|
|
|
),
|
|
|
InlineKeyboardButton(
|
|
|
- f"{correct_answer}",
|
|
|
- callback_data=f"pressed_button {correct_answer} {member.id}"
|
|
|
+ f"{emoji.ROBOT}",
|
|
|
+ callback_data=f"pressed_button {emoji.ROBOT} {member.id}"
|
|
|
)
|
|
|
]
|
|
|
shuffle(keyboard)
|
|
|
@@ -80,7 +64,6 @@ async def welcome(_, message: Message):
|
|
|
|
|
|
@app.on_callback_query(filters.regex("pressed_button"))
|
|
|
async def callback_query_welcome_button(client, callback_query):
|
|
|
- global answers
|
|
|
"""After the new member presses the button, set his permissions to
|
|
|
chat permissions, delete button message and join message
|
|
|
"""
|
|
|
@@ -90,14 +73,11 @@ async def callback_query_welcome_button(client, callback_query):
|
|
|
pending_user = await app.get_users(int(data.split(None, 2)[2]))
|
|
|
pressed_user_id = callback_query.from_user.id
|
|
|
pending_user_id = pending_user.id
|
|
|
- for user in answers:
|
|
|
- if user['user_id'] == pending_user_id:
|
|
|
- if user['correct_answer'] != answer:
|
|
|
- await callback_query.answer("That's Wrong, Learn Maths.")
|
|
|
- return
|
|
|
- break
|
|
|
+ if answer != emoji.CHECK_MARK_BUTTON:
|
|
|
+ await callback_query.answer("Yeah, It's Wrong.")
|
|
|
+ return
|
|
|
if pending_user_id == pressed_user_id:
|
|
|
- await callback_query.answer("Captcha passed!, Have a nice stay.")
|
|
|
+ await callback_query.answer("Captcha passed successfully!")
|
|
|
await button_message.chat.unban_member(pending_user_id)
|
|
|
await button_message.delete()
|
|
|
else:
|