forked from pyfa-org/Pyfa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
conversion.py
65 lines (53 loc) · 2.23 KB
/
conversion.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Developed for module tiericide, this script will quickly print out a market
# conversion map based on database conversions / renamed modules between two
# eve databases. Correct database conversions must be implemented in upgrade
# script in eos.db.migrations
import argparse
import os.path
import sqlite3
import sys
# Add eos root path to sys.path so we can import ourselves
path = os.path.dirname(unicode(__file__, sys.getfilesystemencoding()))
sys.path.append(os.path.realpath(os.path.join(path, "..")))
# change to correct conversion
from eos.db.migrations.upgrade4 import CONVERSIONS
def main(old, new):
# Open both databases and get their cursors
old_db = sqlite3.connect(os.path.expanduser(old))
old_cursor = old_db.cursor()
new_db = sqlite3.connect(os.path.expanduser(new))
new_cursor = new_db.cursor()
print "# Renamed items"
# find renames (stolen from itemDiff)
old_namedata = {}
new_namedata = {}
for cursor, dictionary in ((old_cursor, old_namedata), (new_cursor, new_namedata)):
cursor.execute("SELECT typeID, typeName FROM invtypes")
for row in cursor:
id = row[0]
name = row[1]
dictionary[id] = name
for id in set(old_namedata.keys()).intersection(new_namedata.keys()):
oldname = old_namedata[id]
newname = new_namedata[id]
if oldname != newname:
print '"%s": "%s",' % (oldname.encode('utf-8'), newname.encode('utf-8'))
# Convert modules
print "\n# Converted items"
for replacement_item, list in CONVERSIONS.iteritems():
new_cursor.execute('SELECT "typeName" FROM "invtypes" WHERE "typeID" = ?', (replacement_item,))
for row in new_cursor:
new_item = row[0]
break
for retired_item in list:
old_cursor.execute('SELECT "typeName" FROM "invtypes" WHERE "typeID" = ?', (retired_item,))
for row in old_cursor:
old_item = row[0]
break
print '"%s": "%s",' % (old_item, new_item)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-o", "--old", type=str)
parser.add_argument("-n", "--new", type=str)
args = parser.parse_args()
main(args.old, args.new)