Files
pyfa/scripts/conversion.py
2020-08-05 21:54:56 +03:00

276 lines
19 KiB
Python

# Developed for module tiericide, this script will quickly print out a market
# conversion map based on patch notes, as well as database conversion mapping.
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(__file__)
sys.path.append(os.path.realpath(os.path.join(path, "..")))
# change to correct conversion
rename_phrase = " renamed to "
conversion_phrase = " converted to "
text = """
Basic Energized EM Membrane renamed to 'Basic' EM Energized Membrane
Energized EM Membrane I renamed to EM Energized Membrane I
Energized EM Membrane II renamed to EM Energized Membrane II
Basic Energized Explosive Membrane renamed to 'Basic' Explosive Energized Membrane
Energized Explosive Membrane I renamed to Explosive Energized Membrane I
Energized Explosive Membrane II renamed to Explosive Energized Membrane II
Basic Energized Armor Layering Membrane renamed to 'Basic' Layered Energized Membrane
Energized Armor Layering Membrane I renamed to Layered Energized Membrane I
Energized Armor Layering Membrane II renamed to Layered Energized Membrane II
Basic Energized Kinetic Membrane renamed to 'Basic' Kinetic Energized Membrane
Energized Kinetic Membrane I renamed to Kinetic Energized Membrane I
Energized Kinetic Membrane II renamed to Kinetic Energized Membrane II
Basic Energized Thermal Membrane renamed to 'Basic' Thermal Energized Membrane
Energized Thermal Membrane I renamed to Thermal Energized Membrane I
Energized Thermal Membrane II renamed to Thermal Energized Membrane II
Basic Energized Adaptive Nano Membrane renamed to 'Basic' Multispectrum Energized Membrane
Energized Adaptive Nano Membrane I renamed to Multispectrum Energized Membrane I
Energized Adaptive Nano Membrane II renamed to Multispectrum Energized Membrane II
Dark Blood Energized Adaptive Nano Membrane renamed to Dark Blood Multispectrum Energized Membrane
True Sansha Energized Adaptive Nano Membrane renamed to True Sansha Multispectrum Energized Membrane
Shadow Serpentis Energized Adaptive Nano Membrane renamed to Shadow Serpentis Multispectrum Energized Membrane
Dark Blood Energized Kinetic Membrane renamed to Dark Blood Kinetic Energized Membrane
True Sansha Energized Kinetic Membrane renamed to True Sansha Kinetic Energized Membrane
Shadow Serpentis Energized Kinetic Membrane renamed to Shadow Serpentis Kinetic Energized Membrane
Dark Blood Energized Explosive Membrane renamed to Dark Blood Explosive Energized Membrane
True Sansha Energized Explosive Membrane renamed to True Sansha Explosive Energized Membrane
Shadow Serpentis Energized Explosive Membrane renamed to Shadow Serpentis Explosive Energized Membrane
Dark Blood Energized EM Membrane renamed to Dark Blood EM Energized Membrane
True Sansha Energized EM Membrane renamed to True Sansha EM Energized Membrane
Shadow Serpentis Energized EM Membrane renamed to Shadow Serpentis EM Energized Membrane
Dark Blood Energized Thermal Membrane renamed to Dark Blood Thermal Energized Membrane
True Sansha Energized Thermal Membrane renamed to True Sansha Thermal Energized Membrane
Shadow Serpentis Energized Thermal Membrane renamed to Shadow Serpentis Thermal Energized Membrane
Brokara's Modified Energized Adaptive Nano Membrane renamed to Brokara's Modified Multispectrum Energized Membrane
Tairei's Modified Energized Adaptive Nano Membrane renamed to Tairei's Modified Multispectrum Energized Membrane
Selynne's Modified Energized Adaptive Nano Membrane renamed to Selynne's Modified Multispectrum Energized Membrane
Raysere's Modified Energized Adaptive Nano Membrane renamed to Raysere's Modified Multispectrum Energized Membrane
Vizan's Modified Energized Adaptive Nano Membrane renamed to Vizan's Modified Multispectrum Energized Membrane
Ahremen's Modified Energized Adaptive Nano Membrane renamed to Ahremen's Modified Multispectrum Energized Membrane
Chelm's Modified Energized Adaptive Nano Membrane renamed to Chelm's Modified Multispectrum Energized Membrane
Draclira's Modified Energized Adaptive Nano Membrane renamed to Draclira's Modified Multispectrum Energized Membrane
Brokara's Modified Energized Thermal Membrane renamed to Brokara's Modified Thermal Energized Membrane
Tairei's Modified Energized Thermal Membrane renamed to Tairei's Modified Thermal Energized Membrane
Selynne's Modified Energized Thermal Membrane renamed to Selynne's Modified Thermal Energized Membrane
Raysere's Modified Energized Thermal Membrane renamed to Raysere's Modified Thermal Energized Membrane
Vizan's Modified Energized Thermal Membrane renamed to Vizan's Modified Thermal Energized Membrane
Ahremen's Modified Energized Thermal Membrane renamed to Ahremen's Modified Thermal Energized Membrane
Chelm's Modified Energized Thermal Membrane renamed to Chelm's Modified Thermal Energized Membrane
Draclira's Modified Energized Thermal Membrane renamed to Draclira's Modified Thermal Energized Membrane
Brokara's Modified Energized EM Membrane renamed to Brokara's Modified EM Energized Membrane
Tairei's Modified Energized EM Membrane renamed to Tairei's Modified EM Energized Membrane
Selynne's Modified Energized EM Membrane renamed to Selynne's Modified EM Energized Membrane
Raysere's Modified Energized EM Membrane renamed to Raysere's Modified EM Energized Membrane
Vizan's Modified Energized EM Membrane renamed to Vizan's Modified EM Energized Membrane
Ahremen's Modified Energized EM Membrane renamed to Ahremen's Modified EM Energized Membrane
Chelm's Modified Energized EM Membrane renamed to Chelm's Modified EM Energized Membrane
Draclira's Modified Energized EM Membrane renamed to Draclira's Modified EM Energized Membrane
Brokara's Modified Energized Explosive Membrane renamed to Brokara's Modified Explosive Energized Membrane
Tairei's Modified Energized Explosive Membrane renamed to Tairei's Modified Explosive Energized Membrane
Selynne's Modified Energized Explosive Membrane renamed to Selynne's Modified Explosive Energized Membrane
Raysere's Modified Energized Explosive Membrane renamed to Raysere's Modified Explosive Energized Membrane
Vizan's Modified Energized Explosive Membrane renamed to Vizan's Modified Explosive Energized Membrane
Ahremen's Modified Energized Explosive Membrane renamed to Ahremen's Modified Explosive Energized Membrane
Chelm's Modified Energized Explosive Membrane renamed to Chelm's Modified Explosive Energized Membrane
Draclira's Modified Energized Explosive Membrane renamed to Draclira's Modified Explosive Energized Membrane
Brokara's Modified Energized Kinetic Membrane renamed to Brokara's Modified Kinetic Energized Membrane
Tairei's Modified Energized Kinetic Membrane renamed to Tairei's Modified Kinetic Energized Membrane
Selynne's Modified Energized Kinetic Membrane renamed to Selynne's Modified Kinetic Energized Membrane
Raysere's Modified Energized Kinetic Membrane renamed to Raysere's Modified Kinetic Energized Membrane
Vizan's Modified Energized Kinetic Membrane renamed to Vizan's Modified Kinetic Energized Membrane
Ahremen's Modified Energized Kinetic Membrane renamed to Ahremen's Modified Kinetic Energized Membrane
Chelm's Modified Energized Kinetic Membrane renamed to Chelm's Modified Kinetic Energized Membrane
Draclira's Modified Energized Kinetic Membrane renamed to Draclira's Modified Kinetic Energized Membrane
Brynn's Modified Energized Adaptive Nano Membrane renamed to Brynn's Modified Multispectrum Energized Membrane
Tuvan's Modified Energized Adaptive Nano Membrane renamed to Tuvan's Modified Multispectrum Energized Membrane
Setele's Modified Energized Adaptive Nano Membrane renamed to Setele's Modified Multispectrum Energized Membrane
Cormack's Modified Energized Adaptive Nano Membrane renamed to Cormack's Modified Multispectrum Energized Membrane
Brynn's Modified Energized Thermal Membrane renamed to Brynn's Modified Thermal Energized Membrane
Tuvan's Modified Energized Thermal Membrane renamed to Tuvan's Modified Thermal Energized Membrane
Setele's Modified Energized Thermal Membrane renamed to Setele's Modified Thermal Energized Membrane
Cormack's Modified Energized Thermal Membrane renamed to Cormack's Modified Thermal Energized Membrane
Brynn's Modified Energized EM Membrane renamed to Brynn's Modified EM Energized Membrane
Tuvan's Modified Energized EM Membrane renamed to Tuvan's Modified EM Energized Membrane
Setele's Modified Energized EM Membrane renamed to Setele's Modified EM Energized Membrane
Cormack's Modified Energized EM Membrane renamed to Cormack's Modified EM Energized Membrane
Brynn's Modified Energized Explosive Membrane renamed to Brynn's Modified Explosive Energized Membrane
Tuvan's Modified Energized Explosive Membrane renamed to Tuvan's Modified Explosive Energized Membrane
Setele's Modified Energized Explosive Membrane renamed to Setele's Modified Explosive Energized Membrane
Cormack's Modified Energized Explosive Membrane renamed to Cormack's Modified Explosive Energized Membrane
Brynn's Modified Energized Kinetic Membrane renamed to Brynn's Modified Kinetic Energized Membrane
Tuvan's Modified Energized Kinetic Membrane renamed to Tuvan's Modified Kinetic Energized Membrane
Setele's Modified Energized Kinetic Membrane renamed to Setele's Modified Kinetic Energized Membrane
Cormack's Modified Energized Kinetic Membrane renamed to Cormack's Modified Kinetic Energized Membrane
Imperial Navy Energized Thermal Membrane renamed to Imperial Navy Thermal Energized Membrane
Imperial Navy Energized EM Membrane renamed to Imperial Navy EM Energized Membrane
Imperial Navy Energized Explosive Membrane renamed to Imperial Navy Explosive Energized Membrane
Imperial Navy Energized Kinetic Membrane renamed to Imperial Navy Kinetic Energized Membrane
Imperial Navy Energized Adaptive Nano Membrane renamed to Imperial Navy Multispectrum Energized Membrane
Federation Navy Energized Thermal Membrane renamed to Federation Navy Thermal Energized Membrane
Federation Navy Energized EM Membrane renamed to Federation Navy EM Energized Membrane
Federation Navy Energized Explosive Membrane renamed to Federation Navy Explosive Energized Membrane
Federation Navy Energized Kinetic Membrane renamed to Federation Navy Kinetic Energized Membrane
Federation Navy Energized Adaptive Nano Membrane renamed to Federation Navy Multispectrum Energized Membrane
Prototype Energized Adaptive Nano Membrane I renamed to Compact Multispectrum Energized Membrane
Prototype Energized Kinetic Membrane I renamed to Compact Kinetic Energized Membrane
Prototype Energized Explosive Membrane I renamed to Compact Explosive Energized Membrane
Prototype Energized EM Membrane I renamed to Compact EM Energized Membrane
Prototype Energized Armor Layering Membrane I renamed to Compact Layered Energized Membrane
Prototype Energized Thermal Membrane I renamed to Compact Thermal Energized Membrane
Ammatar Navy Energized Adaptive Nano Membrane renamed to Ammatar Navy Multispectrum Energized Membrane
Ammatar Navy Energized Kinetic Membrane renamed to Ammatar Navy Kinetic Energized Membrane
Ammatar Navy Energized Explosive Membrane renamed to Ammatar Navy Explosive Energized Membrane
Ammatar Navy Energized EM Membrane renamed to Ammatar Navy EM Energized Membrane
Ammatar Navy Energized Thermal Membrane renamed to Ammatar Navy Thermal Energized Membrane
Corelum C-Type Energized Adaptive Nano Membrane renamed to Corelum C-Type Multispectrum Energized Membrane
Corelum C-Type Energized Kinetic Membrane renamed to Corelum C-Type Kinetic Energized Membrane
Corelum C-Type Energized Explosive Membrane renamed to Corelum C-Type Explosive Energized Membrane
Corelum C-Type Energized EM Membrane renamed to Corelum C-Type EM Energized Membrane
Corelum C-Type Energized Thermal Membrane renamed to Corelum C-Type Thermal Energized Membrane
Corelum B-Type Energized Adaptive Nano Membrane renamed to Corelum B-Type Multispectrum Energized Membrane
Corelum B-Type Energized Kinetic Membrane renamed to Corelum B-Type Kinetic Energized Membrane
Corelum B-Type Energized Explosive Membrane renamed to Corelum B-Type Explosive Energized Membrane
Corelum B-Type Energized EM Membrane renamed to Corelum B-Type EM Energized Membrane
Corelum B-Type Energized Thermal Membrane renamed to Corelum B-Type Thermal Energized Membrane
Corelum A-Type Energized Adaptive Nano Membrane renamed to Corelum A-Type Multispectrum Energized Membrane
Corelum A-Type Energized Kinetic Membrane renamed to Corelum A-Type Kinetic Energized Membrane
Corelum A-Type Energized Explosive Membrane renamed to Corelum A-Type Explosive Energized Membrane
Corelum A-Type Energized EM Membrane renamed to Corelum A-Type EM Energized Membrane
Corelum A-Type Energized Thermal Membrane renamed to Corelum A-Type Thermal Energized Membrane
Corpum C-Type Energized Adaptive Nano Membrane renamed to Corpum C-Type Multispectrum Energized Membrane
Centum C-Type Energized Adaptive Nano Membrane renamed to Centum C-Type Multispectrum Energized Membrane
Corpum C-Type Energized Kinetic Membrane renamed to Corpum C-Type Kinetic Energized Membrane
Centum C-Type Energized Kinetic Membrane renamed to Centum C-Type Kinetic Energized Membrane
Corpum C-Type Energized Explosive Membrane renamed to Corpum C-Type Explosive Energized Membrane
Centum C-Type Energized Explosive Membrane renamed to Centum C-Type Explosive Energized Membrane
Corpum C-Type Energized EM Membrane renamed to Corpum C-Type EM Energized Membrane
Centum C-Type Energized EM Membrane renamed to Centum C-Type EM Energized Membrane
Corpum C-Type Energized Thermal Membrane renamed to Corpum C-Type Thermal Energized Membrane
Centum C-Type Energized Thermal Membrane renamed to Centum C-Type Thermal Energized Membrane
Corpum B-Type Energized Adaptive Nano Membrane renamed to Corpum B-Type Multispectrum Energized Membrane
Centum B-Type Energized Adaptive Nano Membrane renamed to Centum B-Type Multispectrum Energized Membrane
Corpum B-Type Energized Kinetic Membrane renamed to Corpum B-Type Kinetic Energized Membrane
Centum B-Type Energized Kinetic Membrane renamed to Centum B-Type Kinetic Energized Membrane
Corpum B-Type Energized Explosive Membrane renamed to Corpum B-Type Explosive Energized Membrane
Centum B-Type Energized Explosive Membrane renamed to Centum B-Type Explosive Energized Membrane
Corpum B-Type Energized Thermal Membrane renamed to Corpum B-Type Thermal Energized Membrane
Centum B-Type Energized Thermal Membrane renamed to Centum B-Type Thermal Energized Membrane
Corpum A-Type Energized Thermal Membrane renamed to Corpum A-Type Thermal Energized Membrane
Centum A-Type Energized Thermal Membrane renamed to Centum A-Type Thermal Energized Membrane
Corpum A-Type Energized EM Membrane renamed to Corpum A-Type EM Energized Membrane
Centum A-Type Energized EM Membrane renamed to Centum A-Type EM Energized Membrane
Corpum A-Type Energized Explosive Membrane renamed to Corpum A-Type Explosive Energized Membrane
Centum A-Type Energized Explosive Membrane renamed to Centum A-Type Explosive Energized Membrane
Corpum A-Type Energized Kinetic Membrane renamed to Corpum A-Type Kinetic Energized Membrane
Centum A-Type Energized Kinetic Membrane renamed to Centum A-Type Kinetic Energized Membrane
Corpum A-Type Energized Adaptive Nano Membrane renamed to Corpum A-Type Multispectrum Energized Membrane
Centum A-Type Energized Adaptive Nano Membrane renamed to Centum A-Type Multispectrum Energized Membrane
Corpum B-Type Energized EM Membrane renamed to Corpum B-Type EM Energized Membrane
Centum B-Type Energized EM Membrane renamed to Centum B-Type EM Energized Membrane
'Pilfer' Energized Adaptive Nano Membrane I renamed to 'Pilfer' Multispectrum Energized Membrane
'Moonshine' Energized Thermal Membrane I renamed to 'Moonshine' Thermal Energized Membrane
'Mafia' Energized Kinetic Membrane I renamed to 'Mafia' Kinetic Energized Membrane
Khanid Navy Energized Adaptive Nano Membrane renamed to Khanid Navy Multispectrum Energized Membrane
Khanid Navy Energized Kinetic Membrane renamed to Khanid Navy Kinetic Energized Membrane
Khanid Navy Energized Explosive Membrane renamed to Khanid Navy Explosive Energized Membrane
Khanid Navy Energized EM Membrane renamed to Khanid Navy EM Energized Membrane
Khanid Navy Energized Thermal Membrane renamed to Khanid Navy Thermal Energized Membrane
Large Compact Vorton projector renamed to Large Compact Vorton Projector
"""
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()
renames = {}
conversions = {}
for x in text.splitlines():
x = x.strip()
if not x:
continue
if conversion_phrase in x:
c = x.split(conversion_phrase)
container = conversions
elif rename_phrase in x:
c = x.split(rename_phrase)
container = renames
else:
print("Unknown format: {}".format(x))
sys.exit()
old_name, new_name = c[0], c[1]
old_item, new_item = None, None
if "Blueprint" in old_name or "Blueprint" in new_name:
print("Blueprint: Skipping this line: %s"%x)
continue
# gather item info
new_cursor.execute('SELECT "typeID" FROM "invtypes" WHERE "typeName" = ?', (new_name,))
for row in new_cursor:
new_item = row[0]
break
old_cursor.execute('SELECT "typeID" FROM "invtypes" WHERE "typeName" = ?', (old_name,))
for row in old_cursor:
old_item = row[0]
break
if not old_item:
print("Error finding old item in {} -> {}".format(old_name, new_name))
if not new_item:
print("Error finding new item in {} -> {}".format(old_name, new_name))
if not container.get((new_item,new_name), None):
container[(new_item,new_name)] = []
container[(new_item,new_name)].append((old_item, old_name))
print(" # Renamed items")
for new, old in renames.items():
if len(old) != 1:
print("Incorrect length, key: {}, value: {}".format(new, old))
sys.exit()
old = old[0]
print(" \"{}\": \"{}\",".format(old[1], new[1]))
# Convert modules
print("\n # Converted items")
for new, olds in conversions.items():
for old in olds:
print(" \"{}\": \"{}\",".format(old[1], new[1]))
print()
print()
for new, old in conversions.items():
print(" {}: ( # {}".format(new[0], new[1]))
for item in old:
print(" {}, # {}".format(item[0], item[1]))
print(" ),")
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)