mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Added ISO-3166 country codes to languages table and lookup.
This commit is contained in:
parent
edcd424508
commit
0a706d44a3
3 changed files with 18 additions and 12 deletions
|
@ -1,7 +1,7 @@
|
|||
id,name
|
||||
1,Japanese
|
||||
2,Official Romaaji
|
||||
3,Korean
|
||||
4,Chinese
|
||||
5,French
|
||||
6,German
|
||||
id,iso3166,name
|
||||
1,jp,Japanese
|
||||
2,jp,Official Romaaji
|
||||
3,kr,Korean
|
||||
4,cn,Chinese
|
||||
5,fr,French
|
||||
6,de,German
|
||||
|
|
|
|
@ -151,6 +151,7 @@ class Item(TableBase):
|
|||
class Language(TableBase):
|
||||
__tablename__ = 'languages'
|
||||
id = Column(Integer, primary_key=True, nullable=False)
|
||||
iso3166 = Column(Unicode(2), nullable=False)
|
||||
name = Column(Unicode(16), nullable=False)
|
||||
|
||||
class Location(TableBase):
|
||||
|
|
|
@ -94,6 +94,7 @@ def open_index(directory=None, session=None, recreate=False):
|
|||
table=whoosh.fields.ID(stored=True),
|
||||
row_id=whoosh.fields.ID(stored=True),
|
||||
language=whoosh.fields.STORED,
|
||||
iso3166=whoosh.fields.STORED,
|
||||
display_name=whoosh.fields.STORED, # non-lowercased name
|
||||
forme_name=whoosh.fields.ID,
|
||||
)
|
||||
|
@ -117,9 +118,10 @@ def open_index(directory=None, session=None, recreate=False):
|
|||
row_id=unicode(row.id),
|
||||
forme_name=u'XXX')
|
||||
|
||||
def add(name, language, score):
|
||||
def add(name, language, iso3166, score):
|
||||
writer.add_document(name=name.lower(), display_name=name,
|
||||
language=language,
|
||||
iso3166=iso3166,
|
||||
**row_key)
|
||||
speller_entries.append((name.lower(), score))
|
||||
|
||||
|
@ -128,7 +130,7 @@ def open_index(directory=None, session=None, recreate=False):
|
|||
row_key['forme_name'] = row.forme_name
|
||||
|
||||
name = row.name
|
||||
add(name, None, 1)
|
||||
add(name, None, u'us', 1)
|
||||
|
||||
# Pokemon also get other languages
|
||||
for foreign_name in getattr(row, 'foreign_names', []):
|
||||
|
@ -138,12 +140,14 @@ def open_index(directory=None, session=None, recreate=False):
|
|||
# no point and it makes spell results confusing
|
||||
continue
|
||||
|
||||
add(moonspeak, foreign_name.language.name, 3)
|
||||
add(moonspeak, foreign_name.language.name,
|
||||
foreign_name.language.iso3166,
|
||||
3)
|
||||
|
||||
# Add Roomaji too
|
||||
if foreign_name.language.name == 'Japanese':
|
||||
roomaji = romanize(foreign_name.name)
|
||||
add(roomaji, u'Roomaji', 8)
|
||||
add(roomaji, u'Roomaji', u'jp', 8)
|
||||
|
||||
writer.commit()
|
||||
|
||||
|
@ -176,7 +180,7 @@ class LanguageWeighting(whoosh.scoring.Weighting):
|
|||
rx_is_number = re.compile('^\d+$')
|
||||
|
||||
LookupResult = namedtuple('LookupResult',
|
||||
['object', 'name', 'language', 'exact'])
|
||||
['object', 'name', 'language', 'iso3166', 'exact'])
|
||||
|
||||
def _parse_table_name(name):
|
||||
"""Takes a singular table name, table name, or table object and returns the
|
||||
|
@ -215,6 +219,7 @@ def _whoosh_records_to_results(records, session, exact=True):
|
|||
results.append(LookupResult(object=obj,
|
||||
name=record['display_name'],
|
||||
language=record['language'],
|
||||
iso3166=record['iso3166'],
|
||||
exact=exact))
|
||||
|
||||
return results
|
||||
|
|
Loading…
Reference in a new issue