diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 4fd8e112..aa40e7a1 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 12.1.03 +current_version = 12.1.04 commit = True tag = False diff --git a/core/__init__.py b/core/__init__.py index 9814c87f..8cdcfeee 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -83,7 +83,7 @@ from core.utils import ( wake_up, ) -__version__ = '12.1.03' +__version__ = '12.1.04' # Client Agents NZB_CLIENTS = ['sabnzbd', 'nzbget', 'manual'] diff --git a/core/auto_process/music.py b/core/auto_process/music.py index e72d9b8c..af3bb166 100644 --- a/core/auto_process/music.py +++ b/core/auto_process/music.py @@ -125,7 +125,7 @@ def process(section, dir_name, input_name=None, status=0, client_agent='manual', ) try: - res = json.loads(r.content) + res = r.json() scan_id = int(res['id']) logger.debug('Scan started with id: {0}'.format(scan_id), section) except Exception as e: diff --git a/core/auto_process/tv.py b/core/auto_process/tv.py index 57fe2a1e..801f3234 100644 --- a/core/auto_process/tv.py +++ b/core/auto_process/tv.py @@ -95,12 +95,13 @@ def process(section, dir_name, input_name=None, failed=False, client_agent='manu # Attempt to create the directory if it doesn't exist and ignore any # error stating that it already exists. This fixes a bug where SickRage # won't process the directory because it doesn't exist. - try: - os.makedirs(dir_name) # Attempt to create the directory - except OSError as e: - # Re-raise the error if it wasn't about the directory not existing - if e.errno != errno.EEXIST: - raise + if dir_name: + try: + os.makedirs(dir_name) # Attempt to create the directory + except OSError as e: + # Re-raise the error if it wasn't about the directory not existing + if e.errno != errno.EEXIST: + raise if 'process_method' not in fork_params or (client_agent in ['nzbget', 'sabnzbd'] and nzb_extraction_by != 'Destination'): if input_name: @@ -343,7 +344,7 @@ def process(section, dir_name, input_name=None, failed=False, client_agent='manu time.sleep(60) elif section == 'NzbDrone': try: - res = json.loads(r.content) + res = r.json() scan_id = int(res['id']) logger.debug('Scan started with id: {0}'.format(scan_id), section) started = True diff --git a/core/utils/encoding.py b/core/utils/encoding.py index bd6183d5..e4ad894a 100644 --- a/core/utils/encoding.py +++ b/core/utils/encoding.py @@ -27,40 +27,68 @@ def char_replace(name_in): encoded = False encoding = None if isinstance(name_in, text_type): - return encoded, name_in.encode(core.SYS_ENCODING) + return encoded, name_in if PY2: name = name_in + for Idx in range(len(name)): + # print('Trying to intuit the encoding') + # /!\ detection is done 2char by 2char for UTF-8 special character + if (len(name) != 1) & (Idx < (len(name) - 1)): + # Detect UTF-8 + if ((name[Idx] == '\xC2') | (name[Idx] == '\xC3')) & ( + (name[Idx + 1] >= '\xA0') & (name[Idx + 1] <= '\xFF')): + encoding = 'utf-8' + break + # Detect CP850 + elif (name[Idx] >= '\x80') & (name[Idx] <= '\xA5'): + encoding = 'cp850' + break + # Detect ISO-8859-15 + elif (name[Idx] >= '\xA6') & (name[Idx] <= '\xFF'): + encoding = 'iso-8859-15' + break + else: + # Detect CP850 + if (name[Idx] >= '\x80') & (name[Idx] <= '\xA5'): + encoding = 'cp850' + break + # Detect ISO-8859-15 + elif (name[Idx] >= '\xA6') & (name[Idx] <= '\xFF'): + encoding = 'iso-8859-15' + break else: name = bytes(name_in) - for Idx in range(len(name)): - print('Trying to intuit the encoding') - # /!\ detection is done 2char by 2char for UTF-8 special character - if (len(name) != 1) & (Idx < (len(name) - 1)): - # Detect UTF-8 - if ((name[Idx] == 0xC2) | (name[Idx] == 0xC3)) & ( - (name[Idx + 1] >= 0xA0) & (name[Idx + 1] <= 0xFF)): - encoding = 'utf-8' - break - # Detect CP850 - elif (name[Idx] >= 0x80) & (name[Idx] <= 0xA5): - encoding = 'cp850' - break - # Detect ISO-8859-15 - elif (name[Idx] >= 0xA6) & (name[Idx] <= 0xFF): - encoding = 'iso-8859-15' - break - else: - # Detect CP850 - if (name[Idx] >= 0x80) & (name[Idx] <= 0xA5): - encoding = 'cp850' - break - # Detect ISO-8859-15 - elif (name[Idx] >= 0xA6) & (name[Idx] <= 0xFF): - encoding = 'iso-8859-15' - break - if encoding and not encoding == core.SYS_ENCODING: + for Idx in range(len(name)): + # print('Trying to intuit the encoding') + # /!\ detection is done 2char by 2char for UTF-8 special character + if (len(name) != 1) & (Idx < (len(name) - 1)): + # Detect UTF-8 + if ((name[Idx] == 0xC2) | (name[Idx] == 0xC3)) & ( + (name[Idx + 1] >= 0xA0) & (name[Idx + 1] <= 0xFF)): + encoding = 'utf-8' + break + # Detect CP850 + elif (name[Idx] >= 0x80) & (name[Idx] <= 0xA5): + encoding = 'cp850' + break + # Detect ISO-8859-15 + elif (name[Idx] >= 0xA6) & (name[Idx] <= 0xFF): + encoding = 'iso-8859-15' + break + else: + # Detect CP850 + if (name[Idx] >= 0x80) & (name[Idx] <= 0xA5): + encoding = 'cp850' + break + # Detect ISO-8859-15 + elif (name[Idx] >= 0xA6) & (name[Idx] <= 0xFF): + encoding = 'iso-8859-15' + break + if encoding: encoded = True - name = name.decode(encoding).encode(core.SYS_ENCODING) + name = name.decode(encoding) + elif not PY2: + name = name.decode() return encoded, name diff --git a/core/utils/identification.py b/core/utils/identification.py index 84fa834a..bd7dff04 100644 --- a/core/utils/identification.py +++ b/core/utils/identification.py @@ -63,7 +63,7 @@ def find_imdbid(dir_name, input_name, omdb_api_key): url = 'http://www.omdbapi.com' if not omdb_api_key: - logger.info('Unable to determine imdbID: No api key provided for ombdapi.com.') + logger.info('Unable to determine imdbID: No api key provided for omdbapi.com.') return logger.debug('Opening URL: {0}'.format(url)) diff --git a/setup.py b/setup.py index 19d0a3b7..df77e262 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ def read(*names, **kwargs): setup( name='nzbToMedia', - version='12.1.03', + version='12.1.04', license='GPLv3', description='Efficient on demand post processing', long_description="""