From 167eb60fe3308142b670776daeb688e63424d181 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 24 Oct 2015 23:32:15 -0400 Subject: [PATCH] Added logic to find CA certs for SSL connections (for frozen apps) and added some logging --- config.py | 3 +++ service/crest.py | 14 +++++++++++--- service/server.py | 4 ++++ setup.py | 3 ++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/config.py b/config.py index 355136986..97456447d 100644 --- a/config.py +++ b/config.py @@ -94,6 +94,9 @@ def defPaths(): __createDirs(savePath) + if isFrozen(): + os.environ["REQUESTS_CA_BUNDLE"] = os.path.join(pyfaPath, "cacert.pem") + format = '%(asctime)s %(name)-24s %(levelname)-8s %(message)s' logging.basicConfig(format=format, level=logLevel) handler = logging.handlers.RotatingFileHandler(os.path.join(savePath, "log.txt"), maxBytes=1000000, backupCount=3) diff --git a/service/crest.py b/service/crest.py index a679eadf2..450204426 100644 --- a/service/crest.py +++ b/service/crest.py @@ -10,7 +10,9 @@ import service from service.server import * import config from gui.utils.repeatedTimer import RepeatedTimer +import logging +logger = logging.getLogger(__name__) class Crest(): @@ -29,6 +31,7 @@ class Crest(): def __init__(self): self.settings = service.settings.CRESTSettings.getInstance() self.httpd = StoppableHTTPServer(('', 6461), AuthHandler) + logger.debug(self.httpd) self.scopes = ['characterFittingsRead', 'characterFittingsWrite'] self.state = None @@ -96,15 +99,15 @@ class Crest(): return self.eve.auth_uri(scopes=self.scopes, state=self.state) def handleLogin(self, message): + self.httpd.stop() if not message: return if message['state'][0] != self.state: - print "state mismatch" + logger.warn("OAUTH state mismatch") return - print "handling login by making characters and stuff" - print message + logger.debug("Handling CREST login with: %s"%message) if 'access_token' in message: # implicit eve = copy.copy(self.eve) @@ -117,6 +120,9 @@ class Crest(): eve() info = eve.whoami() + + logger.debug("Got character info: %s" % info) + self.implicitCharacter = CrestUser(info['CharacterID'], info['CharacterName']) self.implicitCharacter.eve = eve self.implicitCharacter.fetchImage() @@ -128,6 +134,8 @@ class Crest(): eve() info = eve.whoami() + logger.debug("Got character info: %s" % info) + # check if we have character already. If so, simply replace refresh_token char = self.getCrestCharacter(int(info['CharacterID'])) if char: diff --git a/service/server.py b/service/server.py index e36db9631..7423bdf64 100644 --- a/service/server.py +++ b/service/server.py @@ -9,6 +9,10 @@ from wx.lib.pubsub import pub from html import HTML +import logging + +logger = logging.getLogger(__name__) + # https://github.com/fuzzysteve/CREST-Market-Downloader/ class AuthHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): diff --git a/setup.py b/setup.py index 24cf8b81a..b4738824a 100644 --- a/setup.py +++ b/setup.py @@ -4,11 +4,12 @@ Distribution builder for pyfa. Windows executable: python setup.py build Windows executable + installer: python setup.py bdist_msi """ +import requests.certs # The modules that contain the bulk of teh source packages = ['eos', 'gui', 'service', 'utils'] # Extra files that will be copied into the root directory -include_files = ['eve.db', 'LICENSE', 'README.md'] +include_files = ['eve.db', 'LICENSE', 'README.md', (requests.certs.where(),'cacert.pem')] # this is read by dist.py to package the icons icon_dirs = ['gui', 'icons', 'renders']