#!/usr/bin/python import cgi import os import random import string BOX = """
My spam name is %(spamname)s

What's yours? %(junk)s
""" class Reader: def __init__(self): self.input = open(".words") self.words = [] self.max = int(self.input.readline()[:-1]) def choice(self): index = random.randint(0, self.max) while len(self.words) <= index: self.words.append(self.input.readline()) return self.words[index][:-1].capitalize() class NameGenerator: def __init__(self): self.reader = Reader() def getName(self, seed): random.seed(seed) first = self.reader.choice() middle = random.choice(string.ascii_uppercase) last = self.reader.choice() return "%s %s. %s" % (first, middle, last) class NameGeneratorCGI: BACKGROUND_COLORS = ['FF', '77', 'AA', '00'] TEXT_COLORS = ['FF', '77', 'AA'] def backgroundColor(self): a = '' for i in range(3): if a.find('00') == 0: l = self.BACKGROUND_COLORS else: l = self.TEXT_COLORS a += random.choice(l) return a def textColor(self): a = ['00', '00', '00'] a[random.randint(0,2)] = random.choice(self.TEXT_COLORS) return ''.join(a) def __init__(self, queryString=None): form = cgi.FieldStorage() original = form.getvalue('name', '') gen = NameGenerator() spam = gen.getName(original) m = {'spamname' : spam, 'originalname' : original, 'bg1' : self.backgroundColor(), 'bg2' : self.backgroundColor(), 'textColor' : self.textColor()} junk = '' for i in range(random.randint(6,12)): junk += random.choice(string.ascii_lowercase) m['junk'] = junk m['box'] = BOX % m print "Content-type: text/html\n" print open("template.html").read() % m def test(): gen = NameGenerator() email = "leonardr@segfault.org" a = gen.getName(email) b = gen.getName(email) if a == b: if a == "Transitiveness Q. Coincided": print "Works fine,", a else: print "Seems to work but the file must be different from what I'm used to." else: print "Uh-oh, I don't know if you're %s or %s!" % (a,b) if __name__ == '__main__': NameGeneratorCGI()