Community Channels Fix e Migliorie
- Ricerca Foto e descrizione in automatico per: - "directors":"Nome Regista" - "actors"["Nome 1", "Nome 2"] - "search":"" -> ricerca nella lista
This commit is contained in:
+65
-43
@@ -12,13 +12,20 @@ from channelselector import get_thumb
|
|||||||
from platformcode import config, platformtools
|
from platformcode import config, platformtools
|
||||||
from specials import autoplay
|
from specials import autoplay
|
||||||
|
|
||||||
|
import xbmc, xbmcaddon
|
||||||
|
|
||||||
|
addon = xbmcaddon.Addon('metadata.themoviedb.org')
|
||||||
|
lang = addon.getSetting('language')
|
||||||
|
|
||||||
|
|
||||||
list_data = {}
|
list_data = {}
|
||||||
|
|
||||||
list_language = ['ITA', 'SUB-ITA']
|
# list_language = ['ITA', 'SUB-ITA']
|
||||||
list_servers = ['directo', 'akvideo', 'verystream', 'openload']
|
list_servers = ['directo', 'akvideo', 'verystream', 'openload']
|
||||||
list_quality = ['SD', '720', '1080', '4k']
|
list_quality = ['SD', '720', '1080', '4k']
|
||||||
|
|
||||||
|
tmdb_api = 'a1ab8b8669da03637a4b98fa39c39228'
|
||||||
|
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
support.log()
|
support.log()
|
||||||
@@ -156,18 +163,32 @@ def submenu(item):
|
|||||||
for media in json_data[media_type]:
|
for media in json_data[media_type]:
|
||||||
if media.has_key(item.filterkey):
|
if media.has_key(item.filterkey):
|
||||||
if type(media[item.filterkey]) == str and media[item.filterkey] not in filter_list:
|
if type(media[item.filterkey]) == str and media[item.filterkey] not in filter_list:
|
||||||
filter_list.append(media[item.filterkey].lower())
|
filter_list.append(media[item.filterkey])
|
||||||
elif type(media[item.filterkey]) == list:
|
elif type(media[item.filterkey]) == list:
|
||||||
for f in media[item.filterkey]:
|
for f in media[item.filterkey]:
|
||||||
if f not in filter_list:
|
if f not in filter_list:
|
||||||
filter_list.append(f.lower())
|
filter_list.append(f)
|
||||||
filter_list.sort()
|
filter_list.sort()
|
||||||
|
|
||||||
for filter in filter_list:
|
for filter in filter_list:
|
||||||
|
if item.filterkey in ['director','actors']:
|
||||||
|
load_info = load_json('http://api.themoviedb.org/3/search/person/?api_key=' + tmdb_api + '&language=' + lang + '&query=' + filter)
|
||||||
|
if load_info:
|
||||||
|
id = str(load_info['results'][0]['id'])
|
||||||
|
if id:
|
||||||
|
info = load_json('http://api.themoviedb.org/3/person/'+ id + '?api_key=' + tmdb_api + '&language=' + lang)
|
||||||
|
if not info['biography']:
|
||||||
|
bio = load_json('http://api.themoviedb.org/3/person/'+ id + '?api_key=' + tmdb_api + '&language=en')['biography']
|
||||||
|
thumbnail = 'https://image.tmdb.org/t/p/w600_and_h900_bestv2' + info['profile_path'] if info['profile_path'] else item.thumbnail
|
||||||
|
plot += info['biography'] if info['biography'] else bio if bio else ''
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel,
|
itemlist.append(Item(channel=item.channel,
|
||||||
title=typo(filter, 'bold'),
|
title=typo(filter, 'bold'),
|
||||||
url=item.url,
|
url=item.url,
|
||||||
media_type=item.media_type,
|
media_type=item.media_type,
|
||||||
action='list_filtered',
|
action='list_filtered',
|
||||||
|
thumbnail=thumbnail,
|
||||||
|
plot=plot,
|
||||||
filterkey=item.filterkey,
|
filterkey=item.filterkey,
|
||||||
filter=filter))
|
filter=filter))
|
||||||
return itemlist
|
return itemlist
|
||||||
@@ -185,7 +206,7 @@ def list_all(item):
|
|||||||
if json_data:
|
if json_data:
|
||||||
for media in json_data[media_type]:
|
for media in json_data[media_type]:
|
||||||
|
|
||||||
quality, language, plot, poster = set_extra_values(media)
|
quality, language, plot, poster = set_extra_values(media, item.path)
|
||||||
|
|
||||||
fulltitle = media['title']
|
fulltitle = media['title']
|
||||||
title = set_title(fulltitle, language, quality)
|
title = set_title(fulltitle, language, quality)
|
||||||
@@ -244,47 +265,49 @@ def list_filtered(item):
|
|||||||
|
|
||||||
if json_data:
|
if json_data:
|
||||||
for media in json_data[media_type]:
|
for media in json_data[media_type]:
|
||||||
if media.has_key(item.filterkey) and (item.filter.lower() in media[item.filterkey]):
|
if media.has_key(item.filterkey):
|
||||||
|
filter_keys = [it.lower() for it in media[item.filterkey]] if type(media[item.filterkey]) == list else media[item.filterkey].lower()
|
||||||
|
if item.filter.lower() in filter_keys:
|
||||||
|
|
||||||
quality, language, plot, poster = set_extra_values(media)
|
quality, language, plot, poster = set_extra_values(media, item.path)
|
||||||
|
|
||||||
fulltitle = media['title']
|
fulltitle = media['title']
|
||||||
title = set_title(fulltitle, language, quality)
|
title = set_title(fulltitle, language, quality)
|
||||||
|
|
||||||
infoLabels['year'] = media['year'] if media.has_key('year')else ''
|
infoLabels['year'] = media['year'] if media.has_key('year')else ''
|
||||||
infoLabels['tmdb_id'] = media['tmdb_id'] if media.has_key('tmdb_id') else ''
|
infoLabels['tmdb_id'] = media['tmdb_id'] if media.has_key('tmdb_id') else ''
|
||||||
|
|
||||||
if 'movies_list' in json_data or 'generic_list' in json_data:
|
if 'movies_list' in json_data or 'generic_list' in json_data:
|
||||||
url= media
|
url= media
|
||||||
contentTitle = fulltitle
|
contentTitle = fulltitle
|
||||||
contentType = 'movie'
|
contentType = 'movie'
|
||||||
action='findvideos'
|
action='findvideos'
|
||||||
|
|
||||||
else:
|
|
||||||
contentSerieName = fulltitle
|
|
||||||
contentType = 'tvshow'
|
|
||||||
if media.has_key('seasons_list'):
|
|
||||||
url = media['seasons_list']
|
|
||||||
action = 'get_seasons'
|
|
||||||
else:
|
else:
|
||||||
url = relative('link', media, item.path)
|
contentSerieName = fulltitle
|
||||||
action = 'episodios'
|
contentType = 'tvshow'
|
||||||
|
if media.has_key('seasons_list'):
|
||||||
|
url = media['seasons_list']
|
||||||
|
action = 'get_seasons'
|
||||||
|
else:
|
||||||
|
url = relative('link', media, item.path)
|
||||||
|
action = 'episodios'
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel,
|
itemlist.append(Item(channel=item.channel,
|
||||||
contentType=contentType,
|
contentType=contentType,
|
||||||
title=format_title(title),
|
title=format_title(title),
|
||||||
fulltitle=fulltitle,
|
fulltitle=fulltitle,
|
||||||
show=fulltitle,
|
show=fulltitle,
|
||||||
quality=quality,
|
quality=quality,
|
||||||
language=language,
|
language=language,
|
||||||
plot=plot,
|
plot=plot,
|
||||||
personal_plot=plot,
|
personal_plot=plot,
|
||||||
thumbnail=poster,
|
thumbnail=poster,
|
||||||
path=item.path,
|
path=item.path,
|
||||||
url=url,
|
url=url,
|
||||||
contentTitle=contentTitle,
|
contentTitle=contentTitle,
|
||||||
contentSerieName=contentSerieName,
|
contentSerieName=contentSerieName,
|
||||||
action=action))
|
action=action))
|
||||||
|
|
||||||
if not 'generic_list' in json_data:
|
if not 'generic_list' in json_data:
|
||||||
tmdb.set_infoLabels(itemlist, seekTmdb=True)
|
tmdb.set_infoLabels(itemlist, seekTmdb=True)
|
||||||
@@ -386,7 +409,7 @@ def findvideos(item):
|
|||||||
itemlist = []
|
itemlist = []
|
||||||
if 'links' in item.url:
|
if 'links' in item.url:
|
||||||
for url in item.url['links']:
|
for url in item.url['links']:
|
||||||
quality, language, plot, poster = set_extra_values(url)
|
quality, language, plot, poster = set_extra_values(url, item.path)
|
||||||
title = ''
|
title = ''
|
||||||
title = set_title(title, language, quality)
|
title = set_title(title, language, quality)
|
||||||
|
|
||||||
@@ -470,7 +493,7 @@ def remove_channel(item):
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def set_extra_values(dict):
|
def set_extra_values(dict, path):
|
||||||
support.log()
|
support.log()
|
||||||
quality = ''
|
quality = ''
|
||||||
language = ''
|
language = ''
|
||||||
@@ -484,7 +507,7 @@ def set_extra_values(dict):
|
|||||||
if 'plot' in dict and dict['plot'] != '':
|
if 'plot' in dict and dict['plot'] != '':
|
||||||
plot = dict['plot']
|
plot = dict['plot']
|
||||||
if 'poster' in dict and dict['poster'] != '':
|
if 'poster' in dict and dict['poster'] != '':
|
||||||
poster = dict['poster']
|
poster = dict['poster']if ':/' in dict['poster'] else path + dict['poster'] if '/' in dict['poster'] else get_thumb(json[key]) if dict['poster'] else ''
|
||||||
|
|
||||||
return quality, language, plot, poster
|
return quality, language, plot, poster
|
||||||
|
|
||||||
@@ -515,7 +538,6 @@ def search(item, text):
|
|||||||
support.log('Search ', text)
|
support.log('Search ', text)
|
||||||
itemlist = []
|
itemlist = []
|
||||||
json_data = load_json(item)
|
json_data = load_json(item)
|
||||||
support.log('JSON= ', json_data)
|
|
||||||
|
|
||||||
return load_links(item, itemlist, json_data, text)
|
return load_links(item, itemlist, json_data, text)
|
||||||
|
|
||||||
@@ -533,7 +555,7 @@ def load_links(item, itemlist, json_data, text):
|
|||||||
if json_data:
|
if json_data:
|
||||||
for media in json_data[media_type]:
|
for media in json_data[media_type]:
|
||||||
if text.lower() in media['title'].lower():
|
if text.lower() in media['title'].lower():
|
||||||
quality, language, plot, poster = set_extra_values(media)
|
quality, language, plot, poster = set_extra_values(media, item.path)
|
||||||
|
|
||||||
title = media['title']
|
title = media['title']
|
||||||
title = set_title(title, language, quality)
|
title = set_title(title, language, quality)
|
||||||
|
|||||||
Reference in New Issue
Block a user