Captcha help me! | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Captcha help me!

LLBETOK

Джун
Автор темы
4 Авг 2023
19
2
0
Доброго времени суток!

Гуру прошу вашей помощи в установке и проверке каптчи для тг бота на aiogram.


Вот код капчи взятый из одной темы на форуме:

captcha:
from captcha.image import ImageCaptcha
import random
import string
from aiogram import Dispatcher, types, bot

letters = string.ascii_lowercase
rand_string = ''.join(random.choice(letters) for i in range(8))

text = rand_string
    
captcha: ImageCaptcha = ImageCaptcha(width = 300, height = 100)


captcha.write(chars=text, output='img/captcha.png' )
photo = open('img/captcha.png', 'rb')

#def register_handlers_captcha(dp: Dispatcher):
#        dp.register_message_handler(main_captcha)

В основной файл где реакция на команду старт я импортирую капчу , а точнее из неё текст и фото (пишу без функции ибо руки крючи и не понимаю как это сделать)

from handlers.cptch import photo , text

Добавляю в основной код на реакцию команды старт, фото он присылает и каждый раз разное но при вводе ответа ничего не происходит!
А так же при повторной попытки отправить капчу не через команду старт выдаёт ошибку
ValueError: I/O operation on closed file

main:
async def cmd_start(msg: types.Message, state: FSMContext):
    await msg.answer_photo(photo,'Проверка на человека!')
    if msg.text == text:
      id = msg.from_user.id
      user_name = msg.from_user.username
      reg = await register_user(id, user_name)
      check_pass = await check_password()
          # Если пользователь с ролью Админ, то выводит данное сообщение и кнопки меню
      if id == ADMINKA:

Помогите добрые люди, с меня симпа!
 

bandicuttt

Сеньор
int('xyi')
8 Янв 2023
235
64
28
Код:
from captcha.image import ImageCaptcha

# хендлер старта
image = ImageCaptcha(width = 280, height = 90)
captcha_text_1 = '1234'
await bot.send_photo(message.from_user.id, image.generate(captcha_text_1), caption='Проверка')
await state.set_state('check_captcha')
return await state.set_data(
    {
        'text':captcha_text_1
    }
)

# здесь принимаешь стейт
data = await state.get_data()
text = data.get('text')
if text == message.text: return 'ok'
return 'bad'
 
Активность:
Пока что здесь никого нет