Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import telebot # імпортуємо бібліотеку
- import random
- # токе бота отриманий BotFather
- bot_token = "****************************g"
- # Посилання із запрошенням на нашу групу
- group_invite_link = "https://t.me/+**********************"
- # Описуємо правила
- rules = """
- Вітаю в нашій групі!
- Прочитайте та підтвердьте наступні правила:
- 1. Правило 1
- 2. Правило 2
- 3. Правило 3
- """
- # Створюємо бота
- bot = telebot.TeleBot(token=bot_token)
- def captcha_txt():
- operators = [
- "*",
- "-",
- "/",
- "+",
- ]
- operator = random.choice(operators)
- while True:
- left_part = random.randint(0, 10)
- right_part = random.randint(1, 10)
- if operator == "*":
- data = left_part * right_part
- elif operator == "-":
- if left_part < right_part:
- left_part, right_part = right_part, left_part
- data = left_part - right_part
- elif operator == "/":
- data = left_part / right_part
- if not data.is_integer():
- continue # Знову генеруємо left_part та right_part
- data = int(data)
- else:
- data = left_part + right_part
- break # Break the loop if a valid result is obtained
- return left_part, right_part, data, operator
- @bot.callback_query_handler(
- func=lambda call: True
- ) # Тут перевіряємо праильність вирішення каптчі
- def handle_button_click(call):
- bot.answer_callback_query(call.id) # Відлювлюємо відповідь
- # Перевіряємо відповідь
- if call.data == "incorrect":
- bot.send_message(call.message.chat.id, "Невірна відповідь. Спробуйте знову.")
- # Перезапускаємо процес
- start(call.message)
- @bot.message_handler(commands=["start"])
- def start(message):
- bot.send_message(message.chat.id, rules)
- left_part, right_part, data, operator = captcha_txt() # генеруємо всі дані
- print(left_part, right_part, data, operator)
- button_list = [ # створюємо список з конпками
- telebot.types.InlineKeyboardButton(
- text=f"Погоджуюсь з правилами. Правильна відповідь {data}",
- url=group_invite_link,
- ),
- telebot.types.InlineKeyboardButton(
- text=f"Погоджуюсь з правилами. Правильна відповідь {random.randint(0, 50)}",
- callback_data="incorrect",
- ),
- telebot.types.InlineKeyboardButton(
- text=f"Погоджуюсь з правилами. Правильна відповідь {random.randint(0, 50)}",
- callback_data="incorrect",
- ),
- ]
- random.shuffle(button_list) # тасуємо список з кнопками
- keyboard_capt = telebot.types.InlineKeyboardMarkup()
- for button in button_list:
- keyboard_capt.add(button)
- bot.send_message(
- message.chat.id,
- f"Для того щоб приєднатись до групи оберіть кнопку з правильною відповіддю на вираз: {left_part} {operator} {right_part}",
- reply_markup=keyboard_capt,
- )
- # Запускаєм бота
- bot.polling()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement