Ejemplo n.º 1
0
def search_pokemons(query, type=None, ability=None, limit=None):
    query = query.lower()
    pokemons = Pokemon.select().where(Pokemon.name.contains(query))

    if ability is not None:
        filtered_pokemons = []
        for pokemon in pokemons:
            abilities = []
            pokemons_abilities_of_this_pokemon = PokemonAbilities.select(
            ).where(PokemonAbilities.pokemon ==
                    pokemon)  # possibility to limit here?
            for pokemon_ability in pokemons_abilities_of_this_pokemon:
                ability_name = pokemon_ability.ability.name
                abilities.append(ability_name)
            if ability in abilities:
                filtered_pokemons.append(pokemon)
        return filtered_pokemons

    if type is not None:
        filtered_pokemons = []
        for pokemon in pokemons:
            # types = [t.type.name for t in pokemon.types]
            types = []
            pokemontypes_of_this_pokemon = PokemonTypes.select().where(
                PokemonTypes.pokemon == pokemon)
            for pokemontype in pokemontypes_of_this_pokemon:
                type_name = pokemontype.type.name
                types.append(type_name)

            if type in types:
                filtered_pokemons.append(pokemon)
        return filtered_pokemons[0:10]

    return pokemons
Ejemplo n.º 2
0
def get_pokemons_from_ability(ability_id):
    pokemons = []
    pokemon_abilities = PokemonAbilities.select(
        PokemonAbilities,
        Pokemon).join(Pokemon).where(PokemonAbilities.ability == ability_id)
    for pokemon_ability in pokemon_abilities:
        pokemons.append(pokemon_ability.pokemon)
    return pokemons
Ejemplo n.º 3
0
def search_pokemons(query, ability_query=None, type_query=None):
    query = query.lower()
    if query is 'all':
        pokemons = Pokemon.select()
    else:
        pokemons = Pokemon.select().where(Pokemon.name.contains(query))

    if type_query is not None:
        filtered_pokemons = []
        for pokemon in pokemons:
            # types = [t.type.name for t in pokemon.types]
            types = []
            pokemontypes_de_ce_pokemon = PokemonTypes.select().where(PokemonTypes.pokemon == pokemon)
            for pokemontype in pokemontypes_de_ce_pokemon:
                type_name = pokemontype.type.name
                types.append(type_name)

            if type_query in types:
                filtered_pokemons.append(pokemon)
        pokemons = filtered_pokemons

    if ability_query is not None:
        filtered_pokemons = []
        for pokemon in pokemons:
            # types = [t.type.name for t in pokemon.types]
            abilities = []
            pokemonabilities_de_ce_pokemon = PokemonAbilities.select().where(PokemonAbilities.pokemon == pokemon)
            for pokemonability in pokemonabilities_de_ce_pokemon:
                ability_name = pokemonability.ability.name
                abilities.append(ability_name)

            if ability_query in abilities:
                filtered_pokemons.append(pokemon)
        pokemons = filtered_pokemons

    return pokemons[:10]
Ejemplo n.º 4
0
def get_abilities_of_pokemons(pokemon):
    abilities = PokemonAbilities.select().where(
        PokemonAbilities.pokemon == pokemon)
    return abilities