From 6475bb8120502b192a9ea4cc083fd7efd5e92c8e Mon Sep 17 00:00:00 2001 From: j Date: Sat, 18 Feb 2017 13:01:33 +0100 Subject: [PATCH] py3 sort fixes --- ox/movie.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ox/movie.py b/ox/movie.py index 189fa3c..48fbe34 100644 --- a/ox/movie.py +++ b/ox/movie.py @@ -70,7 +70,7 @@ def parse_item_files(files): duplicate_files = [] for key in [get_file_key(file) for file in files]: key_files = sorted( - sorted([file for file in files if get_file_key(file) == key]), + [file for file in files if get_file_key(file) == key], key=lambda x: len(x['path']) ) unique_files.append(key_files[0]) @@ -114,10 +114,8 @@ def parse_item_files(files): # determine preferred subtitle language language[version_key] = None subtitle_files = [file for file in version_files[version_key] if file['extension'] == 'srt'] - for subtitle_language in sorted( - list(set([file['language'] for file in subtitle_files])), - key=lambda x: '%d' % LANGUAGES.index(x) if x in LANGUAGES else x - ): + subtitle_languages = list(set([file['language'] for file in subtitle_files])) + for subtitle_language in sorted(subtitle_languages, key=subtitle_sort): language_files = [file for file in subtitle_files if file['language'] == subtitle_language] if len(subtitle_files) == len(parts): language[version_key] = subtitle_language @@ -487,3 +485,11 @@ def get_oxid(title, director=[], year='', oxid = get_hash('\n'.join([director, title, str(year), str(season)]))[:8] + \ get_hash('\n'.join([str(episode), episode_director, episode_title, str(episode_year)]))[:8] return u'0x' + oxid + +def subtitle_sort(language): + if language in LANGUAGES: + return str(LANGUAGES.index(language)) + elif language is None: + return str(len(LANGUAGES)) + else: + return language