diff --git a/python/lib/tmdbscraper/tmdb.py b/python/lib/tmdbscraper/tmdb.py index bb7893e..ab31212 100644 --- a/python/lib/tmdbscraper/tmdb.py +++ b/python/lib/tmdbscraper/tmdb.py @@ -190,23 +190,28 @@ def _parse_artwork(movie, collection, urlbases, language): landscape = [] logos = [] fanart = [] + keyart = [] if 'images' in movie: posters = _build_image_list_with_fallback(movie['images']['posters'], urlbases, language) landscape = _build_image_list_with_fallback(movie['images']['backdrops'], urlbases, language) logos = _build_image_list_with_fallback(movie['images']['logos'], urlbases, language) - fanart = _build_fanart_list(movie['images']['backdrops'], urlbases) + fanart = _build_list_without_titles(movie['images']['backdrops'], urlbases) + keyart = _build_list_without_titles(movie['images']['posters'], urlbases) setposters = [] setlandscape = [] setfanart = [] + setkeyart = [] if collection and 'images' in collection: setposters = _build_image_list_with_fallback(collection['images']['posters'], urlbases, language) setlandscape = _build_image_list_with_fallback(collection['images']['backdrops'], urlbases, language) - setfanart = _build_fanart_list(collection['images']['backdrops'], urlbases) + setfanart = _build_list_without_titles(collection['images']['backdrops'], urlbases) + setkeyart = _build_list_without_titles(collection['images']['posters'], urlbases) return {'poster': posters, 'landscape': landscape, 'fanart': fanart, - 'set.poster': setposters, 'set.landscape': setlandscape, 'set.fanart': setfanart, 'clearlogo': logos} + 'set.poster': setposters, 'set.landscape': setlandscape, 'set.fanart': setfanart, + 'clearlogo': logos, 'keyart': keyart, 'set.keyart': setkeyart} def _build_image_list_with_fallback(imagelist, urlbases, language, language_fallback='en'): images = _build_image_list(imagelist, urlbases, [language]) @@ -221,7 +226,7 @@ def _build_image_list_with_fallback(imagelist, urlbases, language, language_fall return images -def _build_fanart_list(imagelist, urlbases): +def _build_list_without_titles(imagelist, urlbases): return _build_image_list(imagelist, urlbases, ['xx', None]) def _build_image_list(imagelist, urlbases, languages=[]): diff --git a/python/scraper_config.py b/python/scraper_config.py index 43db848..2fe39a5 100644 --- a/python/scraper_config.py +++ b/python/scraper_config.py @@ -12,7 +12,8 @@ def configure_tmdb_artwork(details, settings): return details art = details['available_art'] - if not settings.getSettingBool('fetch_posters'): + posters_enabled = settings.getSettingBool('fetch_posters') + if not posters_enabled: if 'poster' in art: del art['poster'] if 'set.poster' in art: @@ -32,6 +33,15 @@ def configure_tmdb_artwork(details, settings): if fanart_enabled: art['set.fanart'] = art.get('set.fanart', []) + art['set.landscape'] del art['set.landscape'] + if not settings.getSettingBool('keyart'): + if 'keyart' in art: + if posters_enabled: + art['poster'] = art.get('poster', []) + art['keyart'] + del art['keyart'] + if 'set.keyart' in art: + if posters_enabled: + art['set.poster'] = art.get('set.poster', []) + art['set.keyart'] + del art['set.keyart'] return details diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index 729530a..a260f54 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -96,6 +96,10 @@ msgctxt "#30017" msgid "Tag whitelist" msgstr "" +msgctxt "#30018" +msgid "Separate TMDb posters without title to keyart" +msgstr "" + msgctxt "#30100" msgid "Language for Fanart.tv artwork" msgstr "" diff --git a/resources/language/resource.language.en_us/strings.po b/resources/language/resource.language.en_us/strings.po index 3907955..f0d8179 100644 --- a/resources/language/resource.language.en_us/strings.po +++ b/resources/language/resource.language.en_us/strings.po @@ -97,6 +97,10 @@ msgctxt "#30017" msgid "Tag whitelist" msgstr "" +msgctxt "#30018" +msgid "Separate TMDb posters without title to keyart" +msgstr "" + msgctxt "#30100" msgid "Language for Fanart.tv artwork" msgstr "" diff --git a/resources/settings.xml b/resources/settings.xml index 331a79f..dd2f09e 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -153,6 +153,11 @@ true + + 0 + true + + 0 true diff --git a/test/unittests/test_tmdb_buildimagelist.py b/test/unittests/test_tmdb_buildimagelist.py index 42c5c4b..c9b31e7 100644 --- a/test/unittests/test_tmdb_buildimagelist.py +++ b/test/unittests/test_tmdb_buildimagelist.py @@ -1,5 +1,5 @@ import unittest -from python.lib.tmdbscraper.tmdb import _build_fanart_list, _build_image_list +from python.lib.tmdbscraper.tmdb import _build_list_without_titles, _build_image_list class TestBuildImageList(unittest.TestCase): def setUp(self): @@ -26,20 +26,20 @@ def test_build_image_list_with_language_filter(self): self.assertEqual(len(result), 1) - def test_build_fanart_list_from_language_none(self): + def test_build_titlefree_list_from_language_none(self): imagelist = [ {'file_path': '/img1.jpg', 'iso_639_1': None}, {'file_path': '/img3.jpg', 'iso_639_1': 'en'} ] - result = _build_fanart_list(imagelist, self.urlbases) + result = _build_list_without_titles(imagelist, self.urlbases) self.assertEqual(len(result), 1) - def test_build_fanart_list_from_language_xx(self): + def test_build_titlefree_list_from_language_xx(self): imagelist = [ {'file_path': '/img1.jpg', 'iso_639_1': 'xx'}, {'file_path': '/img3.jpg', 'iso_639_1': 'en'} ] - result = _build_fanart_list(imagelist, self.urlbases) + result = _build_list_without_titles(imagelist, self.urlbases) self.assertEqual(len(result), 1)