X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/0b37ca809fe5f1c97b76f4e3e8a398caa40935fb..ac52b197ed6dfeb5d7ad8cb2e8f0d5b9f1cdd1d4:/pokedex/lookup.py?ds=inline diff --git a/pokedex/lookup.py b/pokedex/lookup.py index b50871b..9d61ce8 100644 --- a/pokedex/lookup.py +++ b/pokedex/lookup.py @@ -13,13 +13,20 @@ import pokedex.db.tables as tables # retrieve something from the index indexed_tables = {} for cls in [ + tables.Ability, + tables.Item, + tables.Move, tables.Pokemon, + tables.Type, ]: indexed_tables[cls.__tablename__] = cls # Dictionary of extra keys to file types of objects under, e.g. Pokémon can # also be looked up purely by number extra_keys = { + tables.Move: [ + lambda row: u"move %d" % row.id, + ], tables.Pokemon: [ lambda row: unicode(row.id), ], @@ -69,7 +76,7 @@ def get_index(session): speller_entries.append(name) - for extra_key_func in extra_keys[cls]: + for extra_key_func in extra_keys.get(cls, []): extra_key = extra_key_func(row) writer.add_document(name=extra_key, **row_key) @@ -126,7 +133,7 @@ def lookup(session, name, exact_only=False): # Look for exact name. A Term object does an exact match, so we don't have # to worry about a query parser tripping on weird characters in the input searcher = index.searcher() - query = whoosh.query.Term('name', name) + query = whoosh.query.Term('name', name.lower()) results = searcher.search(query) if not exact_only: