예제 #1
0
	def ErrorPage(self, pagename, title, errortext):
		self.PrintHeader('The Conversatron - %s' % pagename)
		self.StartErrorBox(title)
		print errortext
		self.EndBox()
		self.PrintFooter()				
		web.quit()
예제 #2
0
def HandleBrowseView():
	"Show just the picture for the browse thing."
	
	if not form.getvalue('id'):
		print 'Content-type: text/html\n'
		print "<html><body>Select an askee to view images.</body></html>"
	
		web.quit()
	
	try:
		id = int(form["id"].value)
		askee = db.loadRow('askee', id)#db.loadObject('select * from askee where id='+str(id))
		if askee == None:
			raise Exception
	except:
		web.quit()
		
	global formtarget
	formid = formtarget
	shortname = askee.shortname

	print 'Content-type: text/html\n'

	print """	
<html>
<head>
<title>Askee Browser</title>

<script>
function SelectAskee(emotion)
{
	theform = top.opener.document.reply
	
	theform.shortname%(formid)s.value='%(shortname)s'
	theform.askee%(formid)s.selectedIndex=0
	theform.emotion%(formid)s.selectedIndex=emotion
	
	top.window.close()
}
</script>
</head>

<body>
""" % locals()
	
	print '<table><tr><td>Normal</td><td>Happy</td><td>Angry</td><td>Sad</td></tr><tr>'

	print '''<td><a href="#" onclick="SelectAskee(0);return void(0)"><img src="/askees/''' + askee.normpic +'''" width=80 height=100></a></td>'''

	print '''<td><a href="#" onclick="SelectAskee(1);return void(0)"><img src="/askees/''' + askee.happypic +'''" width=80 height=100></a></td>'''

	print '''<td><a href="#" onclick="SelectAskee(2);return void(0)"><img src="/askees/''' + askee.angrypic +'''" width=80 height=100></a></td>'''

	print '''<td><a href="#" onclick="SelectAskee(3);return void(0)"><img src="/askees/''' + askee.sadpic +'''" width=80 height=100></a></td>'''

	print '</tr></table>'		
	print '</body></html>'
예제 #3
0
def PrintError(error):
	"Print an error box with the specified text."
	
	theme.PrintHeader('Login Manager')
	theme.StartErrorBox('Input error')
	
	print error
	
	theme.EndErrorBox()
	theme.PrintFooter()

	web.quit()
예제 #4
0
def HandleAdd():
	"Add an askee from form data."
	
	askee = SuperHash()
	try:
		askee.name = form["name"].value
		askee.shortname = form["shortname"].value
		
		if form.getvalue('radiocat','') == 'existing':
			askee.category = form["category"].value
		else:
			askee.category = form["newcategory"].value

		askee.normpic = string.strip(form["normpic"].value)
		askee.happypic = string.strip(form["happypic"].value)
		askee.angrypic = string.strip(form["angrypic"].value)
		askee.sadpic = string.strip(form["sadpic"].value)
	except:
		theme.PrintHeader('The Conversatron - Askee manager')
		theme.StartErrorBox("Input Error")
		
		print "Don't leave any fields blank, chump!<br>"
		
		theme.EndBox()
		theme.PrintFooter()
		web.quit()
	
	try:
		askee.url = form["url"].value
	except:

		pass
	
	id = ConvDB.AskeeShortcutToID(askee.shortname)
	if id:
		theme.PrintHeader('The Conversatron - Askee manager')
		theme.StartErrorBox("Namespace error")
		
		print "That shortcut is already taken. Choose another."
		
		theme.EndErrorBox()
		theme.PrintFooter()
		web.quit()
	
	db.storeObject('askee', askee)
	num = ConvDB.AskeeShortcutToID(askee.shortname)
	web.RedirectInFolder('?op=display&id='+str(num))
