migliorie tmdb

This commit is contained in:
Alhaziel01
2021-05-13 12:24:06 +02:00
parent 4e980e426c
commit 5e3fd956b9
5 changed files with 36 additions and 36 deletions
+1 -1
View File
@@ -536,7 +536,7 @@ def scrape(func):
if function == 'episodios': autorenumber.start(itemlist, item) if function == 'episodios': autorenumber.start(itemlist, item)
else: autorenumber.start(itemlist) else: autorenumber.start(itemlist)
if action != 'play' and 'patronMenu' not in args and not disabletmdb and inspect.stack()[1][3] not in ['add_tvshow'] or (function in ['episodios'] and config.get_setting('episode_info')): # and function != 'episodios' and item.contentType in ['movie', 'tvshow', 'episode', 'undefined'] if action != 'play' and 'patronMenu' not in args and not disabletmdb and inspect.stack()[1][3] not in ['add_tvshow'] and function != 'episodios' or (function in ['episodios'] and config.get_setting('episode_info')): # and function != 'episodios' and item.contentType in ['movie', 'tvshow', 'episode', 'undefined']
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
if not group and not args.get('groupExplode') and ((pagination and len(matches) <= pag * pagination) or not pagination): # next page with pagination if not group and not args.get('groupExplode') and ((pagination and len(matches) <= pag * pagination) or not pagination): # next page with pagination
+31 -31
View File
@@ -17,7 +17,7 @@ from future.builtins import object
import ast, copy, re, time import ast, copy, re, time
from core import filetools, httptools, jsontools, scrapertools, support from core import filetools, httptools, jsontools, scrapertools
from core.item import InfoLabels from core.item import InfoLabels
from platformcode import config, logger, platformtools from platformcode import config, logger, platformtools
import threading import threading
@@ -246,6 +246,7 @@ def set_infoLabels_item(item, seekTmdb=True, search_language=def_lang):
global otmdb_global global otmdb_global
def read_data(otmdb_aux): def read_data(otmdb_aux):
# item.infoLabels = otmdb_aux.get_infoLabels(item.infoLabels)
infoLabels = otmdb_aux.get_infoLabels(item.infoLabels) infoLabels = otmdb_aux.get_infoLabels(item.infoLabels)
if not infoLabels['plot']: infoLabels['plot'] = otmdb_aux.get_plot('en') if not infoLabels['plot']: infoLabels['plot'] = otmdb_aux.get_plot('en')
item.infoLabels = infoLabels item.infoLabels = infoLabels
@@ -404,7 +405,7 @@ def set_infoLabels_item(item, seekTmdb=True, search_language=def_lang):
# carry out another search to expand the information # carry out another search to expand the information
otmdb = Tmdb(id_Tmdb=otmdb.result.get("id"), search_type=search_type, otmdb = Tmdb(id_Tmdb=otmdb.result.get("id"), search_type=search_type,
search_language=search_language) search_language=search_language)
if otmdb: if otmdb and config.get_setting('tmdb_plus_info'):
info = otmdb.get_infoLabels(item.infoLabels) info = otmdb.get_infoLabels(item.infoLabels)
otmdb = Tmdb(id_Tmdb=info['tmdb_id'], search_type=search_type, otmdb = Tmdb(id_Tmdb=info['tmdb_id'], search_type=search_type,
search_language=search_language) search_language=search_language)
@@ -837,7 +838,7 @@ class Tmdb(object):
self.search_text = re.sub('\[\\\?(B|I|COLOR)\s?[^\]]*\]', '', self.searched_text).strip() self.search_text = re.sub('\[\\\?(B|I|COLOR)\s?[^\]]*\]', '', self.searched_text).strip()
self.search_type = kwargs.get('search_type', '') self.search_type = kwargs.get('search_type', '')
self.search_language = kwargs.get('search_language', def_lang) self.search_language = kwargs.get('search_language', def_lang)
self.fallback_language = kwargs.get('search_language', 'en') self.fallback_language = 'en'
# self.search_include_adult = kwargs.get('include_adult', False) # self.search_include_adult = kwargs.get('include_adult', False)
self.search_year = kwargs.get('year', '') self.search_year = kwargs.get('year', '')
self.search_filter = kwargs.get('filtro', {}) self.search_filter = kwargs.get('filtro', {})
@@ -937,7 +938,7 @@ class Tmdb(object):
if self.search_id: if self.search_id:
if source == "tmdb": if source == "tmdb":
url = ('{}/{}/{}?api_key={}&language={}&append_to_response=images,videos,external_ids,credits&include_image_language={},en,null'.format(host, self.search_type, self.search_id, api, self.search_language, self.search_language)) url = ('{}/{}/{}?api_key={}&language={}&append_to_response=images,videos,external_ids,credits&include_image_language={},en,null'.format(host, self.search_type, self.search_id, api, self.search_language, self.search_language))
searching = "id_Tmdb: " + self.search_id searching = "id_Tmdb: {}".format(self.search_id)
else: else:
url = ('{}/find/{}?external_source={}&api_key={}8&language={}'.format(host, self.search_id, source, api, self.search_language)) url = ('{}/find/{}?external_source={}&api_key={}8&language={}'.format(host, self.search_id, source, api, self.search_language))
searching = "{}: {}".format(source.capitalize(), self.search_id) searching = "{}: {}".format(source.capitalize(), self.search_id)
@@ -957,6 +958,13 @@ class Tmdb(object):
else: else:
result = result['tv_episode_results'][0] result = result['tv_episode_results'][0]
Mpaaurl = '{}/{}/{}/{}?api_key={}'.format(host, self.search_type, result['id'], 'release_dates' if self.search_type == 'movie' else 'content_ratings', api)
Mpaas = self.get_json(Mpaaurl).get('results',[])
for m in Mpaas:
if m.get('iso_3166_1','').lower() == 'us':
result['mpaa'] = m.get('rating', m.get('release_dates', [{}])[0].get('certification'))
break
self.results = [result] self.results = [result]
self.total_results = 1 self.total_results = 1
self.total_pages = 1 self.total_pages = 1
@@ -1333,19 +1341,14 @@ class Tmdb(object):
# http://api.themoviedb.org/3/tv/1407/season/1?api_key=a1ab8b8669da03637a4b98fa39c39228&language=es& # http://api.themoviedb.org/3/tv/1407/season/1?api_key=a1ab8b8669da03637a4b98fa39c39228&language=es&
# append_to_response=credits # append_to_response=credits
url = "{}/tv/{}/season/{}?api_key={}&language={}&append_to_response=videos,images,credits,external_ids&include_image_language={},en,null".format(host, self.result["id"], seasonNumber, api, search_language, search_language) url = "{}/tv/{}/season/{}?api_key={}&language={}&append_to_response=videos,images,credits,external_ids&include_image_language={},en,null".format(host, self.result["id"], seasonNumber, api, search_language, search_language)
fallbackUrl = "{}/tv/{}/season/{}?api_key={}&language=en&append_to_response=videos,images,credits&include_image_language={},en,null".format(host, self.result["id"], seasonNumber, api, search_language) # fallbackUrl = "{}/tv/{}/season/{}?api_key={}&language=en&append_to_response=videos,images,credits&include_image_language={},en,null".format(host, self.result["id"], seasonNumber, api, search_language)
logger.debug('TMDB URL', url) logger.debug('TMDB URL', url)
searching = "id_Tmdb: " + str(self.result["id"]) + " season: " + str(seasonNumber) + "\nURL: " + url searching = "id_Tmdb: " + str(self.result["id"]) + " season: " + str(seasonNumber) + "\nURL: " + url
logger.debug("[Tmdb.py] Searching " + searching) logger.debug("[Tmdb.py] Searching " + searching)
# from core.support import dbg;dbg() # from core.support import dbg;dbg()
try: try:
info = self.get_json(url) self.season[seasonNumber] = self.get_json(url)
if not language:
fallbackInfo = self.get_json(fallbackUrl)
self.season[seasonNumber] = parse_fallback_info(info, fallbackInfo)
else:
self.season[seasonNumber] = self.get_json(url)
if not isinstance(self.season[seasonNumber], dict): if not isinstance(self.season[seasonNumber], dict):
self.season[seasonNumber] = ast.literal_eval(self.season[seasonNumber].decode('utf-8')) self.season[seasonNumber] = ast.literal_eval(self.season[seasonNumber].decode('utf-8'))
@@ -1372,16 +1375,19 @@ class Tmdb(object):
_id = collection.get('id') _id = collection.get('id')
if _id: if _id:
url = '{}/collection/{}?api_key={}&language={}&append_to_response=images'.format(host, _id, api, self.search_language) url = '{}/collection/{}?api_key={}&language={}&append_to_response=images'.format(host, _id, api, self.search_language)
fallbackUrl = '{}/collection/{}?api_key={}&language=en&append_to_response=images'.format(host, _id, api) tanslationurl = '{}/collection/{}/translations?api_key={}'.format(host, _id, api)
info = self.get_json(url) info = self.get_json(url)
fallbackInfo = self.get_json(fallbackUrl) for t in self.get_json(tanslationurl).get('translations'):
ret['set'] = info.get('name') if info.get('name') else fallbackInfo.get('name') if t.get('iso_639_1') == self.fallback_language:
ret['setoverview'] = info.get('overview') if info.get('overview') else fallbackInfo.get('overview') translation = t.get('data',{})
posters = ['https://image.tmdb.org/t/p/original' + (info.get('poster_path') if info.get('poster_path') else fallbackInfo.get('poster_path'))] break
fanarts = ['https://image.tmdb.org/t/p/original' + (info.get('backdrop_path') if info.get('backdrop_path') else fallbackInfo.get('backdrop_path'))] ret['set'] = info.get('name') if info.get('name') else translation.get('name')
for image in info['images']['posters'] + fallbackInfo['images']['posters']: ret['setoverview'] = info.get('overview') if info.get('overview') else translation.get('overview')
posters = ['https://image.tmdb.org/t/p/original' + info.get('poster_path')] if info.get('poster_path') else []
fanarts = ['https://image.tmdb.org/t/p/original' + info.get('backdrop_path')] if info.get('backdrop_path') else []
for image in info['images']['posters']:
posters.append('https://image.tmdb.org/t/p/original' + image['file_path']) posters.append('https://image.tmdb.org/t/p/original' + image['file_path'])
for image in info['images']['backdrops'] + fallbackInfo['images']['backdrops']: for image in info['images']['backdrops']:
fanarts.append('https://image.tmdb.org/t/p/original' + image['file_path']) fanarts.append('https://image.tmdb.org/t/p/original' + image['file_path'])
ret['setposters'] = posters ret['setposters'] = posters
ret['setfanarts'] = fanarts ret['setfanarts'] = fanarts
@@ -1633,11 +1639,11 @@ class Tmdb(object):
elif k == 'release_date': elif k == 'release_date':
ret_infoLabels['year'] = int(v[:4]) ret_infoLabels['year'] = int(v[:4])
ret_infoLabels['premiered'] = v.split("-")[2] + "/" + v.split("-")[1] + "/" + v.split("-")[0] ret_infoLabels['premiered'] = v
elif k == 'first_air_date': elif k == 'first_air_date':
ret_infoLabels['year'] = int(v[:4]) ret_infoLabels['year'] = int(v[:4])
ret_infoLabels['aired'] = v.split("-")[2] + "/" + v.split("-")[1] + "/" + v.split("-")[0] ret_infoLabels['aired'] = v
ret_infoLabels['premiered'] = ret_infoLabels['aired'] ret_infoLabels['premiered'] = ret_infoLabels['aired']
elif k == 'original_title' or k == 'original_name': elif k == 'original_title' or k == 'original_name':
@@ -1704,6 +1710,7 @@ class Tmdb(object):
ret_infoLabels[k] = v ret_infoLabels[k] = v
elif k == 'production_countries' or k == 'origin_country': elif k == 'production_countries' or k == 'origin_country':
# support.dbg()
if isinstance(v, str): if isinstance(v, str):
l_country = list(set(l_country + v.split(','))) l_country = list(set(l_country + v.split(',')))
@@ -1713,9 +1720,9 @@ class Tmdb(object):
elif isinstance(v[0], dict): elif isinstance(v[0], dict):
# {'iso_3166_1': 'FR', 'name':'France'} # {'iso_3166_1': 'FR', 'name':'France'}
for i in v: for i in v:
if 'iso_3166_1' in i: if 'name' in i:
pais = Tmdb.dic_country.get(i['iso_3166_1'], i['iso_3166_1']) # pais = Tmdb.dic_country.get(i['iso_3166_1'], i['iso_3166_1'])
l_country = list(set(l_country + [pais])) l_country = list(set(l_country + [i['name']]))
elif k == 'credits_crew' or k == 'episode_crew' or k == 'season_crew': elif k == 'credits_crew' or k == 'episode_crew' or k == 'season_crew':
for crew in v: for crew in v:
@@ -1737,13 +1744,6 @@ class Tmdb(object):
# logger.debug("Atributos no añadidos: " + k +'= '+ str(v)) # logger.debug("Atributos no añadidos: " + k +'= '+ str(v))
pass pass
Mpaaurl = '{}/{}/{}/content_ratings?api_key={}'.format(host, self.search_type, ret_infoLabels['tmdb_id'], api)
Mpaas = self.get_json(Mpaaurl).get('results',[])
for m in Mpaas:
if m.get('iso_3166_1','').lower() == 'us':
ret_infoLabels['Mpaa'] = m['rating']
break
# Sort the lists and convert them to str if necessary # Sort the lists and convert them to str if necessary
if l_castandrole: if l_castandrole:
ret_infoLabels['castandrole'] = sorted(l_castandrole, key=lambda tup: tup[0]) ret_infoLabels['castandrole'] = sorted(l_castandrole, key=lambda tup: tup[0])
@@ -1373,7 +1373,7 @@ msgid "More than 17 years old"
msgstr "" msgstr ""
msgctxt "#60292" msgctxt "#60292"
msgid "Searching for TV show information" msgid "Search for information on episodes"
msgstr "" msgstr ""
msgctxt "#60293" msgctxt "#60293"
@@ -1372,8 +1372,8 @@ msgid "More than 17 years old"
msgstr "Più di 17 anni" msgstr "Più di 17 anni"
msgctxt "#60292" msgctxt "#60292"
msgid "Searching for TV show information" msgid "Search for information on episodes"
msgstr "Ricerca informazioni sulla serie TV" msgstr "Cerca informazioni sugli episodi"
msgctxt "#60293" msgctxt "#60293"
msgid "Please wait..." msgid "Please wait..."
+1 -1
View File
@@ -12,7 +12,6 @@
<setting id="resolver_dns" type="bool" label="707408" default="true" enable="true" visible="true"/> <setting id="resolver_dns" type="bool" label="707408" default="true" enable="true" visible="true"/>
<setting id="checkdns" type="bool" default="true" visible="false"/> <setting id="checkdns" type="bool" default="true" visible="false"/>
<setting label="70788" type="lsep"/> <setting label="70788" type="lsep"/>
<setting id="episode_info" type="bool" label="Infornmazioni episodio (non consigliato in dispositivi lenti)" default="false"/>
<setting id="debug" type="bool" label="30003" default="false"/> <setting id="debug" type="bool" label="30003" default="false"/>
<setting id="chrome_ua_version" type="text" default="87.0.4280.88" visible="False"/> <setting id="chrome_ua_version" type="text" default="87.0.4280.88" visible="False"/>
</category> </category>
@@ -93,6 +92,7 @@
<setting id="tmdb_active" default="true" visible="false"/> <setting id="tmdb_active" default="true" visible="false"/>
<!-- <setting id="tmdb_threads" type="slider" option="int" range="5,5,30" label="70155" default="20"/>--> <!-- <setting id="tmdb_threads" type="slider" option="int" range="5,5,30" label="70155" default="20"/>-->
<setting id="tmdb_plus_info" type="bool" label="70156" default="false"/> <setting id="tmdb_plus_info" type="bool" label="70156" default="false"/>
<setting id="episode_info" type="bool" label="60292" default="false"/>
<setting id="tmdb_cache" type="bool" label="70157" default="true"/> <setting id="tmdb_cache" type="bool" label="70157" default="true"/>
<setting id="tmdb_cache_expire" type="select" lvalues="70158|70159|70160|70161|70170" label="70162" enable="eq(-1,true)" default="4"/> <setting id="tmdb_cache_expire" type="select" lvalues="70158|70159|70160|70161|70170" label="70162" enable="eq(-1,true)" default="4"/>
<setting id="tmdb_clean_db_cache" type="action" label="70163" action="RunPlugin(plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAic2NyaXB0Ig0KfQ==)" /> <setting id="tmdb_clean_db_cache" type="action" label="70163" action="RunPlugin(plugin://plugin.video.kod/?ew0KICAgICJhY3Rpb24iOiAic2NyaXB0Ig0KfQ==)" />