189 lines
11 KiB
Python
189 lines
11 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(unicode(__file__, sys.getfilesystemencoding()))
|
|
sys.path.append(os.path.realpath(os.path.join(path, "..")))
|
|
|
|
# change to correct conversion
|
|
|
|
rename_phrase = " is now known as "
|
|
conversion_phrase = " has been converted into "
|
|
|
|
text = """F-392 Baker Nunn Tracking Disruptor I is now known as Baker Nunn Enduring Tracking Disruptor I
|
|
Balmer Series Tracking Disruptor I is now known as Balmer Series Compact Tracking Disruptor I
|
|
'Abandon' Tracking Disruptor I is now known as C-IR Compact Guidance Disruptor I
|
|
DDO Photometry Tracking Disruptor I is now known as DDO Scoped Tracking Disruptor I
|
|
'Distributor' Tracking Disruptor I is now known as 'Distributor' Guidance Disruptor I
|
|
5W Infectious Power System Malfunction is now known as Small Infectious Scoped Energy Neutralizer
|
|
Small 'Gremlin' Power Core Disruptor I is now known as Small Gremlin Compact Energy Neutralizer
|
|
Medium 'Gremlin' Power Core Disruptor I is now known as Medium Gremlin Compact Energy Neutralizer
|
|
50W Infectious Power System Malfunction is now known as Medium Infectious Scoped Energy Neutralizer
|
|
Heavy 'Gremlin' Power Core Disruptor I is now known as Heavy Gremlin Compact Energy Neutralizer
|
|
500W Infectious Power System Malfunction is now known as Heavy Infectious Scoped Energy Neutralizer
|
|
'Caltrop' Small Energy Neutralizer I is now known as Small 'Caltrop' Energy Neutralizer
|
|
'Ditch' Medium Energy Neutralizer I is now known as Medium 'Ditch' Energy Neutralizer
|
|
'Moat' Heavy Energy Neutralizer I is now known as Heavy 'Moat' Energy Neutralizer
|
|
Small 'Knave' Energy Drain is now known as Small Knave Scoped Energy Nosferatu
|
|
Small 'Ghoul' Energy Siphon I is now known as Small Ghoul Compact Energy Nosferatu
|
|
Heavy 'Ghoul' Energy Siphon I is now known as Heavy Ghoul Compact Energy Nosferatu
|
|
Heavy 'Knave' Energy Drain is now known as Heavy Knave Scoped Energy Nosferatu
|
|
Medium 'Ghoul' Energy Siphon I is now known as Medium Ghoul Compact Energy Nosferatu
|
|
Medium 'Knave' Energy Drain is now known as Medium Knave Scoped Energy Nosferatu
|
|
'Upir' Small Nosferatu I is now known as Small 'Upir' Energy Nosferatu
|
|
'Strigoi' Medium Nosferatu I is now known as Medium 'Strigoi' Energy Nosferatu
|
|
'Vrykolakas' Heavy Nosferatu I is now known as Heavy 'Vrykolakas' Energy Nosferatu
|
|
M51 Iterative Shield Regenerator is now known as M51 Benefactor Compact Shield Recharger
|
|
Basic Shield Power Relay is now known as 'Basic' Shield Power Relay
|
|
Type-D Power Core Modification: Shield Power Relay is now known as Type-D Restrained Shield Power Relay
|
|
Mark I Generator Refitting: Shield Power Relay is now known as Mark I Compact Shield Power Relay
|
|
Basic Shield Flux Coil is now known as 'Basic' Shield Flux Coil
|
|
Type-D Power Core Modification: Shield Flux is now known as Type-D Restrained Shield Flux Coil
|
|
Mark I Generator Refitting: Shield Flux is now known as Mark I Compact Shield Flux Coil
|
|
Micro Remote Shield Booster I is now known as 'Micro' Remote Shield Booster
|
|
Capital Murky Remote Shield Booster is now known as CONCORD Capital Remote Shield Booster
|
|
Small Murky Remote Shield Booster is now known as Small Murky Compact Remote Shield Booster
|
|
Small Asymmetric Remote Shield Booster is now known as Small Asymmetric Enduring Remote Shield Booster
|
|
Small S95a Remote Shield Booster is now known as Small S95a Scoped Remote Shield Booster
|
|
Medium Murky Remote Shield Booster is now known as Medium Murky Compact Remote Shield Booster
|
|
Medium Asymmetric Remote Shield Booster is now known as Medium Asymmetric Enduring Remote Shield Booster
|
|
Medium S95a Remote Shield Booster is now known as Medium S95a Scoped Remote Shield Booster
|
|
Large Murky Remote Shield Booster is now known as Large Murky Compact Remote Shield Booster
|
|
Large Asymmetric Remote Shield Booster is now known as Large Asymmetric Enduring Remote Shield Booster
|
|
Large S95a Remote Shield Booster is now known as Large S95a Scoped Remote Shield Booster
|
|
Capital Coaxial Remote Armor Repairer is now known as CONCORD Capital Remote Armor Repairer
|
|
Small I-ax Remote Armor Repairer is now known as Small I-ax Enduring Remote Armor Repairer
|
|
Small Coaxial Remote Armor Repairer is now known as Small Coaxial Compact Remote Armor Repairer
|
|
Small 'Solace' Remote Armor Repairer is now known as Small Solace Scoped Remote Armor Repairer
|
|
Medium I-ax Remote Armor Repairer is now known as Medium I-ax Enduring Remote Armor Repairer
|
|
Medium Coaxial Remote Armor Repairer is now known as Medium Coaxial Compact Remote Armor Repairer
|
|
Medium 'Solace' Remote Armor Repairer is now known as Medium Solace Scoped Remote Armor Repairer
|
|
Large I-ax Remote Armor Repairer is now known as Large I-ax Enduring Remote Armor Repairer
|
|
Large Coaxial Remote Armor Repairer is now known as Large Coaxial Compact Remote Armor Repairer
|
|
Large 'Solace' Remote Armor Repairer is now known as Large Solace Scoped Remote Armor Repairer
|
|
Small 'Arup' Remote Armor Repairer has been converted into Small Solace Scoped Remote Armor Repairer
|
|
'Brotherhood' Small Remote Armor Repairer has been converted into 'Beatnik' Small Remote Armor Repairer
|
|
Medium 'Arup' Remote Armor Repairer has been converted into Medium Solace Scoped Remote Armor Repairer
|
|
Large 'Arup' Remote Armor Repairer has been converted into Large Solace Scoped Remote Armor Repairer
|
|
'Pacifier' Large Remote Armor Repairer has been converted into 'Peace' Large Remote Armor Repairer
|
|
Micro Asymmetric Remote Shield Booster has been converted into 'Micro' Remote Shield Booster
|
|
Micro Murky Remote Shield Booster has been converted into 'Micro' Remote Shield Booster
|
|
Micro 'Atonement' Remote Shield Booster has been converted into 'Micro' Remote Shield Booster
|
|
Micro S95a Remote Shield Booster has been converted into 'Micro' Remote Shield Booster
|
|
Small 'Atonement' Remote Shield Booster has been converted into Small Murky Compact Remote Shield Booster
|
|
Medium 'Atonement' Remote Shield Booster has been converted into Medium Murky Compact Remote Shield Booster
|
|
Large 'Atonement' Remote Shield Booster has been converted into Large Murky Compact Remote Shield Booster
|
|
E5 Prototype Energy Vampire has been converted into Small Knave Scoped Energy Nosferatu
|
|
Small Diminishing Power System Drain I has been converted into Small Ghoul Compact Energy Nosferatu
|
|
E50 Prototype Energy Vampire has been converted into Medium Knave Scoped Energy Nosferatu
|
|
Medium Diminishing Power System Drain I has been converted into Medium Ghoul Compact Energy Nosferatu
|
|
E500 Prototype Energy Vampire has been converted into Heavy Knave Scoped Energy Nosferatu
|
|
Heavy Diminishing Power System Drain I has been converted into Heavy Ghoul Compact Energy Nosferatu
|
|
Small Rudimentary Energy Destabilizer I has been converted into Small Infectious Scoped Energy Neutralizer
|
|
Small Unstable Power Fluctuator I has been converted into Small Gremlin Compact Energy Neutralizer
|
|
Medium Rudimentary Energy Destabilizer I has been converted into Medium Infectious Scoped Energy Neutralizer
|
|
Medium Unstable Power Fluctuator I has been converted into Medium Gremlin Compact Energy Neutralizer
|
|
Heavy Rudimentary Energy Destabilizer I has been converted into Heavy Infectious Scoped Energy Neutralizer
|
|
Heavy Unstable Power Fluctuator I has been converted into Heavy Gremlin Compact Energy Neutralizer
|
|
Passive Barrier Compensator I has been converted into M51 Benefactor Compact Shield Recharger
|
|
'Benefactor' Ward Reconstructor has been converted into M51 Benefactor Compact Shield Recharger
|
|
Supplemental Screen Generator I has been converted into M51 Benefactor Compact Shield Recharger
|
|
Alpha Reactor Shield Power Relay has been converted into 'Basic' Shield Power Relay
|
|
Marked Generator Refitting: Shield Power Relay has been converted into 'Basic' Shield Power Relay
|
|
Partial Power Plant Manager: Shield Power Relay has been converted into 'Basic' Shield Power Relay
|
|
Type-E Power Core Modification: Shield Power Relay has been converted into 'Basic' Shield Power Relay
|
|
Beta Reactor Control: Shield Power Relay I has been converted into Type-D Restrained Shield Power Relay
|
|
Local Power Plant Manager: Reaction Shield Power Relay I has been converted into Mark I Compact Shield Power Relay
|
|
Alpha Reactor Shield Flux has been converted into 'Basic' Shield Flux Coil
|
|
Marked Generator Refitting: Shield Flux has been converted into 'Basic' Shield Flux Coil
|
|
Partial Power Plant Manager: Shield Flux has been converted into 'Basic' Shield Flux Coil
|
|
Type-E Power Core Modification: Shield Flux has been converted into 'Basic' Shield Flux Coil
|
|
Beta Reactor Control: Shield Flux I has been converted into Type-D Restrained Shield Flux Coil
|
|
Local Power Plant Manager: Reaction Shield Flux I has been converted into Mark I Compact Shield Flux Coil"""
|
|
|
|
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():
|
|
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
|
|
|
|
# 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.iteritems():
|
|
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.iteritems():
|
|
for old in olds:
|
|
print " \"{}\": \"{}\",".format(old[1], new[1])
|
|
|
|
print
|
|
print
|
|
|
|
for new, old in conversions.iteritems():
|
|
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)
|