diff --git a/addon.xml b/addon.xml index 12d8baf8..5c6e8798 100644 --- a/addon.xml +++ b/addon.xml @@ -1,7 +1,7 @@ @@ -11,7 +11,10 @@ library="python/scraper.py"/> true - v2.0.0 (2023-01-01) + v2.0.1 (2023-01-28) +- support for include_adult query parameter + +v2.0.0 (2023-01-01) - version 2 for Kodi 19 Matrix and above - TMDB search second page if no best match on first page diff --git a/changelog.txt b/changelog.txt index a724f73d..990f1c02 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,6 @@ +v2.0.1 (2023-01-28) +- support for include_adult query parameter + v2.0.0 (2023-01-01) - version 2 for Kodi 19 Matrix and above - TMDB search second page if no best match on first page diff --git a/python/lib/tmdbscraper/tmdb.py b/python/lib/tmdbscraper/tmdb.py index f33e59ff..3b4e562b 100644 --- a/python/lib/tmdbscraper/tmdb.py +++ b/python/lib/tmdbscraper/tmdb.py @@ -2,7 +2,7 @@ from . import tmdbapi class TMDBMovieScraper(object): - def __init__(self, url_settings, language, certification_country, search_language=""): + def __init__(self, url_settings, language, certification_country, search_language="", include_adult=False): self.url_settings = url_settings self.language = language self.certification_country = certification_country @@ -11,6 +11,7 @@ def __init__(self, url_settings, language, certification_country, search_languag else: self.search_language = search_language self._urls = None + self.include_adult = include_adult @property def urls(self): @@ -19,11 +20,11 @@ def urls(self): return self._urls def search(self, title, year=None): - + def is_best(item): return item['title'].lower() == title and ( not year or item.get('release_date', '').startswith(year)) - + search_media_id = _parse_media_id(title) if search_media_id: if search_media_id['type'] == 'tmdb': @@ -37,7 +38,7 @@ def is_best(item): return result result = result.get('movie_results') else: - response = tmdbapi.search_movie(query=title, year=year, language=self.search_language) + response = tmdbapi.search_movie(query=title, year=year, language=self.search_language, include_adult=self.include_adult) if 'error' in response: return response result = response['results'] @@ -45,7 +46,7 @@ def is_best(item): if response['total_pages'] > 1: bests = [item for item in result if is_best(item) and item.get('popularity',0) > 5] if not bests: - response = tmdbapi.search_movie(query=title, year=year, language=self.language, page=2) + response = tmdbapi.search_movie(query=title, year=year, language=self.language, page=2, include_adult=self.include_adult) if not 'error' in response: result += response['results'] urls = self.urls @@ -170,7 +171,7 @@ def _parse_artwork(movie, collection, urlbases, language): landscape = [] logos = [] fanart = [] - + if 'images' in movie: posters = _get_images_with_fallback(movie['images']['posters'], urlbases, language) landscape = _get_images(movie['images']['backdrops'], urlbases, language) diff --git a/python/lib/tmdbscraper/tmdbapi.py b/python/lib/tmdbscraper/tmdbapi.py index 1a43e58b..c59f74c8 100644 --- a/python/lib/tmdbscraper/tmdbapi.py +++ b/python/lib/tmdbscraper/tmdbapi.py @@ -42,7 +42,7 @@ CONFIG_URL = BASE_URL.format('configuration') -def search_movie(query, year=None, language=None, page=None): +def search_movie(query, year=None, language=None, page=None, include_adult=False): # type: (Text) -> List[InfoType] """ Search for a movie @@ -57,6 +57,7 @@ def search_movie(query, year=None, language=None, page=None): theurl = SEARCH_URL params = _set_params(None, language) params['query'] = query + params['include_adult'] = 'true' if include_adult else 'false' if page is not None: params['page'] = page if year is not None: diff --git a/python/scraper.py b/python/scraper.py index 17464db2..258a6c59 100644 --- a/python/scraper.py +++ b/python/scraper.py @@ -24,7 +24,8 @@ def get_tmdb_scraper(settings): language = settings.getSettingString('language') certcountry = settings.getSettingString('tmdbcertcountry') search_language = settings.getSettingString('searchlanguage') - return TMDBMovieScraper(ADDON_SETTINGS, language, certcountry, search_language) + include_adult = settings.getSettingBool('include_adult') + return TMDBMovieScraper(ADDON_SETTINGS, language, certcountry, search_language, include_adult) def search_for_movie(title, year, handle, settings): log("Find movie with title '{title}' from year '{year}'".format(title=title, year=year), xbmc.LOGINFO) diff --git a/resources/language/resource.language.en_au/strings.po b/resources/language/resource.language.en_au/strings.po index 0e7db9b4..bc09ebff 100644 --- a/resources/language/resource.language.en_au/strings.po +++ b/resources/language/resource.language.en_au/strings.po @@ -96,6 +96,10 @@ msgctxt "#30103" msgid "Prioritize Fanart.TV artworks over preferred language" msgstr "" +msgctxt "#30104" +msgid "Include adult content" +msgstr "Include adult content" + msgctxt "#30999" msgid "Fanart.tv" msgstr "Fanart.tv" diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index be29af8f..a8cb22b9 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -96,6 +96,10 @@ msgctxt "#30103" msgid "Prioritize Fanart.TV artworks over preferred language" msgstr "" +msgctxt "#30104" +msgid "Include adult content" +msgstr "Include adult content" + msgctxt "#30999" msgid "Fanart.tv" msgstr "Fanart.tv" diff --git a/resources/language/resource.language.en_nz/strings.po b/resources/language/resource.language.en_nz/strings.po index 1306f044..08ab2fa7 100644 --- a/resources/language/resource.language.en_nz/strings.po +++ b/resources/language/resource.language.en_nz/strings.po @@ -97,6 +97,10 @@ msgctxt "#30103" msgid "Prioritize Fanart.TV artworks over preferred language" msgstr "" +msgctxt "#30104" +msgid "Include adult content" +msgstr "Include adult content" + msgctxt "#30999" msgid "Fanart.tv" msgstr "Fanart.tv" diff --git a/resources/language/resource.language.en_us/strings.po b/resources/language/resource.language.en_us/strings.po index 8f700658..2f62071c 100644 --- a/resources/language/resource.language.en_us/strings.po +++ b/resources/language/resource.language.en_us/strings.po @@ -97,6 +97,10 @@ msgctxt "#30103" msgid "Prioritize Fanart.TV artworks over preferred language" msgstr "" +msgctxt "#30104" +msgid "Include adult content" +msgstr "Include adult content" + msgctxt "#30999" msgid "Fanart.tv" msgstr "Fanart.tv" diff --git a/resources/language/resource.language.nl_nl/strings.po b/resources/language/resource.language.nl_nl/strings.po index e0a1bc87..255c97c5 100644 --- a/resources/language/resource.language.nl_nl/strings.po +++ b/resources/language/resource.language.nl_nl/strings.po @@ -97,6 +97,10 @@ msgctxt "#30103" msgid "Prioritize Fanart.TV artworks over preferred language" msgstr "Geef prioriteit aan Fanart.TV kunstwerken boven voorkeurstaal" +msgctxt "#30104" +msgid "Include adult content" +msgstr "Include adult content" + msgctxt "#30999" msgid "Fanart.tv" msgstr "Fanart.tv" diff --git a/resources/settings.xml b/resources/settings.xml index fb0ec229..b05f4b7f 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -256,6 +256,11 @@ true + + 0 + false + + 4 0