#!/usr/bin/env python
import smtplib
import MySQLdb
import cgi
import re
# specify the filename of the template file
scripturl='http://eressea.upb.de/cgi-bin/eressea/standin.py'
TemplateFile = "vinyambar.html"
DefaultTitle = "Vinyambar Parteibörse"
dbname = "vinyambar"
From = "accounts@vinyambar.de"
Errors = ""
db = MySQLdb.connect(db=dbname)
smtpserver='localhost'
notify='accounts@vinyambar.de'
minnmr=0
# define a new function called Display
# it takes one parameter - a string to Display
def Display(Content, Title=DefaultTitle):
TemplateHandle = open(TemplateFile, "r") # open in read only mode
# read the entire file as a string
TemplateInput = TemplateHandle.read()
TemplateHandle.close() # close the file
# for key in Form.keys():
# Content=Content+"
"+str(key)+"="+str(Form[key])
# this defines an exception string in case our
# template file is messed up
BadTemplateException = "There was a problem with the HTML template."
SubResult = re.subn("", Title, TemplateInput)
SubResult = re.subn("", Content, SubResult[0])
if SubResult[1] == 0:
raise BadTemplateException
print "Content-Type: text/html\n\n"
print SubResult[0]
return
def ShowPage():
cursor=db.cursor()
maxturn = {}
games = cursor.execute("SELECT max(lastturn), game from subscriptions GROUP by game")
while games>0:
games=games-1
lastturn, game = cursor.fetchone()
maxturn[game] = lastturn
output='
Um eine der folgenden Parteien zu übernehmen, musst du zuerst ein Spielerkonto anlegen. Wenn Du eines hast, markiere die Partei, die Du übernehmen willst, und trage Kundennummer und Kundenpasswort ein.' query = "SELECT g.id, g.name, s.faction, s.lastturn, s.id, r.name, s.info from games g, subscriptions s, races r where s.game=g.id and s.race=r.race and s.status='CANCELLED' order by s.lastturn DESC" results = cursor.execute(query) output=output+'
' Display(output) return Form = cgi.FieldStorage() custid=None password=None if Form.has_key("user"): custid = int(Form["user"].value) if Form.has_key("pass"): password = Form["pass"].value if (password!=None) & (custid!=None): cursor=db.cursor() output="" if cursor.execute("select firstname, lastname, email, id from users where password='"+password+"' and id="+str(int(custid)))==1: firstname, lastname, email, custid = cursor.fetchone() c = cursor.execute("SELECT id, game, password, faction, user from subscriptions where status='CANCELLED'") while c>0: c=c-1 sid, gid, newpass, faction, uid = cursor.fetchone() if Form.has_key("accept_"+str(int(sid))): update = db.cursor() update.execute("INSERT into transfers (subscription, src, dst, reason) values ("+str(int(sid))+", "+str(int(uid))+", "+str(int(custid))+", 'STANDIN')") update.execute("UPDATE subscriptions set user=" + str(int(custid)) + ", status='ACTIVE' where id=" + str(int(sid))) output=output+"Die Partei " + faction + " wurde Dir überschrieben. Eine Email mit dem Passwort und weiteren Hinweisen ist unterwegs zu Dir.