diff --git a/cookbook/integration/integration.py b/cookbook/integration/integration.py index 48899d366..d1d82c57c 100644 --- a/cookbook/integration/integration.py +++ b/cookbook/integration/integration.py @@ -172,7 +172,7 @@ class Integration: traceback.print_exc() self.handle_exception(e, log=il, message=f'-------------------- \nERROR \n{e}\n--------------------\n') import_zip.close() - elif '.json' in f['name'] or '.txt' in f['name'] or '.mmf' in f['name']: + elif '.json' in f['name'] or '.txt' in f['name'] or '.mmf' in f['name'] or '.rk' in f['name']: data_list = self.split_recipe_file(f['file']) il.total_recipes += len(data_list) for d in data_list: diff --git a/cookbook/integration/rezkonv.py b/cookbook/integration/rezkonv.py index f75db229d..ba4c8e57a 100644 --- a/cookbook/integration/rezkonv.py +++ b/cookbook/integration/rezkonv.py @@ -60,9 +60,14 @@ class RezKonv(Integration): def split_recipe_file(self, file): recipe_list = [] current_recipe = '' - + encoding_list = ['windows-1250', 'latin-1'] #TODO build algorithm to try trough encodings and fail if none work, use for all importers + encoding = 'windows-1250' for fl in file.readlines(): - line = fl.decode("windows-1250") + try: + line = fl.decode(encoding) + except UnicodeDecodeError: + encoding = 'latin-1' + line = fl.decode(encoding) if line.startswith('=====') and 'rezkonv' in line.lower(): if current_recipe != '': recipe_list.append(current_recipe)