Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions addon.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="metadata.themoviedb.org.python"
name="The Movie Database Python"
version="2.0.0"
version="2.0.1"
provider-name="Team Kodi">
<requires>
<import addon="xbmc.metadata" version="2.1.0"/>
Expand All @@ -11,7 +11,10 @@
library="python/scraper.py"/>
<extension point="xbmc.addon.metadata">
<reuselanguageinvoker>true</reuselanguageinvoker>
<news>v2.0.0 (2023-01-01)
<news>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

Expand Down
3 changes: 3 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -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
Expand Down
13 changes: 7 additions & 6 deletions python/lib/tmdbscraper/tmdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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):
Expand All @@ -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':
Expand All @@ -37,15 +38,15 @@ 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']
# get second page if available and if first page doesn't contain an `is_best` result with popularity > 5
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
Expand Down Expand Up @@ -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)
Expand Down
3 changes: 2 additions & 1 deletion python/lib/tmdbscraper/tmdbapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand Down
3 changes: 2 additions & 1 deletion python/scraper.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 4 additions & 0 deletions resources/language/resource.language.en_au/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -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"
4 changes: 4 additions & 0 deletions resources/language/resource.language.en_gb/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -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"
4 changes: 4 additions & 0 deletions resources/language/resource.language.en_nz/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -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"
4 changes: 4 additions & 0 deletions resources/language/resource.language.en_us/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -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"
4 changes: 4 additions & 0 deletions resources/language/resource.language.nl_nl/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
5 changes: 5 additions & 0 deletions resources/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,11 @@
<default>true</default>
<control type="toggle"/>
</setting>
<setting id="include_adult" type="boolean" label="30104" help="">
<level>0</level>
<default>false</default>
<control type="toggle"/>
</setting>
<setting id="lastUpdated" type="string" help="">
<level>4</level>
<default>0</default>
Expand Down