def check_planet(self, request, user): coords = request.REQUEST.get(PLANET) or "" if coords == "Clear": if self.user_has_planet(user): user.planet = None session.commit() return False m = self.coord.match(coords) if m: planet = Planet.load(*m.group(1, 3, 5)) else: planet = None if planet is not None: if self.is_user(user): user.planet = planet if user.is_member(): alliance = Alliance.load(Config.get("Alliance", "name")) if planet.intel is None: planet.intel = Intel(nick=user.name, alliance=alliance) else: planet.intel.nick = user.name planet.intel.alliance = alliance session.commit() else: user.planet = planet session.expunge(user) return user.planet.id pa_id = request.COOKIES.get(PLANET_KEY) if self.user_has_planet(user): if pa_id == user.planet.id: return True else: return user.planet.id elif self.is_user(user): if pa_id: return False else: return True else: if pa_id: planet = session.query(Planet).filter_by(id=pa_id).first() if planet is None: return False else: user.planet = planet session.expunge(user) return True else: return True
def check_planet(self, request, user): coords = request.POST.get(PLANET) or "" if coords == "Clear": if self.user_has_planet(user): user.planet = None session.commit() return False m = self.coord.match(coords) if m: planet = Planet.load(*m.group(1,3,5)) else: planet = None if planet is not None: if self.is_user(user): user.planet = planet if user.is_member(): alliance = Alliance.load(Config.get("Alliance","name")) if planet.intel is None: planet.intel = Intel(nick=user.name, alliance=alliance) else: planet.intel.nick = user.name planet.intel.alliance = alliance session.commit() else: user.planet = planet session.expunge(user) return user.planet.id pa_id = request.COOKIES.get(PLANET_KEY) if self.user_has_planet(user): if pa_id == user.planet.id: return True else: return user.planet.id elif self.is_user(user): if pa_id: return False else: return True else: if pa_id: planet = session.query(Planet).filter_by(id=pa_id).first() if planet is None: return False else: user.planet = planet session.expunge(user) return True else: return True
def vote(self, message, user, params): id = params.group(1) vote = params.group(2).lower() prop = self.load_prop(id) if prop is None: message.reply("No proposition number %s exists (idiot)." % (id, )) return if not prop.active: message.reply("You can't vote on prop %s, it's expired." % (id, )) return if prop.proposer == user: message.reply( "Arbitrary %s rule #167: No voting on your own props." % (Config.get("Connection", "nick"))) return if prop.type == 'kick' and vote == 'veto' and prop.kicked == user: message.reply("You can't veto a vote to kick you.") return old_vote = prop.votes.filter(Vote.voter == user).first() if old_vote is not None: session.expunge(old_vote) prop.votes.filter(Vote.voter == user).delete() prop.votes.append(Vote(voter=user, vote=vote, carebears=user.carebears)) session.commit() if old_vote is None: reply = "Set your vote on proposition %s as %s" % ( id, vote, ) else: reply = "Changed your vote on proposition %s from %s" % ( id, old_vote.vote, ) if old_vote.vote not in ( "abstain", "veto", ): reply += " (%s)" % (old_vote.carebears, ) reply += " to %s" % (vote, ) if vote not in ( "abstain", "veto", ): reply += " with %s carebears" % (user.carebears, ) reply += "." message.reply(reply)
def vote(self, message, user, params): id = params.group(1) vote = params.group(2).lower() prop = self.load_prop(id) if prop is None: message.reply("No proposition number %s exists (idiot)."%(id,)) return if not prop.active: message.reply("You can't vote on prop %s, it's expired."%(id,)) return if prop.proposer == user: message.reply("Arbitrary %s rule #167: No voting on your own props."%(Config.get("Connection", "nick"))) return if prop.type == 'kick' and vote == 'veto' and prop.kicked == user: message.reply("You can't veto a vote to kick you.") return old_vote = prop.votes.filter(Vote.voter==user).first() if old_vote is not None: session.expunge(old_vote) prop.votes.filter(Vote.voter==user).delete() prop.votes.append(Vote(voter=user, vote=vote, carebears=user.carebears)) session.commit() if old_vote is None: reply = "Set your vote on proposition %s as %s"%(id,vote,) else: reply = "Changed your vote on proposition %s from %s"%(id,old_vote.vote,) if old_vote.vote not in ("abstain","veto",): reply+= " (%s)"%(old_vote.carebears,) reply+= " to %s"%(vote,) if vote not in ("abstain","veto",): reply+= " with %s carebears"%(user.carebears,) reply+= "." message.reply(reply)