43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
import random
|
|
import string
|
|
|
|
def generar_password(longitud=12, mayusculas=True, numeros=True, simbolos=False):
|
|
"""Genera una contraseña aleatoria con las opciones indicadas."""
|
|
caracteres = string.ascii_lowercase
|
|
if mayusculas:
|
|
caracteres += string.ascii_uppercase
|
|
if numeros:
|
|
caracteres += string.digits
|
|
if simbolos:
|
|
caracteres += string.punctuation
|
|
|
|
if longitud < 4:
|
|
return " La contraseña debe tener al menos 4 caracteres."
|
|
|
|
password = ''.join(random.choice(caracteres) for _ in range(longitud))
|
|
return f" Contraseña generada: **{password}**"
|
|
|
|
def run(sender, *args):
|
|
"""Función principal que será ejecutada por el bot."""
|
|
try:
|
|
longitud = int(args[0]) if len(args) > 0 else 12
|
|
mayusculas = "nomayus" not in args
|
|
numeros = "nonum" not in args
|
|
simbolos = "simbolos" in args
|
|
|
|
return generar_password(longitud, mayusculas, numeros, simbolos)
|
|
except ValueError:
|
|
return " Uso: `.pwgen [longitud] [nomayus] [nonum] [simbolos]` (Ej: `.pwgen 16 simbolos`)"
|
|
|
|
def help():
|
|
"""Descripción del plugin para el comando .help"""
|
|
return (" Genera contraseñas aleatorias.\n"
|
|
"Uso: `.pwgen [longitud] [nomayus] [nonum] [simbolos]`\n"
|
|
"**Ejemplo:** `.pwgen 16 simbolos` → Contraseña de 16 caracteres con símbolos.\n"
|
|
"**Opciones:**\n"
|
|
"- `nomayus` → No incluir mayúsculas.\n"
|
|
"- `nonum` → No incluir números.\n"
|
|
"- `simbolos` → Incluir símbolos.")
|
|
|
|
|