예제 #5
0
def HandleRetire():
	"Toggle retired status of an askee."
	
	try:
		id = int(form["id"].value)
		askee = db.loadObject('select * from askee where id='+str(id))
		if askee == None:
			raise Exception
	except:
		theme.PrintHeader('The Conversatron - Retired Askees')
		theme.StartErrorBox("Askee Unknown")
		print '<br><a href="">Back to Askee Manager</a>'
		theme.EndErrorBox()
		theme.PrintFooter()
		web.quit()
	
	if askee.retired == 'n':
		askee.retired = 'y'
	else:
		askee.retired = 'n'
	
	db.updateObject('askee', askee, 'id='+str(askee.id))
	web.RedirectInFolder('?op=display&id='+str(id))
예제 #6
0
def HandleEditForm():
    "Bring up the edit slogan form"

    try:
        id = int(form["id"].value)
        slogan = db.loadObject("select * from slogan where id=" + str(id))
    except:
        web.RedirectInFolder("/sloganman.py")
        web.quit()

    theme.PrintHeader("The Conversatron - Slogan Manager")
    theme.PrintNavBanner("Slogan Manager")

    slogtext = string.replace(str(slogan.slogan), '"', "&quot;")

    print '<form action="sloganman.py" method="post">'
    print '<input type="hidden" name="op" value="editit">'
    print '<input type="hidden" name="id" value="' + str(slogan.id) + '">'
    print 'Edit the sucker: <input name="slogan" type="text" size=70 maxlength=255 value="' + slogtext + '"> '
    print 'Theme: <input name="theme" type="text" value="' + slogan.theme + '">'
    print '<input type="submit" value="Edit it"><br>'

    theme.PrintFooter()
예제 #7
0
def HandleSearch():
    search = form.getvalue("search", "")

    if search == "":
        web.RedirectInFolder("/users.py")

    users = db.loadObjects("select name from user where user.name like '%" + search + "%' order by name")

    if len(users) == 1 and users[0].name.lower() == search.lower():
        web.RedirectInFolder("/mans/users.py?op=lookup&name=" + users[0].name)
        web.quit()

    theme.PrintHeader("The Conversatron - User manager")
    theme.PrintNavBanner("User Manager")
    PrintUserSearchForm()

    if len(users) > 0:
        MakeUserTable(users)
    else:
        print "No users found with that string."

    print '<br><a href="users.py">Back to user manager</a>'

    theme.PrintFooter()
예제 #8
0
def HandleChange():
	"Change the details of an askee based on the form."

	
	try:
		id = int(form["id"].value)
		askee = db.loadObject('select * from askee where id='+str(id))
		if askee == None:
			raise Exception
	except:
		theme.PrintHeader('The Conversatron - Askee manager')
		theme.StartErrorBox("Askee Unknown")
		print '<br><a href="askeeman.py">Back to Askee Manager</a>'
		theme.EndErrorBox()
		theme.PrintFooter()
		web.quit()

	oldcut = askee.shortname

	try:
		askee.name = form["name"].value
		askee.shortname = form["shortname"].value
		
		if form.getvalue('radiocat','') == 'existing':
			askee.category = form["category"].value
		else:
			askee.category = form["newcategory"].value
		
		askee.normpic = form["normpic"].value
		askee.happypic = form["happypic"].value
		askee.angrypic = form["angrypic"].value
		askee.sadpic = form["sadpic"].value
	except:
		theme.PrintHeader('The Conversatron - Askee manager')
		theme.StartErrorBox("Whoa there guy!")
		
		print "Don't leave any fields blank, chump!"
		
		theme.EndErrorBox()
		theme.PrintFooter()
		web.quit()
	
	askee.url = ''
	try:
		askee.url = form["url"].value
	except:
		pass
	
	if oldcut != askee.shortname:
		cid = ConvDB.AskeeShortcutToID(askee.shortname)
		if cid:
			theme.PrintHeader('The Conversatron - Askee manager')
			theme.StartErrorBox('Namespace error!')
			
			print "That shortcut is already taken. Choose another."
			
			theme.EndErrorBox()
			theme.PrintFooter()
			web.quit()
		
	db.updateObject('askee', askee, 'id='+str(askee.id))
	web.RedirectInFolder('/askeeman2.py?op=display&id='+str(id))
