Гайд - [1 Часть] Капча для Телеграм ботов и не только | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

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

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

Гайд [1 Часть] Капча для Телеграм ботов и не только

Banjiro_me

Сеньор
Автор темы
727
18 Май 2023
49
64
18
Всем привет, начинаю свой цикл образовательных статей на Python, значительная часть которых, будет сосредоточена именно на телеграм ботах и фреймворке aiogram.
Сегодня мы будем реализовывать невероятную анбрекебл капчу для наших телеграм ботов (и не только, все зависит от ваших целей) с использованием публичной библиотеки "captcha"

Не будем прибегать к формальностям и пояснять принцип работы и необходимости капчи даже в телеграм ботах, вы можете вполне заглянуть в сурс библиотеки (Советую так иногда делать для саморазвития), приступим сразу к коду.

Устанавливаем либу введя команду в консоль:
Код:
pip install captcha

Пока разберемся с методами библиотеки, далее будем пробовать интегрировать это в телеграм бота
Импортируем либу:
Код:
from captcha.image import ImageCaptcha
Здесь мы из модуля image хватаем класс ImageCaptcha, который содержит в себе методы для генерации самой фотокарточки.

Обьявляем экземпляр класса ImageCaptcha и сразу даем ему параметры для генерации:
Код:
image = ImageCaptcha(width = 300, height = 100)

В переменной image лежит экземпляр класса, который и будет генерировать картиночку по параметрам в скобках. Применяем невероятные знания английского языка и выясняем, что мы задали ширину и высоту нашей будущей капчи.
Помните что я говорил про исследование сурсов библиотеки? Это в целом не все. Дал нам бог возможность смотреть содержимое классов в более читаемом виде с помощью технологии intellisense и мы ей должны пользоваться. Она доступна в IDE Visual Studio Code при установке плагина для Python (При запуске петухон файлов обратите в правый нижний угол, там нам предлагают сразу его установить).

С помощью этого плагина мы можем просматривать атрибуты, методы и прочие полезности прямо при редактировании кода. Так выглядит список атрибутов и описание
класса ImageCaptcha
16890148429871689014858263
Тут мы наблюдаем в том числе и описание доступных атрибутов, допускаемые типы данных и значения этих атрибутов по умолчанию (не все атрибуты как мы понимаем обязательные)

Далее мы создаем переменную, хранящую в себе текст для нашей капчи, она нужна для генерации и дальнейшей проверки пользовательского ввода captcha_text = 'endway'

Текст капчи задали? Давайте генерировать:
Код:
data = image.generate(captcha_text) # Вызываем метод класса image для генерации картики. 
Этот метод возвращает байт код картиночки, который мы можем использовать для отправки например
 
image.write(captcha_text, 'CAPTCHA.png') # В уже известном классе так же есть метод для прямой записи еще не сгенерированной капчи в файл.

Так может выглядеть результат: 1689015304964

Так же в целом можно создать звуковую капчу. Дрочить эту тему не буду: уже все описал выше, прилагаю код
Код:
from captcha.audio import AudioCaptcha

audio = AudioCaptcha()
captcha_text = "5454"

audio_data = audio.generate(captcha_text)
audio_file = "audio"+captcha_text+'.wav'

audio.write(captcha_text, audio_file)

Статья слегка затянулась, предлагаю выкатить продолжение в виде второй части. Там расскажу как все это дело воткнуть в телеграм бота. Там заодно расскажу про стейджи и их хранилища из aiogram,)
 
Like
  • 1
Реакции: 1 user

Banjiro_me

Сеньор
Автор темы
727
18 Май 2023
49
64
18
1689015868144Смешно забагался блок, пропало слово data - название переменной, хранящ
ей в себе байты картиночки
 
Активность:
Пока что здесь никого нет