diff --git a/CHANGES.md b/CHANGES.md index 5d93232d..8f649ca6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,10 @@ -### 3.27.9 (2023-02-27 01:10:00 UTC) +### 3.27.10 (2023-03-05 00:20:00 UTC) + +* Add UHD Bluray +* Change an error text for Cheetah module availability + + +### 3.27.9 (2023-02-27 01:10:00 UTC) * Fix remove incorrectly displayed NZBGet tip diff --git a/gui/slick/interfaces/default/inc_qualityChooser.tmpl b/gui/slick/interfaces/default/inc_qualityChooser.tmpl index 8d805a1b..cb42dc29 100644 --- a/gui/slick/interfaces/default/inc_qualityChooser.tmpl +++ b/gui/slick/interfaces/default/inc_qualityChooser.tmpl @@ -40,13 +40,12 @@ #for $cur_quality in sorted($any_quality_list): ##set $has_unknown |= ($Quality.UNKNOWN == $cur_quality and $cur_quality in $any_qualities) $Quality.get_quality_ui($cur_quality) - #if $Quality.UHD4KWEB == $cur_quality - + #if $Quality.UHD4KBLURAY == $cur_quality $Quality.get_quality_ui($Quality.UNKNOWN) #end if - #if $cur_quality in [$Quality.SDDVD, $Quality.FULLHDTV, $Quality.FULLHDBLURAY, $Quality.UHD4KWEB] + #if $cur_quality in [$Quality.SDDVD, $Quality.FULLHDTV, $Quality.FULLHDBLURAY, $Quality.UHD4KBLURAY]
#end if #end for diff --git a/sickgear.py b/sickgear.py index d8caf88f..535f95e5 100755 --- a/sickgear.py +++ b/sickgear.py @@ -70,7 +70,7 @@ except (BaseException, Exception): try: import Cheetah except (BaseException, Exception): - print('The Python module Cheetah is required') + print('The Python module CT3 (Cheetah) is required') if is_win: print('(1) However, this first run may have just installed it, so try to simply rerun sickgear.py again') print('(2) If this output is a rerun of (1) then open a command line prompt and manually install using...') diff --git a/sickgear/common.py b/sickgear/common.py index ac7c6b45..a0e5a382 100644 --- a/sickgear/common.py +++ b/sickgear/common.py @@ -94,7 +94,7 @@ class Quality(object): FULLHDBLURAY = 1 << 8 # 256 # UHD4KTV = 1 << 9 # reserved for the future UHD4KWEB = 1 << 10 - # UHD4KBLURAY = 1 << 11 # reserved for the future + UHD4KBLURAY = 1 << 11 # put these bits at the other end of the spectrum, far enough out that they shouldn't interfere UNKNOWN = 1 << 15 # 32768 @@ -110,7 +110,8 @@ class Quality(object): FULLHDWEBDL: '1080p WEB-DL', HDBLURAY: '720p BluRay', FULLHDBLURAY: '1080p BluRay', - UHD4KWEB: '2160p UHD 4K WEB'} + UHD4KWEB: '2160p UHD 4K WEB', + UHD4KBLURAY: '2160p UHD BluRay'} statusPrefixes = {DOWNLOADED: 'Downloaded', SNATCHED: 'Snatched', @@ -345,8 +346,11 @@ class Quality(object): return Quality.FULLHDWEBDL if name_has([fmt]): return Quality.FULLHDTV - if name_has(['2160p', webfmt]): - return Quality.UHD4KWEB + if name_has(['2160p']): + if name_has(['bluray']): + return Quality.UHD4KBLURAY + if name_has([webfmt]): + return Quality.UHD4KWEB return Quality.UNKNOWN @@ -579,7 +583,7 @@ HD = Quality.combineQualities( []) # HD720p + HD1080p HD720p = Quality.combineQualities([Quality.HDTV, Quality.HDWEBDL, Quality.HDBLURAY], []) HD1080p = Quality.combineQualities([Quality.FULLHDTV, Quality.FULLHDWEBDL, Quality.FULLHDBLURAY], []) -UHD2160p = Quality.combineQualities([Quality.UHD4KWEB], []) +UHD2160p = Quality.combineQualities([Quality.UHD4KWEB, Quality.UHD4KBLURAY], []) ANY = Quality.combineQualities( [Quality.SDTV, Quality.SDDVD, Quality.HDTV, Quality.FULLHDTV, Quality.HDWEBDL, Quality.FULLHDWEBDL, Quality.HDBLURAY, Quality.FULLHDBLURAY, Quality.UNKNOWN], []) # SD + HD diff --git a/tests/common_tests.py b/tests/common_tests.py index 5c5ad53a..2f77839b 100644 --- a/tests/common_tests.py +++ b/tests/common_tests.py @@ -127,6 +127,15 @@ quality_tests = { 'Test.Show.S01E02.2160p.WEBRip.x264-GROUP', 'Test.Show.S01E02.2160p.WEBRip.x265-GROUP', 'Test.Show.S01E02.2160p.WEBRip.vp9-GROUP'], + common.Quality.UHD4KBLURAY: [ + 'Test.Show.S01E02.2160p.BluRay.h264-GROUP', + 'Test.Show.S01E02.2160p.BluRay.x264-GROUP', + 'Test.Show.S01E02.2160p.BluRay.x265-GROUP', + 'Test.Show.S01E02.2160p.BluRay.vp9-GROUP', + 'Test.Show.S01E02.2160p.UHD.BluRay.h264-GROUP', + 'Test.Show.S01E02.2160p.UHD.BluRay.x264-GROUP', + 'Test.Show.S01E02.2160p.UHD.BluRay.x265-GROUP', + 'Test.Show.S01E02.2160p.UHD.BluRay.vp9-GROUP'], common.Quality.UNKNOWN: ['Test.Show.S01E02-SiCKGEAR'] } @@ -154,7 +163,7 @@ class QualityTests(unittest.TestCase): for w, v in iteritems(wd): if w == sq: for u, o in sorted(iteritems(v)): - self.assertEqual(o, result.get(u)) + self.assertEqual(o, result.get(u), msg='%s' % show_quality) def check_wantedquality_get_wantedlist(self, cases): for show_quality, result in cases: @@ -260,6 +269,9 @@ class QualityTests(unittest.TestCase): Quality.UHD4KWEB: { WantedQualities.wantedlist: [], WantedQualities.bothlists: False, WantedQualities.upgradelist: False}, + Quality.UHD4KBLURAY: { + WantedQualities.wantedlist: [], + WantedQualities.bothlists: False, WantedQualities.upgradelist: False}, Quality.UNKNOWN: { WantedQualities.wantedlist: [], WantedQualities.bothlists: False, WantedQualities.upgradelist: False @@ -300,6 +312,9 @@ class QualityTests(unittest.TestCase): Quality.UHD4KWEB: { WantedQualities.wantedlist: [], WantedQualities.bothlists: False, WantedQualities.upgradelist: False}, + Quality.UHD4KBLURAY: { + WantedQualities.wantedlist: [], + WantedQualities.bothlists: False, WantedQualities.upgradelist: False}, Quality.UNKNOWN: { WantedQualities.wantedlist: [], WantedQualities.bothlists: False, WantedQualities.upgradelist: False @@ -341,6 +356,9 @@ class QualityTests(unittest.TestCase): Quality.UHD4KWEB: { WantedQualities.wantedlist: [], WantedQualities.bothlists: False, WantedQualities.upgradelist: False}, + Quality.UHD4KBLURAY: { + WantedQualities.wantedlist: [], + WantedQualities.bothlists: False, WantedQualities.upgradelist: False}, Quality.UNKNOWN: { WantedQualities.wantedlist: [], WantedQualities.bothlists: False, WantedQualities.upgradelist: False @@ -3090,7 +3108,7 @@ class QualityTests(unittest.TestCase): (('The Show (15 Jan 2019) [text] 720HD mp4', False), common.Quality.HDTV), (('The.Show.s03e11.ep.name.1080p.web.dl.hevc.x265.Group', False), common.Quality.FULLHDWEBDL), (('The.Show.S03E05.1080p.NF.WEB-DL.DD5.1.HDR.HEVC-Group', False), common.Quality.FULLHDWEBDL), - (('The.Show.S01E10.Name.2160p.UHD.BluRay.REMUX.HDR.HEVC.DTS-HD.MA.5.1', False), common.Quality.UNKNOWN), + (('The.Show.S01E10.Name.2160p.UHD.BluRay.REMUX.HDR.HEVC.DTS-HD.MA.5.1', False), common.Quality.UHD4KBLURAY), (('Show.S01E07.2160p.4K.UHD.10bit.NF.WEBRip.5.1.x265.HEVC-Group', False), common.Quality.UHD4KWEB), ]) for q, l in iteritems(quality_tests):