def saveparticipant(self,new,eid,player,pseudonym="",id=0,submit=""): if(new): try: for q in Event.get(eid).participants: if(q.player.user_name==player): flash("Error: %s is already a participant in this event"%player) raise redirect(url("/editevent/"+str(eid))) p=Participant(event=Event.get(eid),player=User.by_user_name(player),pseudonym=Pseudonym.byName(player)) except SQLObjectNotFound: flash("Error: Tried to add a participant to a nonexistent event") raise redirect(url("/news")) else: try: p=Participant.get(id) except SQLObjectNotFound: flash("Error: Tried to edit a nonexistent participant") raise redirect(url("/news")) try: p.player=User.by_user_name(player) p.pseudonym=Pseudonym.byName(pseudonym) except SQLObjectNotFound: flash("Error: Tried to change pseudonym to one that doesn't exist, or change pseudonym for a player that doesn't exist") raise redirect(url("/news")) flash("Participant updated!") raise redirect(url("/editevent/"+str(eid)))
def savereport(self, new, eid, player, text, id=0): if (new): try: r = Report(speaker=User.by_user_name(player), event=Event.get(eid), content=text) except SQLObjectNotFound: flash( "Error: Tried to add report by a nonexistent player, or to a nonexistent event" ) raise redirect(url("/news")) else: try: r = Report.get(id) r.content = text #nothing else really should be being edited, but will update it all for future compatibility r.speaker = User.by_user_name(player) r.event = Event.get(eid) except SQLObjectNotFound: flash( "Error: Tried to edit a nonexistent report, or a report for a nonexistent event, or write a report as a nonexistent player." ) raise redirect(url("/news")) flash("Report updated!") raise redirect(url("/news"))
def saveparticipant(self, new, eid, player, pseudonym="", id=0, submit=""): if (new): try: for q in Event.get(eid).participants: if (q.player.user_name == player): flash( "Error: %s is already a participant in this event" % player) raise redirect(url("/editevent/" + str(eid))) p = Participant(event=Event.get(eid), player=User.by_user_name(player), pseudonym=Pseudonym.byName(player)) except SQLObjectNotFound: flash( "Error: Tried to add a participant to a nonexistent event") raise redirect(url("/news")) else: try: p = Participant.get(id) except SQLObjectNotFound: flash("Error: Tried to edit a nonexistent participant") raise redirect(url("/news")) try: p.player = User.by_user_name(player) p.pseudonym = Pseudonym.byName(pseudonym) except SQLObjectNotFound: flash( "Error: Tried to change pseudonym to one that doesn't exist, or change pseudonym for a player that doesn't exist" ) raise redirect(url("/news")) flash("Participant updated!") raise redirect(url("/editevent/" + str(eid)))
def deleteevent(self, id): try: Event.delete(id) flash("Event deleted!") raise redirect(url("/news")) except SQLObjectNotFound: flash("Error: Tried to delete an event that doesn't exist") raise redirect(url("/news"))
def deleteevent(self,id): try: Event.delete(id) flash("Event deleted!") raise redirect(url("/news")) except SQLObjectNotFound: flash("Error: Tried to delete an event that doesn't exist") raise redirect(url("/news"))
def addinnocentkill(self, eid): try: return {'event': Event.get(eid)} except SQLObjectNotFound: flash( "Error: Tried to add an innocent kill to a nonexistent event.") raise redirect(url("/news"))
def savereport(self,new,eid,player,text,id=0): if(new): try: r=Report(speaker=User.by_user_name(player),event=Event.get(eid),content=text) except SQLObjectNotFound: flash("Error: Tried to add report by a nonexistent player, or to a nonexistent event") raise redirect(url("/news")) else: try: r=Report.get(id) r.content=text #nothing else really should be being edited, but will update it all for future compatibility r.speaker=User.by_user_name(player) r.event=Event.get(eid) except SQLObjectNotFound: flash("Error: Tried to edit a nonexistent report, or a report for a nonexistent event, or write a report as a nonexistent player.") raise redirect(url("/news")) flash("Report updated!") raise redirect(url("/news"))
def saveinnocentkill(self,eid,killer,licit): try: k=InnocentKill(event=Event.get(eid),killer=User.by_user_name(killer),licit=licit) self.updatescores() flash("Innocent Kill added!") for l in Kill.select(): if((l.victim == k.killer) and l.event.datetime < k.event.datetime and l.event.datetime >= (k.event.datetime - datetime.timedelta(0,14400))): flash("Warning: %s is listed as being killed in the event %s, which was less than four hours before this event."%(l.victim.user_name,str(l.event))) raise redirect(url("/editevent/"+str(eid))) except SQLObjectNotFound: flash("Error: Tried to add an innocent kill to a nonexistent event.") raise redirect(url("/news"))
def savekill(self,eid,killer,victim): try: for k in Event.get(eid).kills: if(k.victim==User.by_user_name(victim)): flash("Error: %s is already marked as being killed in this event, by %s. If they didn't kill %s, delete that kill first."%(victim,k.killer,victim)) raise redirect(url("/editevent/"+str(eid))) k=Kill(event=Event.get(eid),killer=User.by_user_name(killer),victim=User.by_user_name(victim)) self.updatescores() flash("Kill added!") for l in Kill.select(): if(l.id!=k.id): if((l.victim == k.victim or l.victim==k.killer) and l.event.datetime < k.event.datetime and l.event.datetime >= (k.event.datetime - datetime.timedelta(0,14400))): flash("Warning: %s is listed as being killed in the event %s, which was less than four hours before this event."%(l.victim.user_name,str(l.event))) if(l.victim == k.victim and k.event.datetime <= l.event.datetime and k.event.datetime >= (l.event.datetime - datetime.timedelta(0,14400))): flash("Warning: %s is listed as dying again in the event %s, which is less than four hours after this event."%(k.victim.user_name,str(l.event))) if(l.killer == k.victim and k.event.datetime < l.event.datetime and k.event.datetime >= (l.event.datetime - datetime.timedelta(0,14400))): flash("Warning: %s is listed as killing someone else in the event %s, which is less than four hours after this event."%(k.victim.user_name,str(l.event))) raise redirect(url("/editevent/"+str(eid))) except SQLObjectNotFound: flash("Error: Tried to add a kill to a nonexistent event.") raise redirect(url("/news"))
def savekill(self, eid, killer, victim): try: for k in Event.get(eid).kills: if (k.victim == User.by_user_name(victim)): flash( "Error: %s is already marked as being killed in this event, by %s. If they didn't kill %s, delete that kill first." % (victim, k.killer, victim)) raise redirect(url("/editevent/" + str(eid))) k = Kill(event=Event.get(eid), killer=User.by_user_name(killer), victim=User.by_user_name(victim)) self.updatescores() flash("Kill added!") for l in Kill.select(): if (l.id != k.id): if ((l.victim == k.victim or l.victim == k.killer) and l.event.datetime < k.event.datetime and l.event.datetime >= (k.event.datetime - datetime.timedelta(0, 14400))): flash( "Warning: %s is listed as being killed in the event %s, which was less than four hours before this event." % (l.victim.user_name, str(l.event))) if (l.victim == k.victim and k.event.datetime <= l.event.datetime and k.event.datetime >= (l.event.datetime - datetime.timedelta(0, 14400))): flash( "Warning: %s is listed as dying again in the event %s, which is less than four hours after this event." % (k.victim.user_name, str(l.event))) if (l.killer == k.victim and k.event.datetime < l.event.datetime and k.event.datetime >= (l.event.datetime - datetime.timedelta(0, 14400))): flash( "Warning: %s is listed as killing someone else in the event %s, which is less than four hours after this event." % (k.victim.user_name, str(l.event))) raise redirect(url("/editevent/" + str(eid))) except SQLObjectNotFound: flash("Error: Tried to add a kill to a nonexistent event.") raise redirect(url("/news"))
def saveevent(self, new, headline, timestamp, id=0): try: t = datetime.datetime.strptime(timestamp, "%Y-%m-%d %H:%M:%S") except ValueError: flash("Error: You entered an invalid date/time") raise redirect(url("/news")) if (t.year <= 1900 or t.year >= 2020): flash("Error: Absurd year %d" % t.year) raise redirect(url("/news")) if (new): e = Event(headline=headline, datetime=t) flash("Event Added!") raise redirect(url("/editevent/" + str(e.id))) else: try: e = Event.get(id) except SQLObjectNotFound: flash("Error: Tried to edit a nonexistent event") raise redirect(url("/news")) e.headline = headline e.datetime = t flash("Event Updated!") raise redirect(url("/news"))
def saveevent(self,new,headline,timestamp,id=0): try: t=datetime.datetime.strptime(timestamp,"%Y-%m-%d %H:%M:%S") except ValueError: flash("Error: You entered an invalid date/time") raise redirect(url("/news")) if(t.year <= 1900 or t.year >= 2020): flash("Error: Absurd year %d"%t.year) raise redirect(url("/news")) if(new): e=Event(headline=headline,datetime=t) flash("Event Added!") raise redirect(url("/editevent/"+str(e.id))) else: try: e=Event.get(id) except SQLObjectNotFound: flash("Error: Tried to edit a nonexistent event") raise redirect(url("/news")) e.headline=headline e.datetime=t flash("Event Updated!") raise redirect(url("/news"))
def saveinnocentkill(self, eid, killer, licit): try: k = InnocentKill(event=Event.get(eid), killer=User.by_user_name(killer), licit=licit) self.updatescores() flash("Innocent Kill added!") for l in Kill.select(): if ((l.victim == k.killer) and l.event.datetime < k.event.datetime and l.event.datetime >= (k.event.datetime - datetime.timedelta(0, 14400))): flash( "Warning: %s is listed as being killed in the event %s, which was less than four hours before this event." % (l.victim.user_name, str(l.event))) raise redirect(url("/editevent/" + str(eid))) except SQLObjectNotFound: flash( "Error: Tried to add an innocent kill to a nonexistent event.") raise redirect(url("/news"))
def updates(self): return {'events': Event.select(orderBy='datetime')}
def addreport(self,eid): try: return {'new':True,'event':Event.get(eid)} except SQLObjectNotFound: flash("Error: Tried to add report to a nonexistent event") raise redirect(url("/news"))
def addinnocentkill(self,eid): try: return {'event':Event.get(eid)} except SQLObjectNotFound: flash("Error: Tried to add an innocent kill to a nonexistent event.") raise redirect(url("/news"))
def updates(self): return {'events':Event.select(orderBy='datetime')}
def addreport(self, eid): try: return {'new': True, 'event': Event.get(eid)} except SQLObjectNotFound: flash("Error: Tried to add report to a nonexistent event") raise redirect(url("/news"))