From 52d39dc5fd9742fc4c1ce940938c5a08d5e8c7ee Mon Sep 17 00:00:00 2001 From: A_D Date: Wed, 2 Dec 2020 15:54:59 +0200 Subject: [PATCH 1/4] Moved os.environ above logging import --- EDMC.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/EDMC.py b/EDMC.py index fac74186..bc5baba2 100755 --- a/EDMC.py +++ b/EDMC.py @@ -12,17 +12,21 @@ from os.path import getmtime, join from time import sleep, time from typing import TYPE_CHECKING, Any, Optional -# See EDMCLogging.py docs. # isort: off -from EDMCLogging import edmclogger, logger, logging -if TYPE_CHECKING: - from logging import trace, TRACE # type: ignore # noqa: F401 -# isort: on -edmclogger.set_channels_loglevel(logging.INFO) +# See EDMCLogging.py docs. # workaround for https://github.com/EDCD/EDMarketConnector/issues/568 os.environ["EDMC_NO_UI"] = "1" +from EDMCLogging import edmclogger, logger, logging + +if TYPE_CHECKING: + from logging import trace, TRACE # type: ignore # noqa: F401 + +edmclogger.set_channels_loglevel(logging.INFO) + +# isort: on + import collate import commodity import companion From 977e62188aa01417ddf2965d04be0f22452f447b Mon Sep 17 00:00:00 2001 From: A_D Date: Wed, 2 Dec 2020 15:57:42 +0200 Subject: [PATCH 2/4] Made sure to handle non-utf8 locales --- EDMC.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/EDMC.py b/EDMC.py index bc5baba2..e3af1879 100755 --- a/EDMC.py +++ b/EDMC.py @@ -173,7 +173,11 @@ sys.path: {sys.path}''' if args.j: logger.debug('Import and collate from JSON dump') # Import and collate from JSON dump - data = json.load(open(args.j)) + try: + data = json.load(open(args.j)) + except UnicodeDecodeError: + data = json.load(open(args.j, encoding='utf-8')) + config.set('querytime', int(getmtime(args.j))) else: @@ -188,7 +192,7 @@ sys.path: {sys.path}''' logfile = join(logdir, logfiles[-1]) logger.debug(f'Using logfile "{logfile}"') - with open(logfile, 'r') as loghandle: + with open(logfile, 'r', encoding='utf-8') as loghandle: for line in loghandle: try: monitor.parse_entry(line) From 9ec03008ced85632890ebf0db9e10e9168302dc7 Mon Sep 17 00:00:00 2001 From: A_D Date: Wed, 2 Dec 2020 16:03:43 +0200 Subject: [PATCH 3/4] Moved comment to correct place --- EDMC.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EDMC.py b/EDMC.py index e3af1879..9552fa4c 100755 --- a/EDMC.py +++ b/EDMC.py @@ -14,10 +14,10 @@ from typing import TYPE_CHECKING, Any, Optional # isort: off -# See EDMCLogging.py docs. -# workaround for https://github.com/EDCD/EDMarketConnector/issues/568 os.environ["EDMC_NO_UI"] = "1" +# See EDMCLogging.py docs. +# workaround for https://github.com/EDCD/EDMarketConnector/issues/568 from EDMCLogging import edmclogger, logger, logging if TYPE_CHECKING: From 8bb9cecfc0a2f11aeb2132c12876720033670bc7 Mon Sep 17 00:00:00 2001 From: A_D Date: Wed, 2 Dec 2020 16:08:06 +0200 Subject: [PATCH 4/4] Explanation comment on try/except --- EDMC.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/EDMC.py b/EDMC.py index 9552fa4c..04701313 100755 --- a/EDMC.py +++ b/EDMC.py @@ -173,6 +173,11 @@ sys.path: {sys.path}''' if args.j: logger.debug('Import and collate from JSON dump') # Import and collate from JSON dump + # + # Try twice, once with the system locale and once enforcing utf-8. If the file was made on the current + # system, chances are its the current locale, and not utf-8. Otherwise if it was copied, its probably + # utf8. Either way, try the system FIRST because reading something like cp1251 in UTF-8 results in garbage + # but the reverse results in an exception. try: data = json.load(open(args.j)) except UnicodeDecodeError: