from js import document
from pyodide import create_proxy
import random
def gerar_senha():
senha = []
minimo = 0
opcoes = {
"numeral":document.getElementById("numero").checked,
"letra":document.getElementById("minuscula").checked,
"maiuscula":document.getElementById("maiuscula").checked,
"especiais":document.getElementById("especial").checked,
"caracteres":document.getElementById("caracteres").value
}
if opcoes['numeral'] == False and ['letra'] == False and ['maiuscula'] == False and ['especiais'] == False:
return 'escolha ao menos uma opção para gerar a senha'
if opcoes['caracteres'] == "":
return 'selecione ao menos um caractere para a senha'
if opcoes['numeral']:
minimo = minimo + 1
if opcoes['letra']:
minimo = minimo + 1
if opcoes['maiuscula']:
minimo = minimo + 1
if opcoes['especiais']:
minimo = minimo + 1
caracteres = int(opcoes['caracteres'])
if minimo > caracteres:
return 'não é possivel fazer a senha com poucos algarismos para essa configuração'
while caracteres != 0:
if opcoes['numeral']:
senha.append(str(random.randint(0, 9)))
caracteres = caracteres - 1
if caracteres != 0:
if opcoes['letra']:
letras = ['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']
numero = random.randint(0, 25)
senha.append(letras[numero])
caracteres = caracteres - 1
if caracteres != 0:
if opcoes['maiuscula']:
maiusculas = ['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']
numero = random.randint(0, 25)
senha.append(maiusculas[numero])
caracteres = caracteres - 1
if caracteres != 0:
if opcoes['especiais']:
especial = ['!','@','#','$','%','&','?','*',]
numero = random.randint(0, 7)
senha.append(especial[numero])
caracteres = caracteres - 1
random.shuffle(senha)
return ''.join(senha)
def runPython(e):
senha = gerar_senha()
pyscript.write('senha', senha)
print(document.getElementById("numero").checked)
function_proxy = create_proxy(runPython)
document.getElementById("button").addEventListener("click", function_proxy)