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 :
for x in range ( 0 , 10 ) :
okay . append ( str ( x ) )
else :
needs_def = 1
#adds symbols
if " symbols " in types :
sym = [ ' ! ' , ' @ ' , ' # ' , ' $ ' , ' % ' , ' ^ ' , ' & ' , ' * ' , ' ( ' , ' ) ' , ' - ' , ' = ' , ' _ ' , ' + ' , ' [ ' , ' ] ' , ' { ' , ' } ' , ' \\ ' , ' | ' , ' ; ' , ' : ' , " ' " , ' . ' , ' > ' , ' , ' , ' < ' , ' / ' , ' ? ' , ' ` ' , ' ~ ' , ' " ' ]
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 ) )