From 91aad9670fba0a1539b29e5e18f6063b18ea49a9 Mon Sep 17 00:00:00 2001 From: UKDTOM Date: Tue, 22 Dec 2020 23:04:41 +0100 Subject: [PATCH 1/7] WIP --- Contents/Code/consts.py | 2 +- Contents/Code/misc.py | 48 ++++++++++++++++++++++++++++----------- Contents/Code/tvfields.py | 12 ++++++++++ Contents/Code/tvseries.py | 42 ++++++++++++++++++++++------------ 4 files changed, 76 insertions(+), 28 deletions(-) diff --git a/Contents/Code/consts.py b/Contents/Code/consts.py index 77593b3..96e985d 100644 --- a/Contents/Code/consts.py +++ b/Contents/Code/consts.py @@ -4,7 +4,7 @@ ######################################################################## # APP specific stuff -VERSION = ' V2.0.0.13' +VERSION = ' V2.0.0.14' APPNAME = 'ExportTools' NAME = APPNAME + VERSION DESCRIPTION = 'Export Plex libraries to csv-files or xlsx-files' diff --git a/Contents/Code/misc.py b/Contents/Code/misc.py index cdd66ff..4ab7960 100644 --- a/Contents/Code/misc.py +++ b/Contents/Code/misc.py @@ -127,7 +127,8 @@ def GetRegInfo(myMedia, myField, default=''): return myLookUp.encode('utf8') -def GetRegInfo2(myMedia, myField, default=consts.DEFAULT, key='N/A'): +def GetRegInfo2( + myMedia, myField, default=consts.DEFAULT, key='N/A', mediaType='movie'): ''' Pull's a field from the xml ''' returnVal = '' global retVal @@ -165,15 +166,26 @@ def GetRegInfo2(myMedia, myField, default=consts.DEFAULT, key='N/A'): returnVal = default return WrapStr(fixCRLF(returnVal)).encode('utf8') else: - if key in ['IMDB ID', 'TMDB ID', 'IMDB Link', 'TMDB Link']: + if key in [ + 'IMDB ID', 'TMDB ID', 'IMDB Link', + 'TMDB Link', 'TVDB ID', 'TVDB Link']: try: if key == 'IMDB Link': returnVal = ''.join(( 'https://www.imdb.com/title/', myMedia.xpath(myField)[0].split("//")[1])) elif key == 'TMDB Link': + if mediaType == 'movie': + returnVal = ''.join(( + 'https://www.themoviedb.org/movie/', + myMedia.xpath(myField)[0].split("//")[1])) + else: + returnVal = ''.join(( + 'https://www.themoviedb.org/tv/', + myMedia.xpath(myField)[0].split("//")[1])) + elif key == 'TVDB Link': returnVal = ''.join(( - 'https://www.themoviedb.org/movie/', + 'https://www.GED.org/TEST/', myMedia.xpath(myField)[0].split("//")[1])) else: returnVal = myMedia.xpath(myField)[0].split("//")[1] @@ -270,7 +282,7 @@ def getLevelFields(levelFields, fieldnames): return fieldnamesList -def getItemInfo(et, myRow, fieldList): +def getItemInfo(et, myRow, fieldList, mediaType='movie'): ''' fetch the actual info for the element ''' intBehindthescenes = 0 intDeleted = 0 @@ -294,13 +306,16 @@ def getItemInfo(et, myRow, fieldList): consts.DEFAULT, key=key): element = GetRegInfo2( - et, '@title', consts.DEFAULT, key='Title') + et, '@title', consts.DEFAULT, key='Title', + mediaType=mediaType) else: element = GetRegInfo2( - et, value, consts.DEFAULT, key=key) + et, value, consts.DEFAULT, key=key, + mediaType=mediaType) else: element = GetRegInfo2( - et, value, consts.DEFAULT, key=key) + et, value, consts.DEFAULT, key=key, + mediaType=mediaType) elif key.startswith('Extras-'): retVals = et.xpath(value) element = str(len(retVals)) @@ -312,7 +327,8 @@ def getItemInfo(et, myRow, fieldList): et, value, consts.DEFAULT, - key='Part File Only') + key='Part File Only', + mediaType=mediaType) if key == 'Part File Only': element = os.path.split(element)[1] else: @@ -324,21 +340,27 @@ def getItemInfo(et, myRow, fieldList): et, value, consts.DEFAULT, - key=key): + key=key, + mediaType=mediaType): element = GetRegInfo2( - et, '@title', consts.DEFAULT, key='Title') + et, '@title', consts.DEFAULT, key='Title', + mediaType=mediaType) else: element = GetRegInfo2( - et, value, consts.DEFAULT, key=key) + et, value, consts.DEFAULT, key=key, + mediaType=mediaType) else: element = GetRegInfo2( et, value, consts.DEFAULT, - key=key) + key=key, + mediaType=mediaType) # part file elif key.startswith('Part File'): - element = GetRegInfo2(et, value, consts.DEFAULT, key=key) + element = GetRegInfo2( + et, value, consts.DEFAULT, key=key, + mediaType=mediaType) if key == 'Part File': element = os.path.split(element)[1] elif key == 'Part File Path': diff --git a/Contents/Code/tvfields.py b/Contents/Code/tvfields.py index 1e05b23..c1f9b5d 100644 --- a/Contents/Code/tvfields.py +++ b/Contents/Code/tvfields.py @@ -75,6 +75,18 @@ ('Intro Start', 'Marker[@type="intro"]/@startTimeOffset'), ('Intro Stop', 'Marker[@type="intro"]/@endTimeOffset'), ('MetaDB Link', '@guid'), + ('IMDB ID', + '//Guid[starts-with(@id, "imdb")]/@id'), + ('IMDB Link', + '//Guid[starts-with(@id, "imdb")]/@id'), + ('TMDB ID', + '//Guid[starts-with(@id, "tmdb")]/@id'), + ('TMDB Link', + '//Guid[starts-with(@id, "tmdb")]/@id'), + ('TVDB ID', + '//Guid[starts-with(@id, "tvdb")]/@id'), + ('TVDB Link', + '//Guid[starts-with(@id, "tvdb")]/@id'), ('MetaData Language', '@guid'), ('Part File Combined', 'Media/Part/@file'), diff --git a/Contents/Code/tvseries.py b/Contents/Code/tvseries.py index b958e0d..ae19a9b 100644 --- a/Contents/Code/tvseries.py +++ b/Contents/Code/tvseries.py @@ -117,27 +117,35 @@ def getTvInfo(myMedia, myRow, level=None): else: prefsLevel = Prefs['TV_Level'] if prefsLevel in ['Show Only 1', 'Show Only 2']: - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Show_1) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Show_1, mediaType='show') if prefsLevel == 'Show Only 2': - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Show_2) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Show_2, mediaType='show') return myRow elif 'Special' in prefsLevel: if prefsLevel == 'Special Level 1': - myRow = misc.getItemInfo(myMedia, myRow, tvfields.SLevel_1) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.SLevel_1, mediaType='episode') elif prefsLevel == 'Special Level 2': - myRow = misc.getItemInfo(myMedia, myRow, tvfields.SLevel_2) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.SLevel_2, mediaType='episode') elif prefsLevel == 'Special Level 3': - myRow = misc.getItemInfo(myMedia, myRow, tvfields.SLevel_3) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.SLevel_3, mediaType='episode') elif prefsLevel == 'Special Level 4': - myRow = misc.getItemInfo(myMedia, myRow, tvfields.SLevel_4) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.SLevel_4, mediaType='episode') elif prefsLevel == 'Special Level 666': - myRow = misc.getItemInfo(myMedia, myRow, tvfields.SLevel_666) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.SLevel_666, mediaType='episode') if '666' in prefsLevel: myRow = misc.getMediaPath(myMedia, myRow) return myRow else: # Get Simple Info - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Level_1) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Level_1, mediaType='episode') # Get Basic Info if prefsLevel in [ 'Level 2', @@ -148,7 +156,8 @@ def getTvInfo(myMedia, myRow, level=None): 'Level 7', 'Level 8', 'Level 666']: - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Level_2) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Level_2, mediaType='episode') # Get Extended Info if prefsLevel in [ 'Level 3', @@ -158,7 +167,8 @@ def getTvInfo(myMedia, myRow, level=None): 'Level 7', 'Level 8', 'Level 666']: - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Level_3) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Level_3, mediaType='episode') # Get Extreme Info if prefsLevel in [ 'Level 4', @@ -167,7 +177,8 @@ def getTvInfo(myMedia, myRow, level=None): 'Level 7', 'Level 8', 'Level 666']: - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Level_4) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Level_4, mediaType='episode') # Get Extreme 2 Info if prefsLevel in [ 'Level 5', @@ -175,13 +186,16 @@ def getTvInfo(myMedia, myRow, level=None): 'Level 7', 'Level 8', 'Level 666']: - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Level_5) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Level_5, mediaType='episode') # Get Extreme 3 Info if prefsLevel in ['Level 6', 'Level 7', 'Level 8', 'Level 666']: - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Level_6) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Level_6, mediaType='episode') # Get Extreme 3 Info if prefsLevel in ['Level 7', 'Level 8', 'Level 666']: - myRow = misc.getItemInfo(myMedia, myRow, tvfields.Level_7) + myRow = misc.getItemInfo( + myMedia, myRow, tvfields.Level_7, mediaType='episode') # Get Media Path as well if '666' in prefsLevel: myRow = misc.getMediaPath(myMedia, myRow) From 45100d454c8ff0fd7aaf34dd4073fda1167da439 Mon Sep 17 00:00:00 2001 From: UKDTOM Date: Fri, 25 Dec 2020 22:34:08 +0100 Subject: [PATCH 2/7] #151 Fixed --- Contents/Code/tvfields.py | 8 ++++---- changelog.txt | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Contents/Code/tvfields.py b/Contents/Code/tvfields.py index c1f9b5d..e06eeeb 100644 --- a/Contents/Code/tvfields.py +++ b/Contents/Code/tvfields.py @@ -81,12 +81,12 @@ '//Guid[starts-with(@id, "imdb")]/@id'), ('TMDB ID', '//Guid[starts-with(@id, "tmdb")]/@id'), - ('TMDB Link', - '//Guid[starts-with(@id, "tmdb")]/@id'), +# ('TMDB Link', +# '//Guid[starts-with(@id, "tmdb")]/@id'), ('TVDB ID', '//Guid[starts-with(@id, "tvdb")]/@id'), - ('TVDB Link', - '//Guid[starts-with(@id, "tvdb")]/@id'), +# ('TVDB Link', +# '//Guid[starts-with(@id, "tvdb")]/@id'), ('MetaData Language', '@guid'), ('Part File Combined', 'Media/Part/@file'), diff --git a/changelog.txt b/changelog.txt index 46bd8d6..07d3679 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +V2.0.0.14: + - New: + - #151 Handle new Guid for shows with the new TV Agent + V2.0.0.13: - New: - #149 Export TV Show Original Added Date when using Shows Only Levels From 7df51eca306d0c1480f72c56cae42f0ed3ac48d2 Mon Sep 17 00:00:00 2001 From: UKDTOM Date: Fri, 25 Dec 2020 23:51:30 +0100 Subject: [PATCH 3/7] #151 revisited...forgot show level3 --- Contents/Code/tvfields.py | 16 +++++++ Contents/Code/tvseries.py | 98 ++++++++++++++++++++++++++++----------- 2 files changed, 86 insertions(+), 28 deletions(-) diff --git a/Contents/Code/tvfields.py b/Contents/Code/tvfields.py index e06eeeb..bb16d35 100644 --- a/Contents/Code/tvfields.py +++ b/Contents/Code/tvfields.py @@ -239,6 +239,22 @@ Show_3 = [ ('Location', '//Location/@path'), ('MetaDB Link', '@guid'), + ('IMDB ID', + '//Guid[starts-with(@id, "imdb")]/@id'), + ('IMDB Link', + '//Guid[starts-with(@id, "imdb")]/@id'), + ('TMDB ID', + '//Guid[starts-with(@id, "tmdb")]/@id'), +# ('TMDB Link', +# '//Guid[starts-with(@id, "tmdb")]/@id'), + ('TVDB ID', + '//Guid[starts-with(@id, "tvdb")]/@id'), +# ('TVDB Link', +# '//Guid[starts-with(@id, "tvdb")]/@id'), + + + + ('Labels', '//Label/@tag'), ('Collection', ''), ('Delete Item Watched after days', '@autoDeletionItemPolicyWatchedLibrary') diff --git a/Contents/Code/tvseries.py b/Contents/Code/tvseries.py index ae19a9b..240972b 100644 --- a/Contents/Code/tvseries.py +++ b/Contents/Code/tvseries.py @@ -212,7 +212,7 @@ def getShowOnly(myMedia, myRow, level): for key, value in tvfields.Show_1: element = myMedia.get(value[1:]) if element is None: - element = 'N/A' + element = consts.DEFAULT element = misc.WrapStr(misc.fixCRLF(element).encode('utf8')) if key == 'MetaDB Link': myRow[key] = misc.metaDBLink(element) @@ -233,37 +233,79 @@ def getShowOnly(myMedia, myRow, level): myRow['Media ID'] directMedia = XML.ElementFromURL( directURL, timeout=float(consts.PMSTIMEOUT)) - for key, value in tvfields.Show_3: + for key, value in tvfields.Show_3: if key == 'MetaDB Link': - myRow[key] = misc.metaDBLink( - str(directMedia.xpath('//Directory/@guid'))) + try: + myRow[key] = misc.metaDBLink( + str(directMedia.xpath('//Directory/@guid'))) + except Exception, e: + myRow[key] = consts.DEFAULT + pass elif key == 'Delete Item Watched after days': - deleteDays = directMedia.xpath( - '//Directory/@autoDeletionItemPolicyWatchedLibrary') - if deleteDays == ['100']: - deleteDays = 'Next Refresh' - elif deleteDays == []: - deleteDays = 'Never' - elif deleteDays == ['0']: - deleteDays = 'Never' - elif deleteDays == ['1']: - deleteDays = '1 Day' - elif deleteDays == ['7']: - deleteDays = '7 Days' - myRow[key] = deleteDays + try: + deleteDays = directMedia.xpath( + '//Directory/@autoDeletionItemPolicyWatchedLibrary') + if deleteDays == ['100']: + deleteDays = 'Next Refresh' + elif deleteDays == []: + deleteDays = 'Never' + elif deleteDays == ['0']: + deleteDays = 'Never' + elif deleteDays == ['1']: + deleteDays = '1 Day' + elif deleteDays == ['7']: + deleteDays = '7 Days' + myRow[key] = deleteDays + except Exception, e: + myRow[key] = consts.DEFAULT + pass elif key == 'Collection': - serieInfo = directMedia.xpath('//Directory/Collection') - myCol = '' - for collection in serieInfo: + try: + serieInfo = directMedia.xpath('//Directory/Collection') + myCol = '' + for collection in serieInfo: + if myCol == '': + myCol = collection.get('tag') + else: + myCol = myCol + \ + Prefs['Seperator'] + collection.get('tag') if myCol == '': - myCol = collection.get('tag') + myCol = consts.DEFAULT + myRow[key] = myCol + except Exception, e: + myRow[key] = consts.DEFAULT + pass + elif key in [ + 'IMDB ID', 'TMDB ID', 'IMDB Link', + 'TMDB Link', 'TVDB ID', 'TVDB Link']: + try: + if key == 'IMDB Link': + myRow[key] = ''.join(( + 'https://www.imdb.com/title/', + directMedia.xpath(value)[0].split("//")[1])) + elif key == 'TMDB Link': + if mediaType == 'movie': + myRow[key] = ''.join(( + 'https://www.themoviedb.org/movie/', + directMedia.xpath(value)[0].split("//")[1])) + else: + myRow[key] = ''.join(( + 'https://www.themoviedb.org/tv/', + directMedia.xpath(value)[0].split("//")[1])) + elif key == 'TVDB Link': + myRow[key] = ''.join(( + 'https://PLEASE REPORT THIS LINK IN THE PLEX FORUMS', + directMedia.xpath(value)[0].split("//")[1])) else: - myCol = myCol + \ - Prefs['Seperator'] + collection.get('tag') - if myCol == '': - myCol = 'N/A' - myRow[key] = myCol + myRow[key] = directMedia.xpath(value)[0].split("//")[1] + except Exception, e: + myRow[key] = consts.DEFAULT + pass else: - myRow[key] = misc.GetArrayAsString( - directMedia, value, default=consts.DEFAULT) + try: + myRow[key] = misc.GetArrayAsString( + directMedia, value, default=consts.DEFAULT) + except Exception, e: + myRow[key] = consts.DEFAULT + pass return myRow From ef702d071ec177b1a6915eb2d7e9be2926896a26 Mon Sep 17 00:00:00 2001 From: UKDTOM Date: Sat, 26 Dec 2020 00:03:01 +0100 Subject: [PATCH 4/7] HouseCleaning --- Contents/Code/misc.py | 5 +++-- Contents/Code/tvseries.py | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Contents/Code/misc.py b/Contents/Code/misc.py index 4ab7960..f96475a 100644 --- a/Contents/Code/misc.py +++ b/Contents/Code/misc.py @@ -128,7 +128,8 @@ def GetRegInfo(myMedia, myField, default=''): def GetRegInfo2( - myMedia, myField, default=consts.DEFAULT, key='N/A', mediaType='movie'): + myMedia, myField, default=consts.DEFAULT, + key='N/A', mediaType='movie'): ''' Pull's a field from the xml ''' returnVal = '' global retVal @@ -168,7 +169,7 @@ def GetRegInfo2( else: if key in [ 'IMDB ID', 'TMDB ID', 'IMDB Link', - 'TMDB Link', 'TVDB ID', 'TVDB Link']: + 'TMDB Link', 'TVDB ID', 'TVDB Link']: try: if key == 'IMDB Link': returnVal = ''.join(( diff --git a/Contents/Code/tvseries.py b/Contents/Code/tvseries.py index 240972b..d5a1eea 100644 --- a/Contents/Code/tvseries.py +++ b/Contents/Code/tvseries.py @@ -233,7 +233,7 @@ def getShowOnly(myMedia, myRow, level): myRow['Media ID'] directMedia = XML.ElementFromURL( directURL, timeout=float(consts.PMSTIMEOUT)) - for key, value in tvfields.Show_3: + for key, value in tvfields.Show_3: if key == 'MetaDB Link': try: myRow[key] = misc.metaDBLink( @@ -244,7 +244,7 @@ def getShowOnly(myMedia, myRow, level): elif key == 'Delete Item Watched after days': try: deleteDays = directMedia.xpath( - '//Directory/@autoDeletionItemPolicyWatchedLibrary') + '//Directory/@autoDeletionItemPolicyWatchedLibrary') if deleteDays == ['100']: deleteDays = 'Next Refresh' elif deleteDays == []: From 0c9f7b1fae9fe4f4e312be125cc3d73db77f4d0f Mon Sep 17 00:00:00 2001 From: UKDTOM Date: Sun, 27 Dec 2020 13:26:44 +0100 Subject: [PATCH 5/7] Cleanup --- Contents/Code/tvfields.py | 14 +------------- Contents/Code/tvseries.py | 2 +- changelog.txt | 10 ++++++++++ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/Contents/Code/tvfields.py b/Contents/Code/tvfields.py index bb16d35..854d86e 100644 --- a/Contents/Code/tvfields.py +++ b/Contents/Code/tvfields.py @@ -75,19 +75,15 @@ ('Intro Start', 'Marker[@type="intro"]/@startTimeOffset'), ('Intro Stop', 'Marker[@type="intro"]/@endTimeOffset'), ('MetaDB Link', '@guid'), + ('MetaData Language', '@guid'), ('IMDB ID', '//Guid[starts-with(@id, "imdb")]/@id'), ('IMDB Link', '//Guid[starts-with(@id, "imdb")]/@id'), ('TMDB ID', '//Guid[starts-with(@id, "tmdb")]/@id'), -# ('TMDB Link', -# '//Guid[starts-with(@id, "tmdb")]/@id'), ('TVDB ID', '//Guid[starts-with(@id, "tvdb")]/@id'), -# ('TVDB Link', -# '//Guid[starts-with(@id, "tvdb")]/@id'), - ('MetaData Language', '@guid'), ('Part File Combined', 'Media/Part/@file'), ('Part File', @@ -245,16 +241,8 @@ '//Guid[starts-with(@id, "imdb")]/@id'), ('TMDB ID', '//Guid[starts-with(@id, "tmdb")]/@id'), -# ('TMDB Link', -# '//Guid[starts-with(@id, "tmdb")]/@id'), ('TVDB ID', '//Guid[starts-with(@id, "tvdb")]/@id'), -# ('TVDB Link', -# '//Guid[starts-with(@id, "tvdb")]/@id'), - - - - ('Labels', '//Label/@tag'), ('Collection', ''), ('Delete Item Watched after days', '@autoDeletionItemPolicyWatchedLibrary') diff --git a/Contents/Code/tvseries.py b/Contents/Code/tvseries.py index d5a1eea..c281ca8 100644 --- a/Contents/Code/tvseries.py +++ b/Contents/Code/tvseries.py @@ -294,7 +294,7 @@ def getShowOnly(myMedia, myRow, level): directMedia.xpath(value)[0].split("//")[1])) elif key == 'TVDB Link': myRow[key] = ''.join(( - 'https://PLEASE REPORT THIS LINK IN THE PLEX FORUMS', + 'This should not show up', directMedia.xpath(value)[0].split("//")[1])) else: myRow[key] = directMedia.xpath(value)[0].split("//")[1] diff --git a/changelog.txt b/changelog.txt index 07d3679..51e1f9c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,16 @@ V2.0.0.14: - New: - #151 Handle new Guid for shows with the new TV Agent + * Added fields to episodes level 4 as: + * IMDB ID + * IMDB Link + * TMDB ID + * TVDB ID + * Added fields to Show_Only level 3 as: + * IMDB ID + * IMDB Link + * TMDB ID + * TVDB ID V2.0.0.13: - New: From e84e12708e68fa53832e62b23c739b9b6c14a669 Mon Sep 17 00:00:00 2001 From: UKDTOM Date: Sun, 27 Dec 2020 21:49:53 +0100 Subject: [PATCH 6/7] #144 Fixed --- Contents/Code/output.py | 4 ++-- changelog.txt | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Contents/Code/output.py b/Contents/Code/output.py index 0d7d181..bf9bff9 100644 --- a/Contents/Code/output.py +++ b/Contents/Code/output.py @@ -242,9 +242,9 @@ def createHeader(outFile, sectionType, playListType='', level=None): # Do we have an csv output here? if extension == '.csv': try: - targetfile = io.open(outFile, 'wb') + targetfile = io.open(outFile, 'w', encoding='utf8') except Exception, e: - targetfile = io.open(outFile, 'wb', encoding='utf8') + targetfile = io.open(outFile, 'w') # Create output file, and print the header writer = csv.DictWriter( targetfile, diff --git a/changelog.txt b/changelog.txt index 51e1f9c..f16b44a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -11,6 +11,8 @@ V2.0.0.14: * IMDB Link * TMDB ID * TVDB ID + - Fix: + - #144 binary mode doesn't take an encoding argument V2.0.0.13: - New: From 98c5b7470729fbb04cdd80364f3e11b9b6c481f9 Mon Sep 17 00:00:00 2001 From: UKDTOM Date: Sun, 27 Dec 2020 22:22:28 +0100 Subject: [PATCH 7/7] #147 fixed --- Contents/Code/misc.py | 2 +- changelog.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Contents/Code/misc.py b/Contents/Code/misc.py index f96475a..d55256b 100644 --- a/Contents/Code/misc.py +++ b/Contents/Code/misc.py @@ -299,7 +299,7 @@ def getItemInfo(et, myRow, fieldList, mediaType='movie'): key = str(item[0]) value = str(item[1]) # Special deal for Sort Title - if key == 'Sort title': + if key in ['Sort title', 'Episode Sort Title']: if Prefs['Sort_title']: if consts.DEFAULT == GetRegInfo2( et, diff --git a/changelog.txt b/changelog.txt index f16b44a..4bf6579 100644 --- a/changelog.txt +++ b/changelog.txt @@ -13,6 +13,7 @@ V2.0.0.14: * TVDB ID - Fix: - #144 binary mode doesn't take an encoding argument + - #147 Default Sort Title to Title, if empty V2.0.0.13: - New: