managementbot / Powers /utils /captcha_helper.py
AshokShau
WIP
6cef7ec
from random import choice, randint, randrange
import qrcode
from captcha.image import ImageCaptcha
from Powers.database.captcha_db import CAPTCHA_DATA
from Powers.utils.string import encode_decode
captchaa = CAPTCHA_DATA()
async def get_qr_captcha(chat, user, username):
initial = f"t.me/{username}?start=qr_"
encode = f"{chat}:{user}"
encoded = await encode_decode(encode)
final = initial + encoded
qr = qrcode.make(final)
name = f"captcha_verification{chat}_{user}.png"
qr.save(name)
return name
def genrator():
alpha = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",
"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
rand_alpha = choice(alpha)
if_ = randint(0, 1)
new_alpha = rand_alpha.upper() if if_ else rand_alpha
list_ = [new_alpha]
while len(list_) != 4:
xXx = randrange(0, 9)
list_.append(xXx)
str_ = ""
while len(str_) != 4:
OwO = choice(list_)
str_ += str(OwO)
return str_
async def get_image_captcha(chat, user):
str_ = genrator()
captchaa.load_cap_data(chat, user, str_)
name = f"captcha_img_{chat}_{user}.png"
image = ImageCaptcha(280, 90)
cap = image.generate(str_)
image.write(str_, name)
return name, str_