예제 #9
0
def HandleDisplay():
	"Show an askee and bring up editing forms."

	theme.PrintHeader('The Conversatron - Askee manager')
	theme.PrintNavBanner('Askee Manager')
	
	categories = ConvDB.GetAskeeCategories()
		
	try:
		id = int(form["id"].value)
		askee = db.loadObject('select * from askee where id='+str(id))
		if askee == None:
			raise Exception
	except:
		print "Askee Unknown<br>"
		print '<a href="askeeman2.py">Back to Askee Manager</a>'
		theme.PrintFooter()
		web.quit()
	
	theme.StartBox('Info on '+askee.name, "#666699")
	
	if user.usertype >= 3:
		print '<form method="post" action="askeeman2.py" name="askee">'
		print '<input type="hidden" name="op" value="change">'
		print '<input type="hidden" name="id" value="'+str(askee.id)+'">'

	name = askee.name.replace('"', '&quot;') # string.replace(str(askee.name), '"', '&quot;')
	
	print '<table>'
	print '<tr><td>Name :</td><td><input name="name" type="text" maxlength=255 value="'+name+'"></td></tr>'

	print '<tr><td>Shortcut :</td><td><input name="shortname" type="text" maxlength=12 value="'+str(askee.shortname)+'"></td></tr>'

	print '<tr><td>Category :</td><td><input type="radio" name="radiocat" value="existing" checked> <select name="category" onchange="document.askee.radiocat[0].checked=true">'

	for category in categories:
		web.HtmlOption(category.category,category.category, askee.category==category.category )
	print '</select></td></tr>'

	print '<tr><td></td><td><input type="radio" name="radiocat" value="new"> <input name="newcategory" type="text" maxlength=32 value="'+str(askee.category)+'" onfocus="document.askee.radiocat[1].checked=true"></td></tr>'


	print '<tr><td></td><td>[<a href="'+ ExpandCategoryURL(askee) +'">view cateogry</a>]</td></tr>'

	print '</table><br>'
	
	print '*Do <b>NOT</b> leave with any broken images here!!<br>'
	print '<table border><tr><td> NormPic : <input name="normpic" type="text" maxlength=255 value="'+str(askee.normpic)+'"><br>'
	print '<img src="/askees/' + askee.normpic +'" width=80 height=100></td>'
	print '<td>HappyPic : <input name="happypic" type="text" maxlength=255 value="'+str(askee.happypic)+'"><br>'
	print '<img src="/askees/' + askee.happypic +'" width=80 height=100></td><tr>'
	print '<td>AngryPic : <input name="angrypic" type="text" maxlength=255 value="'+str(askee.angrypic)+'"><br>'
	print '<img src="/askees/' + askee.angrypic +'" width=80 height=100></td>'
	print '<td>SadPic : <input name="sadpic" type="text" maxlength=255 value="'+str(askee.sadpic)+'"><br>'
	print '<img src="/askees/' + askee.sadpic +'" width=80 height=100></td></tr></table>'
	
	if askee.url == None or askee.url == "":
		print '<br>URL : <input name="url" type="text" size=64 maxlength=255><br>'
	else:
		print '<br>URL : <input name="url" type="text" value="'+str(askee.url)+'" size=64 maxlength=255><br>'
	

	if user.usertype >= 3:
		print '<br><input type="submit" value="Change"></form><br>'
		
		print '<br><a href="askeeman2.py?op=retire&id='+str(askee.id)+'">'
		if askee.retired == 'n':
			print 'Retire this askee</a><br>'
		else:
			print 'Unretire this askee</a><br>'
			
		print '<br><a href="fileman.html" target="_blank">Open file browser</a><br>'
		
	
	print '<br><a href="askeeman2.py">Back to Askee Manager</a>'
	
	theme.EndBox()
	theme.PrintFooter()
예제 #10
0
#!/usr/bin/env python

from StandardVars import *
import web

# class NameResult(object);
# 	__slots__ = ['status','message']
# 
# 	def __init__(self, status,message):
# 		self.status=status
# 		self.message=message

name = form.getvalue("name")
if not name: 
	print "[-1, 'Illegal name']";
	web.quit()
	
exists = db.loadValue("select name from user where name=%s", name)
if exists:
	print "[0, 'Name in use']";
else:
	print "[1, 'Name available']";