This repository has been archived on 2023-04-13. You can view files and clone it, but cannot push or open issues or pull requests.
CloudBot/plugins/password.py

65 lines
2.2 KiB
Python
Raw Normal View History

2011-11-20 10:23:31 +01:00
# Password generation code by <TheNoodle>
from util import hook
import string
import random
def gen_password(types):
#Password Generator - The Noodle http://bowlofnoodles.net
okay = []
#find the length needed for the password
numb = types.split(" ")
for x in numb[0]:
#if any errors are found defualt to 10
if x not in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
numb[0] = 10
length = int(numb[0])
needs_def = 0
#alpha characters
if "alpha" in types or "letter" in types:
for x in string.ascii_lowercase:
okay.append(x)
#adds capital characters if not told not to
if "no caps" not in types:
for x in string.ascii_uppercase:
okay.append(x)
else:
needs_def = 1
#adds numbers
if "numeric" in types or "numbers" in types:
2012-02-29 09:29:53 +01:00
for x in range(0, 10):
2011-11-20 10:23:31 +01:00
okay.append(str(x))
else:
needs_def = 1
#adds symbols
if "symbols" in types:
2012-02-29 09:29:53 +01:00
sym = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '=', '_', '+', '[', ']', '{', '}', '\\', '|', ';', ':', "'", '.', '>', ',', '<', '/', '?', '`', '~', '"']
2011-11-20 10:23:31 +01:00
for x in sym:
okay.append(x)
else:
needs_def = 1
#defualts to lowercase alpha password if no arguments are found
if needs_def == 1:
for x in string.ascii_lowercase:
okay.append(x)
password = ""
#generates password
for x in range(length):
password = password + random.choice(okay)
return password
@hook.command
def password(inp, notice=None):
2012-02-28 03:03:43 +01:00
".password <length> [types] -- Generates a password of <legenth>. [types] can include 'alpha', 'no caps', 'numeric', 'symbols' or any combination of the types, eg. 'numbers symbols'"
2011-11-20 10:23:31 +01:00
if inp == "penis":
2012-02-28 03:03:43 +01:00
return "error: unable to process request, input too short!"
if inp == "mypenis":
return "error: unable to process request, input too short!"
if inp == "dick":
return "error: unable to process request, input too short!"
if inp == "mydick":
return "error: unable to process request, input too short!"
2011-11-20 10:23:31 +01:00
notice(gen_password(inp))