|
|
|
@ -105,6 +105,32 @@ def create_tables(conn): |
|
|
|
|
|
|
|
conn.commit() |
|
|
|
|
|
|
|
def tidy_location_name(name): |
|
|
|
# Replace '-' with spaces |
|
|
|
name = name.replace('-', ' ') |
|
|
|
|
|
|
|
# Remove 'area' from the end if present |
|
|
|
name = re.sub(r'\sarea$', '', name, flags=re.IGNORECASE) |
|
|
|
|
|
|
|
# Capitalize the first letter of the first word |
|
|
|
name = name.capitalize() |
|
|
|
|
|
|
|
# Check for cardinal directions at the end |
|
|
|
cardinal_directions = ['north', 'south', 'east', 'west', 'northeast', 'northwest', 'southeast', 'southwest'] |
|
|
|
for direction in cardinal_directions: |
|
|
|
if name.lower().endswith(f' {direction}'): |
|
|
|
# Remove the direction from the end and add it in brackets |
|
|
|
name = name[:-len(direction)].strip() |
|
|
|
name += f' ({direction.capitalize()})' |
|
|
|
break |
|
|
|
|
|
|
|
return name |
|
|
|
|
|
|
|
def generate_location_description(name): |
|
|
|
# Generate a simple description based on the name |
|
|
|
description = f"A location in the Pokémon world known as {name}." |
|
|
|
return description |
|
|
|
|
|
|
|
def load_game_data(conn): |
|
|
|
cursor = conn.cursor() |
|
|
|
|
|
|
|
@ -318,11 +344,14 @@ def load_encounter_data(conn): |
|
|
|
location, method = location_info.strip().rsplit(' ', 1) |
|
|
|
method = method.strip('()') |
|
|
|
|
|
|
|
# Tidy up the location name and generate a description |
|
|
|
description = tidy_location_name(location) |
|
|
|
|
|
|
|
# Insert or get location_id |
|
|
|
cursor.execute(''' |
|
|
|
INSERT OR IGNORE INTO locations (name, description) |
|
|
|
VALUES (?, ?) |
|
|
|
''', (location, None)) |
|
|
|
''', (location, description)) |
|
|
|
cursor.execute('SELECT id FROM locations WHERE name = ?', (location,)) |
|
|
|
location_id = cursor.fetchone()[0] |
|
|
|
|
|
|
|
|