Add script for adding B/W locations
authora_magical_me <andrew@turnipmints.mooo.com>
Sun, 3 Apr 2011 12:16:15 +0000 (05:16 -0700)
committera_magical_me <andrew@turnipmints.mooo.com>
Tue, 5 Apr 2011 00:47:57 +0000 (17:47 -0700)
in the hope that it will be useful in future generations.

scripts/add-bw-locations.py [new file with mode: 0755]

diff --git a/scripts/add-bw-locations.py b/scripts/add-bw-locations.py
new file mode 100755 (executable)
index 0000000..5f031a0
--- /dev/null
@@ -0,0 +1,49 @@
+#!/usr/bin/env python2
+
+from codecs import open
+
+from pokedex.db import connect, identifier_from_name
+from pokedex.db.tables import Language
+from pokedex.db.tables import Location, LocationGameIndex
+
+session = connect()
+
+en = session.query(Language).filter_by(identifier='en').one() # English
+ja = session.query(Language).filter_by(identifier='ja').one() # Japanese
+
+with open("bw-location-names-en", "r", "utf-8") as f:
+    en_names = [line.rstrip("\n") for line in f]
+with open("bw-location-names-kanji", "r", "utf-8") as f:
+    ja_names = [line.rstrip("\n") for line in f]
+
+locations = {}
+for i, name in enumerate(zip(en_names, ja_names)):
+    if i == 0:
+        continue
+
+    en_name, ja_name = name
+    if not en_name:
+        continue
+
+    if name in locations:
+        loc = locations[name]
+    else:
+        loc = Location()
+        if en_name:
+            loc.name_map[en] = en_name
+        if ja_name:
+            loc.name_map[ja] = ja_name
+        loc.region_id = 5 # Unova
+        loc.identifier = identifier_from_name(en_name)
+
+        locations[name] = loc
+
+    lgi = LocationGameIndex()
+    lgi.location = loc
+    lgi.generation_id = 5 # Gen 5
+    lgi.game_index = i
+
+    session.add(loc)
+    session.add(lgi)
+
+session.commit()