@Nika980

Не работает капча, что делать?

Пытаюсь сделать капчу по документации, скопировала все как у них, запустила и он мне вот такую ошибку выдает:

ImportError: cannot import name 'CaptchaManager' from partially initialized module 'pyTelegramBotCAPTCHA' (most likely due to a circular import) (C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\pyTelegramBotCAPTCHA\__init__.py)

Вот сам код с капчей:

from telebot import TeleBot
from pyTelegramBotCAPTCHA import CaptchaManager
                                                                    
bot = TeleBot("6********************************************")
captcha_manager = CaptchaManager(bot.get_me(999).id)

# Обработчик сообщений для новых участников
@bot.message_handler(content_types=["new_chat_members"])
def new_member(message):
  for new_user in message.new_chat_members:
    captcha_manager.restrict_chat_member(bot, message.chat.id, new_user.id)
    captcha_manager.send_new_captcha(bot, message.chat, new_user)
                                                                    
# Обработчик обратного вызова запроса
@bot.callback_query_handler(func=lambda callback:True)
def on_callback(callback):
  captcha_manager.update_captcha(bot, callback)
                                                                    
# Обработчик правильно решенных CAPTCHA
@captcha_manager.on_captcha_correct
def on_correct(captcha):
  bot.send_message(captcha.chat.id, "Поздравляем! Вы разгадали капчу!")
  captcha_manager.unrestrict_chat_member(bot, captcha.chat.id, captcha.user.id)
  captcha_manager.delete_captcha(bot, captcha)

# Обработчик неправильно решенных CAPTCHA
@captcha_manager.on_captcha_not_correct
def on_not_correct(captcha):
  if (captcha.incorrect_digits == 1 and captcha.previous_tries < 2):
    captcha_manager.refresh_captcha(bot, captcha)
  else:
    bot.kick_chat_member(captcha.chat.id, captcha.user.id)
    bot.send_message(captcha.chat.id, f"{captcha.user.first_name} не справился с CAPTCHA и был забанен!")
    captcha_manager.delete_captcha(bot, captcha)
  
# Обработчик тайм-аута CAPTCHAS
@captcha_manager.on_captcha_timeout
def on_timeout(captcha):
  bot.kick_chat_member(captcha.chat.id, captcha.user.id)
  bot.send_message(captcha.chat.id, f"{captcha.user.first_name} не справился с CAPTCHA и был забанен!")
  captcha_manager.delete_captcha(bot, captcha)
  
bot.polling()
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы