Fix instance where some items were being re-added due to lack of return. Also, implement some basic logging.

This commit is contained in:
blitzmann
2015-07-04 23:16:20 -04:00
parent 5991d19b3e
commit aaa60cbc14
2 changed files with 17 additions and 1 deletions

View File

@@ -32,7 +32,16 @@ gameDB = None
# TODO: move back to pyfa.py main loop # TODO: move back to pyfa.py main loop
# We moved it here just to avoid rebuilding windows skeleton for now (any change to pyfa.py needs it) # We moved it here just to avoid rebuilding windows skeleton for now (any change to pyfa.py needs it)
import logging import logging
logging.basicConfig() import logging.handlers
format = '%(asctime)s %(name)-24s %(levelname)-8s %(message)s'
logging.basicConfig(format=format, level=logging.DEBUG)
handler = logging.handlers.RotatingFileHandler("log.txt", maxBytes=10000, backupCount=3)
formatter = logging.Formatter(format)
handler.setFormatter(formatter)
logging.getLogger('').addHandler(handler)
logging.info("Starting pyfa")
def defPaths(): def defPaths():
global pyfaPath global pyfaPath

View File

@@ -20,6 +20,9 @@
from sqlalchemy.orm.attributes import flag_modified from sqlalchemy.orm.attributes import flag_modified
import eos.db import eos.db
import eos.types import eos.types
import logging
logger = logging.getLogger(__name__)
class HandledList(list): class HandledList(list):
def filteredItemPreAssign(self, filter, *args, **kwargs): def filteredItemPreAssign(self, filter, *args, **kwargs):
@@ -180,10 +183,12 @@ class HandledImplantBoosterList(HandledList):
if thing.isInvalid: if thing.isInvalid:
HandledList.append(self, thing) HandledList.append(self, thing)
self.remove(thing) self.remove(thing)
return
# if needed, remove booster that was occupying slot # if needed, remove booster that was occupying slot
oldObj = next((m for m in self if m.slot == thing.slot), None) oldObj = next((m for m in self if m.slot == thing.slot), None)
if oldObj: if oldObj:
logging.info("Slot %d occupied with %s, replacing with %s", thing.slot, oldObj.item.name, thing.item.name)
self.remove(oldObj) self.remove(oldObj)
HandledList.append(self, thing) HandledList.append(self, thing)
@@ -195,6 +200,7 @@ class HandledProjectedModList(HandledList):
# rows and relationships in database are removed as well # rows and relationships in database are removed as well
HandledList.append(self, proj) HandledList.append(self, proj)
self.remove(proj) self.remove(proj)
return
proj.projected = True proj.projected = True
isSystemEffect = proj.item.group.name == "Effect Beacon" isSystemEffect = proj.item.group.name == "Effect Beacon"
@@ -204,6 +210,7 @@ class HandledProjectedModList(HandledList):
oldEffect = next((m for m in self if m.item.group.name == "Effect Beacon"), None) oldEffect = next((m for m in self if m.item.group.name == "Effect Beacon"), None)
if oldEffect: if oldEffect:
logging.info("System effect occupied with %s, replacing with %s", oldEffect.item.name, proj.item.name)
self.remove(oldEffect) self.remove(oldEffect)
HandledList.append(self, proj) HandledList.append(self, proj)