def execute(self, request, user, page="1", sort="score"): page = int(page) offset = (page - 1) * 50 order = { "score": (asc(Galaxy.score_rank),), "value": (asc(Galaxy.value_rank),), "size": (asc(Galaxy.size_rank),), "xp": (asc(Galaxy.xp_rank),), } if sort not in order.keys(): sort = "score" order = order.get(sort) tick = Updates.midnight_tick() Q = session.query(Galaxy, GalaxyHistory) Q = Q.outerjoin((GalaxyHistory, and_(Galaxy.id == GalaxyHistory.id, GalaxyHistory.tick == tick))) Q = Q.filter(Galaxy.active == True) count = Q.count() pages = count / 50 + int(count % 50 > 0) pages = range(1, 1 + pages) for o in order: Q = Q.order_by(o) Q = Q.limit(50).offset(offset) return render("galaxies.tpl", request, galaxies=Q.all(), offset=offset, pages=pages, page=page, sort=sort)
def execute(self, request, user, page="1", sort="score", race="all"): page = int(page) offset = (page - 1)*50 order = {"score" : (asc(Planet.score_rank),), "value" : (asc(Planet.value_rank),), "size" : (asc(Planet.size_rank),), "xp" : (asc(Planet.xp_rank),), "race" : (asc(Planet.race), asc(Planet.size_rank),), } if sort not in order.keys(): sort = "score" order = order.get(sort) tick = Updates.midnight_tick() Q = session.query(Planet, PlanetHistory, Intel.nick, Alliance.name) Q = Q.outerjoin(Planet.intel) Q = Q.outerjoin(Intel.alliance) Q = Q.outerjoin((PlanetHistory, and_(Planet.id == PlanetHistory.id, PlanetHistory.tick == tick))) Q = Q.filter(Planet.active == True) if race.lower() in PA.options("races"): Q = Q.filter(Planet.race.ilike(race)) else: race = "all" count = Q.count() pages = count/50 + int(count%50 > 0) pages = range(1, 1+pages) for o in order: Q = Q.order_by(o) Q = Q.limit(50).offset(offset) return render("planets.tpl", request, planets=Q.all(), offset=offset, pages=pages, page=page, sort=sort, race=race)
def execute(self, request, user, x, y, z, fleets): tick = Updates.midnight_tick() week = Updates.week_tick() planet = Planet.load(x, y, z) if planet is None: return HttpResponseRedirect(reverse("planet_ranks")) ph = planet.history(tick) Q = session.query(FleetScan, Planet, Alliance) Q = Q.join(FleetScan.target) Q = Q.outerjoin(Planet.intel).outerjoin(Intel.alliance) Q = Q.filter(FleetScan.owner == planet) Q = Q.order_by(desc(FleetScan.landing_tick)) if not fleets: Q = Q.filter(FleetScan.landing_tick >= week) outgoing = Q.all() Q = session.query(FleetScan, Planet, Alliance) Q = Q.join(FleetScan.owner) Q = Q.outerjoin(Planet.intel).outerjoin(Intel.alliance) Q = Q.filter(FleetScan.target == planet) Q = Q.order_by(desc(FleetScan.landing_tick)) if not fleets: Q = Q.filter(FleetScan.landing_tick >= week) incoming = Q.all() scan = planet.scan("A") or planet.scan("U") return render("planet.tpl", request, planet=planet, ph=ph, scan=scan, outgoing=outgoing, incoming=incoming)
def execute(self, request, user, page="1", sort="score"): page = int(page) offset = (page - 1)*50 order = {"score" : (asc(Alliance.score_rank),), "size" : (asc(Alliance.size_rank),), "avg_score" : (asc(Alliance.score_avg_rank),), "avg_size" : (asc(Alliance.size_avg_rank),), "members" : (asc(Alliance.members_rank),), } if sort not in order.keys(): sort = "score" order = order.get(sort) tick = Updates.midnight_tick() Q = session.query(Alliance, AllianceHistory) Q = Q.outerjoin((AllianceHistory, and_(Alliance.id == AllianceHistory.id, AllianceHistory.tick == tick))) Q = Q.filter(Alliance.active == True) count = Q.count() pages = count/50 + int(count%50 > 0) pages = range(1, 1+pages) for o in order: Q = Q.order_by(o) Q = Q.limit(50).offset(offset) return render("alliances.tpl", request, alliances=Q.all(), offset=offset, pages=pages, page=page, sort=sort)
def execute(self, request, user): if user.planet is not None: tick = Updates.midnight_tick() ph = user.planet.history(tick) else: ph = None return render("index.tpl", request, planet=user.planet, ph=ph)
def execute(self, request, user, x, y): tick = Updates.midnight_tick() galaxy = Galaxy.load(x,y) if galaxy is None: return HttpResponseRedirect(reverse("galaxy_ranks")) gh = galaxy.history(tick) Q = session.query(Planet, PlanetHistory, Intel.nick, Alliance.name) Q = Q.outerjoin(Planet.intel) Q = Q.outerjoin(Intel.alliance) Q = Q.outerjoin((PlanetHistory, and_(Planet.id == PlanetHistory.id, PlanetHistory.tick == tick))) Q = Q.filter(Planet.active == True) Q = Q.filter(Planet.galaxy == galaxy) Q = Q.order_by(asc(Planet.z)) return render("galaxy.tpl", request, galaxy=galaxy, gh=gh, planets=Q.all())
def execute(self, request, user, x, y, z): tick = Updates.midnight_tick() planet = Planet.load(x,y,z) if planet is None: return HttpResponseRedirect(reverse("planet_ranks")) ph = planet.history(tick) Q = session.query(Scan) Q = Q.filter(Scan.planet == planet) Q = Q.order_by(desc(Scan.tick), asc(Scan.scantype)) result = Q.all() group = [] for scan in result: if len(group) < 1 or group[-1][0] != scan.tick: group.append((scan.tick, [scan],)) else: group[-1][1].append(scan) return render("scans/planet.tpl", request, planet=planet, ph=ph, group=group)