|
|
|
@ -19,10 +19,10 @@ class PokemonList:
|
|
|
|
|
def sort_by_name(self, reverse=False):
|
|
|
|
|
with Session(self.engine) as session:
|
|
|
|
|
if reverse:
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.end_time > datetime.now() + self.timedelta)\
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.visited.is_(False), Pokemon.end_time > datetime.now() + self.timedelta)\
|
|
|
|
|
.order_by(desc(Pokemon.name))
|
|
|
|
|
else:
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.end_time > datetime.now() + self.timedelta)\
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.visited.is_(False), Pokemon.end_time > datetime.now() + self.timedelta)\
|
|
|
|
|
.order_by(Pokemon.name)
|
|
|
|
|
session.commit()
|
|
|
|
|
session.close()
|
|
|
|
@ -31,10 +31,10 @@ class PokemonList:
|
|
|
|
|
def sort_by_cp(self, reverse=False):
|
|
|
|
|
with Session(self.engine) as session:
|
|
|
|
|
if reverse:
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.end_time > datetime.now() + self.timedelta) \
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.visited.is_(False), Pokemon.end_time > datetime.now() + self.timedelta) \
|
|
|
|
|
.order_by(desc(Pokemon.cp))
|
|
|
|
|
else:
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.end_time > datetime.now() + self.timedelta) \
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.visited.is_(False), Pokemon.end_time > datetime.now() + self.timedelta) \
|
|
|
|
|
.order_by(Pokemon.cp)
|
|
|
|
|
session.commit()
|
|
|
|
|
session.close()
|
|
|
|
@ -43,10 +43,10 @@ class PokemonList:
|
|
|
|
|
def sort_by_level(self, reverse=False):
|
|
|
|
|
with Session(self.engine) as session:
|
|
|
|
|
if reverse:
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.end_time > datetime.now() + self.timedelta) \
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.visited.is_(False), Pokemon.end_time > datetime.now() + self.timedelta) \
|
|
|
|
|
.order_by(desc(Pokemon.level))
|
|
|
|
|
else:
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.end_time > datetime.now() + self.timedelta) \
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.visited.is_(False), Pokemon.end_time > datetime.now() + self.timedelta) \
|
|
|
|
|
.order_by(Pokemon.level)
|
|
|
|
|
session.commit()
|
|
|
|
|
session.close()
|
|
|
|
@ -54,14 +54,14 @@ class PokemonList:
|
|
|
|
|
|
|
|
|
|
def sort_by_distance(self, location: Location, reverse=False):
|
|
|
|
|
with Session(self.engine) as session:
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.end_time > datetime.now() + self.timedelta)
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.visited.is_(False), Pokemon.end_time > datetime.now() + self.timedelta)
|
|
|
|
|
session.commit()
|
|
|
|
|
session.close()
|
|
|
|
|
return sorted(result.all(), key=lambda pokemon: location.distance(pokemon.location), reverse=reverse)
|
|
|
|
|
|
|
|
|
|
def search_by_name(self, query: str):
|
|
|
|
|
with Session(self.engine) as session:
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.end_time > datetime.now() + self.timedelta)
|
|
|
|
|
result = session.query(Pokemon).where(Pokemon.visited.is_(False), Pokemon.end_time > datetime.now() + self.timedelta)
|
|
|
|
|
session.commit()
|
|
|
|
|
session.close()
|
|
|
|
|
return list(filter(lambda pokemon: partial_ratio(query.lower(), pokemon.name) >= 80, result.all()))
|
|
|
|
@ -73,3 +73,13 @@ class PokemonList:
|
|
|
|
|
session.commit()
|
|
|
|
|
session.close()
|
|
|
|
|
|
|
|
|
|
def visit_pokemon(self, pokemon: Pokemon):
|
|
|
|
|
with Session(self.engine) as session:
|
|
|
|
|
new_pokemon = session.query(Pokemon).where(Pokemon.name == pokemon.name,
|
|
|
|
|
Pokemon.location == pokemon.location,
|
|
|
|
|
Pokemon.start_time == pokemon.start_time,
|
|
|
|
|
Pokemon.end_time == pokemon.end_time).one()
|
|
|
|
|
new_pokemon.visited = True
|
|
|
|
|
session.commit()
|
|
|
|
|
session.close()
|
|
|
|
|
|
|
|
|
|