diff --git a/eos/db/__init__.py b/eos/db/__init__.py index c3bdb9739..a5b3d6c7e 100644 --- a/eos/db/__init__.py +++ b/eos/db/__init__.py @@ -76,7 +76,7 @@ sd_lock = threading.RLock() # noinspection PyPep8 from eos.db.gamedata import alphaClones, attribute, category, effect, group, icon, item, marketGroup, metaData, metaGroup, queries, traits, unit # noinspection PyPep8 -from eos.db.saveddata import booster, cargo, character, crest, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, loadDefaultDatabaseValues, \ +from eos.db.saveddata import booster, cargo, character, ssoCharacter, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, loadDefaultDatabaseValues, \ miscData, module, override, price, queries, skill, targetResists, user # Import queries diff --git a/eos/db/saveddata/__init__.py b/eos/db/saveddata/__init__.py index 7dbf2a45d..cc581e3ef 100644 --- a/eos/db/saveddata/__init__.py +++ b/eos/db/saveddata/__init__.py @@ -12,7 +12,7 @@ __all__ = [ "miscData", "targetResists", "override", - "crest", + "ssoCharacter", "implantSet", "loadDefaultDatabaseValues" ] diff --git a/eos/db/saveddata/character.py b/eos/db/saveddata/character.py index 8bf7d59c3..f3c6f8f8d 100644 --- a/eos/db/saveddata/character.py +++ b/eos/db/saveddata/character.py @@ -32,7 +32,6 @@ from eos.saveddata.ssocharacter import SsoCharacter characters_table = Table("characters", saveddata_meta, Column("ID", Integer, primary_key=True), Column("name", String, nullable=False), - Column("ssoCharacterID", ForeignKey("ssoCharacter.ID"), nullable=True), Column("defaultLevel", Integer, nullable=True), Column("alphaCloneID", Integer, nullable=True), Column("ownerID", ForeignKey("users.ID"), nullable=True), diff --git a/eos/db/saveddata/crest.py b/eos/db/saveddata/ssoCharacter.py similarity index 86% rename from eos/db/saveddata/crest.py rename to eos/db/saveddata/ssoCharacter.py index 429da243d..80610890a 100644 --- a/eos/db/saveddata/crest.py +++ b/eos/db/saveddata/ssoCharacter.py @@ -17,7 +17,7 @@ # along with eos. If not, see . # =============================================================================== -from sqlalchemy import Table, Column, Integer, String, DateTime, UniqueConstraint +from sqlalchemy import Table, Column, Integer, String, DateTime, UniqueConstraint, ForeignKey from sqlalchemy.orm import mapper import datetime @@ -38,4 +38,9 @@ sso_table = Table("ssoCharacter", saveddata_meta, UniqueConstraint('client', 'characterName', name='uix_client_characterName') ) +sso_character_map_table = Table("ssoCharacterMap", saveddata_meta, + Column("characterID", ForeignKey("characters.ID"), primary_key=True), + Column("ssoCharacterID", ForeignKey("ssoCharacter.ID"), primary_key=True), + ) + mapper(SsoCharacter, sso_table) diff --git a/service/esi.py b/service/esi.py index 1fe3a7cac..c174021dd 100644 --- a/service/esi.py +++ b/service/esi.py @@ -44,15 +44,18 @@ class Esi(object): esi_v1 = None esi_v4 = None + _initializing = None + _instance = None @classmethod def initEsiApp(cls): - cls.esiapp = EsiApp(cache=file_cache, cache_time=None, cache_prefix='pyfa{0}-esipy-'.format(config.version)) - cls.esi_v1 = cls.esiapp.get_v1_swagger - cls.esi_v4 = cls.esiapp.get_v4_swagger - - # esiRdy.set() + if cls._initializing is None: + cls._initializing = True + cls.esiapp = EsiApp(cache=file_cache, cache_time=None, cache_prefix='pyfa{0}-esipy-'.format(config.version)) + cls.esi_v1 = cls.esiapp.get_v1_swagger + cls.esi_v4 = cls.esiapp.get_v4_swagger + cls._initializing = False @classmethod def genEsiClient(cls, security=None): @@ -102,6 +105,7 @@ class Esi(object): def delSsoCharacter(self, id): char = eos.db.getSsoCharacter(id, config.getClientSecret()) eos.db.remove(char) + wx.PostEvent(self.mainFrame, GE.SsoLogout(charID=id)) def getSsoCharacters(self): chars = eos.db.getSsoCharacters(config.getClientSecret())