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
|
id,iso3166,name
|
||||||
1,Japanese
|
1,jp,Japanese
|
||||||
2,Official Romaaji
|
2,jp,Official Romaaji
|
||||||
3,Korean
|
3,kr,Korean
|
||||||
4,Chinese
|
4,cn,Chinese
|
||||||
5,French
|
5,fr,French
|
||||||
6,German
|
6,de,German
|
||||||
|
|
|
|
@ -151,6 +151,7 @@ class Item(TableBase):
|
||||||
class Language(TableBase):
|
class Language(TableBase):
|
||||||
__tablename__ = 'languages'
|
__tablename__ = 'languages'
|
||||||
id = Column(Integer, primary_key=True, nullable=False)
|
id = Column(Integer, primary_key=True, nullable=False)
|
||||||
|
iso3166 = Column(Unicode(2), nullable=False)
|
||||||
name = Column(Unicode(16), nullable=False)
|
name = Column(Unicode(16), nullable=False)
|
||||||
|
|
||||||
class Location(TableBase):
|
class Location(TableBase):
|
||||||
|
|
|
@ -94,6 +94,7 @@ def open_index(directory=None, session=None, recreate=False):
|
||||||
table=whoosh.fields.ID(stored=True),
|
table=whoosh.fields.ID(stored=True),
|
||||||
row_id=whoosh.fields.ID(stored=True),
|
row_id=whoosh.fields.ID(stored=True),
|
||||||
language=whoosh.fields.STORED,
|
language=whoosh.fields.STORED,
|
||||||
|
iso3166=whoosh.fields.STORED,
|
||||||
display_name=whoosh.fields.STORED, # non-lowercased name
|
display_name=whoosh.fields.STORED, # non-lowercased name
|
||||||
forme_name=whoosh.fields.ID,
|
forme_name=whoosh.fields.ID,
|
||||||
)
|
)
|
||||||
|
@ -117,9 +118,10 @@ def open_index(directory=None, session=None, recreate=False):
|
||||||
row_id=unicode(row.id),
|
row_id=unicode(row.id),
|
||||||
forme_name=u'XXX')
|
forme_name=u'XXX')
|
||||||
|
|
||||||
def add(name, language, score):
|
def add(name, language, iso3166, score):
|
||||||
writer.add_document(name=name.lower(), display_name=name,
|
writer.add_document(name=name.lower(), display_name=name,
|
||||||
language=language,
|
language=language,
|
||||||
|
iso3166=iso3166,
|
||||||
**row_key)
|
**row_key)
|
||||||
speller_entries.append((name.lower(), score))
|
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
|
row_key['forme_name'] = row.forme_name
|
||||||
|
|
||||||
name = row.name
|
name = row.name
|
||||||
add(name, None, 1)
|
add(name, None, u'us', 1)
|
||||||
|
|
||||||
# Pokemon also get other languages
|
# Pokemon also get other languages
|
||||||
for foreign_name in getattr(row, 'foreign_names', []):
|
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
|
# no point and it makes spell results confusing
|
||||||
continue
|
continue
|
||||||
|
|
||||||
add(moonspeak, foreign_name.language.name, 3)
|
add(moonspeak, foreign_name.language.name,
|
||||||
|
foreign_name.language.iso3166,
|
||||||
|
3)
|
||||||
|
|
||||||
# Add Roomaji too
|
# Add Roomaji too
|
||||||
if foreign_name.language.name == 'Japanese':
|
if foreign_name.language.name == 'Japanese':
|
||||||
roomaji = romanize(foreign_name.name)
|
roomaji = romanize(foreign_name.name)
|
||||||
add(roomaji, u'Roomaji', 8)
|
add(roomaji, u'Roomaji', u'jp', 8)
|
||||||
|
|
||||||
writer.commit()
|
writer.commit()
|
||||||
|
|
||||||
|
@ -176,7 +180,7 @@ class LanguageWeighting(whoosh.scoring.Weighting):
|
||||||
rx_is_number = re.compile('^\d+$')
|
rx_is_number = re.compile('^\d+$')
|
||||||
|
|
||||||
LookupResult = namedtuple('LookupResult',
|
LookupResult = namedtuple('LookupResult',
|
||||||
['object', 'name', 'language', 'exact'])
|
['object', 'name', 'language', 'iso3166', 'exact'])
|
||||||
|
|
||||||
def _parse_table_name(name):
|
def _parse_table_name(name):
|
||||||
"""Takes a singular table name, table name, or table object and returns the
|
"""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,
|
results.append(LookupResult(object=obj,
|
||||||
name=record['display_name'],
|
name=record['display_name'],
|
||||||
language=record['language'],
|
language=record['language'],
|
||||||
|
iso3166=record['iso3166'],
|
||||||
exact=exact))
|
exact=exact))
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
Loading…
Reference in a new issue