diff --git a/eos/db/saveddata/loadDefaultDatabaseValues.py b/eos/db/saveddata/loadDefaultDatabaseValues.py index befaad44b..51f497cc6 100644 --- a/eos/db/saveddata/loadDefaultDatabaseValues.py +++ b/eos/db/saveddata/loadDefaultDatabaseValues.py @@ -68,7 +68,7 @@ class DefaultDatabaseValues(object): ["[Hybrid Charges]Uranium", "0", "38.4", "57.6", "0"], ["[Missiles]Mjolnir", "100", "0", "0", "0"], ["[Missiles]Inferno", "0", "100", "0", "0"], ["[Missiles]Scourge", "0", "0", "100", "0"], ["[Missiles]Nova", "0", "0", "0", "100"], - ["[Missiles][Structure) Standup Missile", "100", "100", "100", "100"], + ["[Missiles][Structure] Standup Missile", "100", "100", "100", "100"], ["[Projectile Ammo][T2] Tremor", "0", "0", "24", "40"], ["[Projectile Ammo][T2] Quake", "0", "0", "40", "72"], ["[Projectile Ammo][T2] Hail", "0", "0", "26.4", "96.8"], diff --git a/eos/saveddata/damagePattern.py b/eos/saveddata/damagePattern.py index 2d32de6a2..d7889f131 100644 --- a/eos/saveddata/damagePattern.py +++ b/eos/saveddata/damagePattern.py @@ -18,12 +18,16 @@ # =============================================================================== import re +import eos.db class DamagePattern(object): DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive") - def __init__(self, emAmount=25, thermalAmount=25, kineticAmount=25, explosiveAmount=25): + def __init__(self, *args, **kwargs): + self.update(*args, **kwargs) + + def update(self, emAmount=25, thermalAmount=25, kineticAmount=25, explosiveAmount=25): self.emAmount = emAmount self.thermalAmount = thermalAmount self.kineticAmount = kineticAmount @@ -74,6 +78,14 @@ class DamagePattern(object): lines = re.split('[\n\r]+', text) patterns = [] numPatterns = 0 + + # When we import damage profiles, we create new ones and update old ones. To do this, get a list of current + # patterns to allow lookup + lookup = {} + current = eos.db.getDamagePatternList() + for pattern in current: + lookup[pattern.name] = pattern + for line in lines: try: if line.strip()[0] == "#": # comments @@ -99,10 +111,18 @@ class DamagePattern(object): continue if len(fields) == 4: # Avoid possible blank lines - pattern = DamagePattern(**fields) - pattern.name = name.strip() + if name.strip() in lookup: + pattern = lookup[name.strip()] + pattern.update(**fields) + eos.db.save(pattern) + else: + pattern = DamagePattern(**fields) + pattern.name = name.strip() + eos.db.save(pattern) patterns.append(pattern) + eos.db.commit() + return patterns, numPatterns EXPORT_FORMAT = "DamageProfile = %s,%d,%d,%d,%d\n" diff --git a/eos/saveddata/targetResists.py b/eos/saveddata/targetResists.py index e50c13791..63b64afef 100644 --- a/eos/saveddata/targetResists.py +++ b/eos/saveddata/targetResists.py @@ -19,6 +19,7 @@ import re from logbook import Logger +import eos.db pyfalog = Logger(__name__) @@ -27,7 +28,10 @@ class TargetResists(object): # also determined import/export order - VERY IMPORTANT DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive") - def __init__(self, emAmount=0, thermalAmount=0, kineticAmount=0, explosiveAmount=0): + def __init__(self, *args, **kwargs): + self.update(*args, **kwargs) + + def update(self, emAmount=0, thermalAmount=0, kineticAmount=0, explosiveAmount=0): self.emAmount = emAmount self.thermalAmount = thermalAmount self.kineticAmount = kineticAmount @@ -38,6 +42,14 @@ class TargetResists(object): lines = re.split('[\n\r]+', text) patterns = [] numPatterns = 0 + + # When we import damage profiles, we create new ones and update old ones. To do this, get a list of current + # patterns to allow lookup + lookup = {} + current = eos.db.getTargetResistsList() + for pattern in current: + lookup[pattern.name] = pattern + for line in lines: try: if line.strip()[0] == "#": # comments @@ -66,10 +78,18 @@ class TargetResists(object): continue if len(fields) == 4: # Avoid possible blank lines - pattern = TargetResists(**fields) - pattern.name = name.strip() + if name.strip() in lookup: + pattern = lookup[name.strip()] + pattern.update(**fields) + eos.db.save(pattern) + else: + pattern = TargetResists(**fields) + pattern.name = name.strip() + eos.db.save(pattern) patterns.append(pattern) + eos.db.commit() + return patterns, numPatterns EXPORT_FORMAT = "TargetResists = %s,%.1f,%.1f,%.1f,%.1f\n" diff --git a/service/damagePattern.py b/service/damagePattern.py index b52dee7e5..fd2d2c6b6 100644 --- a/service/damagePattern.py +++ b/service/damagePattern.py @@ -72,21 +72,9 @@ class DamagePattern(object): eos.db.save(p) def importPatterns(self, text): - lookup = {} - current = self.getDamagePatternList() - for pattern in current: - lookup[pattern.name] = pattern - imports, num = es_DamagePattern.importPatterns(text) - for pattern in imports: - if pattern.name in lookup: - match = lookup[pattern.name] - match.__dict__.update(pattern.__dict__) - else: - eos.db.save(pattern) - eos.db.commit() - lenImports = len(imports) + if lenImports == 0: raise ImportError("No patterns found for import") if lenImports != num: diff --git a/service/targetResists.py b/service/targetResists.py index 06df8c8c6..ca4ed57e7 100644 --- a/service/targetResists.py +++ b/service/targetResists.py @@ -72,21 +72,9 @@ class TargetResists(object): db.save(p) def importPatterns(self, text): - lookup = {} - current = self.getTargetResistsList() - for pattern in current: - lookup[pattern.name] = pattern - imports, num = es_TargetResists.importPatterns(text) - for pattern in imports: - if pattern.name in lookup: - match = lookup[pattern.name] - match.__dict__.update(pattern.__dict__) - else: - db.save(pattern) - db.commit() - lenImports = len(imports) + if lenImports == 0: raise ImportError("No patterns found for import") if lenImports != num: