Merge remote-tracking branch 'origin/master'

This commit is contained in:
marco
2019-10-19 21:06:39 +02:00
26 changed files with 275 additions and 104 deletions
+1 -1
View File
@@ -45,7 +45,7 @@ Per aprirli non servono programmi particolari un semplice editor di testo è suf
Occorrente: file .json Occorrente: file .json
**1. Indica la coerenza delle voci presenti in "language" con i contenuti presenti sul sito:** **1. Indica la coerenza delle voci presenti in "language" con i contenuti presenti sul sito:**
valori: ita, vosi (sub-ita) valori: ita, sub-ita (sub-ita)
- [ ] coerenti - [ ] coerenti
- [ ] non coerenti - [ ] non coerenti
+1 -1
View File
@@ -19,7 +19,7 @@ se vanno cancellati tutti deve rimanere la voce:
{ {
"id": "nome del file .json", "id": "nome del file .json",
"name": "Nome del canale visualizzato in KOD", "name": "Nome del canale visualizzato in KOD",
"language": ["ita", "vosi"], "language": ["ita", "sub-ita"],
"active": false, "active": false,
"adult": false, "adult": false,
"thumbnail": "", "thumbnail": "",
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "altadefinizione01", "id": "altadefinizione01",
"name": "Altadefinizione01", "name": "Altadefinizione01",
"language": ["ita", "vosi"], "language": ["ita", "sub-ita"],
"active": true, "active": true,
"adult": false, "adult": false,
"thumbnail": "https://raw.githubusercontent.com/Zanzibar82/images/master/posters/altadefinizione01.png", "thumbnail": "https://raw.githubusercontent.com/Zanzibar82/images/master/posters/altadefinizione01.png",
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "Altadefinizione01 L", "name": "Altadefinizione01 L",
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["ita","vosi"], "language": ["ita","sub-ita"],
"thumbnail": "altadefinizione01_L.png", "thumbnail": "altadefinizione01_L.png",
"banner": "altadefinizione01_L.png", "banner": "altadefinizione01_L.png",
"categories": ["movie","vos"], "categories": ["movie","vos"],
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "AltadefinizioneClick", "name": "AltadefinizioneClick",
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["ita","vosi"], "language": ["ita","sub-ita"],
"thumbnail": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/altadefinizioneclick.png", "thumbnail": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/altadefinizioneclick.png",
"bannermenu": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/altadefinizioneciclk.png", "bannermenu": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/altadefinizioneciclk.png",
"categories": ["movie","vos"], "categories": ["movie","vos"],
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "AnimePerTutti", "name": "AnimePerTutti",
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["ita", "vosi"], "language": ["ita", "sub-ita"],
"thumbnail": "animepertutti.png", "thumbnail": "animepertutti.png",
"bannermenu": "animepertutti.png", "bannermenu": "animepertutti.png",
"categories": ["anime", "vos"], "categories": ["anime", "vos"],
+2 -2
View File
@@ -3,10 +3,10 @@
"name": "AnimeSubIta", "name": "AnimeSubIta",
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["vosi"], "language": ["sub-ita"],
"thumbnail": "animesubita.png", "thumbnail": "animesubita.png",
"bannermenu": "animesubita.png", "bannermenu": "animesubita.png",
"categories": ["anime", "vosi", "movie"], "categories": ["anime", "vos", "movie"],
"settings": [] "settings": []
} }
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "AnimeWorld", "name": "AnimeWorld",
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["ita", "vosi"], "language": ["ita", "sub-ita"],
"thumbnail": "animeworld.png", "thumbnail": "animeworld.png",
"banner": "animeworld.png", "banner": "animeworld.png",
"categories": ["anime", "vos"], "categories": ["anime", "vos"],
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "casacinema", "id": "casacinema",
"name": "Casacinema", "name": "Casacinema",
"language": ["ita", "vosi"], "language": ["ita", "sub-ita"],
"active": true, "active": true,
"adult": false, "adult": false,
"thumbnail": "https://raw.githubusercontent.com/Zanzibar82/images/master/posters/casacinema.png", "thumbnail": "https://raw.githubusercontent.com/Zanzibar82/images/master/posters/casacinema.png",
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "casacinemaInfo", "id": "casacinemaInfo",
"name": "La Casa del Cinema", "name": "La Casa del Cinema",
"language": ["ita", "vosi"], "language": ["ita", "sub-ita"],
"active": true, "active": true,
"adult": false, "adult": false,
"thumbnail": "", "thumbnail": "",
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "cb01anime", "id": "cb01anime",
"name": "Cb01anime", "name": "Cb01anime",
"language": ["ita", "vos", "vosi"], "language": ["ita", "vos", "sub-ita"],
"active": true, "active": true,
"adult": false, "adult": false,
"thumbnail": "cb01anime.png", "thumbnail": "cb01anime.png",
+2 -2
View File
@@ -1,11 +1,11 @@
{ {
"id": "cineblog01", "id": "cineblog01",
"name": "CB01", "name": "CB01",
"language": ["ita"], "language": ["ita", "sub-ita"],
"active": true, "active": true,
"adult": false, "adult": false,
"thumbnail": "cb01.png", "thumbnail": "cb01.png",
"banner": "cb01.png", "banner": "cb01.png",
"categories": ["tvshow", "movie", "vosi"], "categories": ["tvshow", "movie", "vos"],
"settings": [] "settings": []
} }
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "dreamsub", "id": "dreamsub",
"name": "DreamSub", "name": "DreamSub",
"language": ["ita", "vosi"], "language": ["ita", "sub-ita"],
"active": true, "active": true,
"adult": false, "adult": false,
"thumbnail": "dreamsub.png", "thumbnail": "dreamsub.png",
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "fastsubita", "id": "fastsubita",
"name": "Fastsubita", "name": "Fastsubita",
"language": ["vosi"], "language": ["sub-ita"],
"active": true, "active": true,
"adult": false, "adult": false,
"thumbnail": "fastsubita.png", "thumbnail": "fastsubita.png",
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "Italia Serie", "name": "Italia Serie",
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["ita","vosi"], "language": ["ita","sub-ita"],
"thumbnail": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/italiaserie.png", "thumbnail": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/italiaserie.png",
"bannermenu": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/italiaserie.png", "bannermenu": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/italiaserie.png",
"categories": ["tvshow"], "categories": ["tvshow"],
+1 -1
View File
@@ -6,7 +6,7 @@
"adult": false, "adult": false,
"thumbnail": "mondolunatico2.png", "thumbnail": "mondolunatico2.png",
"banner": "mondolunatico2.png", "banner": "mondolunatico2.png",
"categories": ["tvshow", "movie", "vosi", "anime"], "categories": ["tvshow", "movie", "vos", "anime"],
"settings": [ "settings": [
{ {
"id": "include_in_global_search", "id": "include_in_global_search",
+1 -1
View File
@@ -6,7 +6,7 @@
"adult": false, "adult": false,
"thumbnail": "toonitalia.png", "thumbnail": "toonitalia.png",
"banner": "toonitalia.png", "banner": "toonitalia.png",
"categories": ["tvshow", "movie", "vosi", "anime"], "categories": ["tvshow", "movie", "vos", "anime"],
"settings": [ "settings": [
{ {
"id": "include_in_global_search", "id": "include_in_global_search",
+33 -25
View File
@@ -88,7 +88,7 @@ def getchanneltypes(view="thumb_"):
channel_types.append("adult") channel_types.append("adult")
# channel_language = config.get_setting("channel_language", default="all") # channel_language = config.get_setting("channel_language", default="all")
channel_language = auto_filter()[0] channel_language = auto_filter()
logger.info("channel_language=%s" % channel_language) logger.info("channel_language=%s" % channel_language)
# Ahora construye el itemlist ordenadamente # Ahora construye el itemlist ordenadamente
@@ -138,7 +138,7 @@ def filterchannels(category, view="thumb_"):
logger.info("channel_files encontrados %s" % (len(channel_files))) logger.info("channel_files encontrados %s" % (len(channel_files)))
# channel_language = config.get_setting("channel_language", default="all") # channel_language = config.get_setting("channel_language", default="all")
channel_language, channel_language_list = auto_filter() channel_language = auto_filter()
logger.info("channel_language=%s" % channel_language) logger.info("channel_language=%s" % channel_language)
for channel_path in channel_files: for channel_path in channel_files:
@@ -193,15 +193,14 @@ def filterchannels(category, view="thumb_"):
# Se muestran sólo los idiomas filtrados, cast o lat # Se muestran sólo los idiomas filtrados, cast o lat
# Los canales de adultos se mostrarán siempre que estén activos # Los canales de adultos se mostrarán siempre que estén activos
for c in channel_language_list: # for channel_language_list in channel_language_list:
if c in channel_parameters["language"]: # if c in channel_parameters["language"]:
L = True # L = True
else: # else:
L = False # L = False
# logger.info('CCLANG= ' + channel_language + ' ' + str(channel_language_list)) # logger.info('CCLANG= ' + channel_language + ' ' + str(channel_language_list))
if channel_language != "all" and "*" not in channel_parameters["language"] \ if channel_language != "all" and "*" not in channel_parameters["language"] \
and L == False and channel_language not in channel_parameters["language"]: and channel_language not in str(channel_parameters["language"]):
logger.info('STOP!!!!')
continue continue
# Se salta el canal si está en una categoria filtrado # Se salta el canal si está en una categoria filtrado
@@ -291,12 +290,13 @@ def set_channel_info(parameters):
content = '' content = ''
langs = parameters['language'] langs = parameters['language']
lang_dict = {'ita':'Italiano', lang_dict = {'ita':'Italiano',
'vosi':'Sottotitolato in Italiano', 'sub-ita':'Sottotitolato in Italiano',
'*':'Italiano, Sottotitolato in Italiano'} '*':'Italiano, Sottotitolato in Italiano'}
for lang in langs: for lang in langs:
# if 'vos' in parameters['categories']: # if 'vos' in parameters['categories']:
# lang = '*' # lang = '*'
# if 'vosi' in parameters['categories']: # if 'sub-ita' in parameters['categories']:
# lang = 'ita' # lang = 'ita'
if lang in lang_dict: if lang in lang_dict:
@@ -320,25 +320,33 @@ def set_channel_info(parameters):
def auto_filter(auto_lang=False): def auto_filter(auto_lang=False):
import xbmc, xbmcaddon
addon = xbmcaddon.Addon('metadata.themoviedb.org')
def_lang = addon.getSetting('language')
lang = 'all'
lang_list = ['all']
lang_dict = {'it':'ita'}
lang_list_dict = {'it':['ita','vosi']}
if config.get_setting("channel_language") == 'auto' or auto_lang == True: if config.get_setting("channel_language") == 'auto' or auto_lang == True:
lang = lang_dict[def_lang] lang = config.get_localized_string(20001)
lang_list = lang_list_dict[def_lang]
else: else:
lang = config.get_setting("channel_language", default="all") lang = config.get_setting("channel_language", default="all")
lang_list = lang_list_dict[def_lang]
return lang, lang_list return lang
# import xbmc, xbmcaddon
# addon = xbmcaddon.Addon('metadata.themoviedb.org')
# def_lang = addon.getSetting('language')
# lang = 'all'
# lang_list = ['all']
# lang_dict = {'it':'ita'}
# lang_list_dict = {'it':['ita','vosi']}
# if config.get_setting("channel_language") == 'auto' or auto_lang == True:
# lang = lang_dict[def_lang]
# lang_list = lang_list_dict[def_lang]
# else:
# lang = config.get_setting("channel_language", default="all")
# lang_list = lang_list_dict[def_lang]
# return lang, lang_list
def thumb(itemlist=[], genre=False): def thumb(itemlist=[], genre=False):
+1 -1
View File
@@ -366,7 +366,7 @@ def get_localized_string(code):
def get_localized_category(categ): def get_localized_category(categ):
categories = {'movie': get_localized_string(30122), 'tvshow': get_localized_string(30123), categories = {'movie': get_localized_string(30122), 'tvshow': get_localized_string(30123),
'anime': get_localized_string(30124), 'documentary': get_localized_string(30125), 'anime': get_localized_string(30124), 'documentary': get_localized_string(30125),
'vos': get_localized_string(30136), 'vosi': get_localized_string(70566), 'adult': get_localized_string(30126), 'vos': get_localized_string(30136), 'sub-ita': get_localized_string(70566), 'adult': get_localized_string(30126),
'direct': get_localized_string(30137), 'torrent': get_localized_string(70015)} 'direct': get_localized_string(30137), 'torrent': get_localized_string(70015)}
return categories[categ] if categ in categories else categ return categories[categ] if categ in categories else categ
+3 -3
View File
@@ -253,7 +253,7 @@ def set_lang(language):
lat=['latino','lat','la', 'espanol latino', 'espaol latino', 'zl', 'mx', 'co', 'vl'] lat=['latino','lat','la', 'espanol latino', 'espaol latino', 'zl', 'mx', 'co', 'vl']
vose=['subtitulado','subtitulada','sub','sub espanol','vose','espsub','su','subs castellano', vose=['subtitulado','subtitulada','sub','sub espanol','vose','espsub','su','subs castellano',
'sub: español', 'vs', 'zs', 'vs', 'english-spanish subs', 'ingles sub espanol'] 'sub: español', 'vs', 'zs', 'vs', 'english-spanish subs', 'ingles sub espanol']
vosi=['sottotitolato','sottotitolata','sub','sub ita','vosi','sub-ita','subs italiano', sub_ita=['sottotitolato','sottotitolata','sub','sub ita','subs italiano',
'sub: italiano', 'inglese sottotitolato'] 'sub: italiano', 'inglese sottotitolato']
vos=['vos', 'sub ingles', 'engsub','ingles subtitulado', 'sub: ingles'] vos=['vos', 'sub ingles', 'engsub','ingles subtitulado', 'sub: ingles']
vo=['ingles', 'en','vo', 'ovos', 'eng','v.o', 'english'] vo=['ingles', 'en','vo', 'ovos', 'eng','v.o', 'english']
@@ -272,8 +272,8 @@ def set_lang(language):
language = 'lat' language = 'lat'
elif language in ita: elif language in ita:
language = 'ita' language = 'ita'
elif language in vosi: elif language in sub_ita:
language = 'vosi' language = 'sub-ita'
elif language in vose: elif language in vose:
language = 'vose' language = 'vose'
elif language in vos: elif language in vos:
+4
View File
@@ -21,6 +21,10 @@ msgctxt "#20000"
msgid "KOD" msgid "KOD"
msgstr "" msgstr ""
msgctxt "#20001"
msgid "eng"
msgstr ""
msgctxt "#30001" msgctxt "#30001"
msgid "Check for updates:" msgid "Check for updates:"
msgstr "" msgstr ""
+4
View File
@@ -21,6 +21,10 @@ msgctxt "#20000"
msgid "KOD" msgid "KOD"
msgstr "KOD" msgstr "KOD"
msgctxt "#20001"
msgid "eng"
msgstr "ita"
msgctxt "#30001" msgctxt "#30001"
msgid "Check for updates:" msgid "Check for updates:"
msgstr "Verifica aggiornamenti:" msgstr "Verifica aggiornamenti:"
+1 -1
View File
@@ -106,7 +106,7 @@
<setting id="vose_color" type="labelenum" label="70142" <setting id="vose_color" type="labelenum" label="70142"
values="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" values="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-10,true)+eq(-11,true)"/> default="white" visible="eq(-10,true)+eq(-11,true)"/>
<setting id="vosi_color" type="labelenum" label="70566" <setting id="sub-ita_color" type="labelenum" label="70566"
values="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]" values="[COLOR white]white[/COLOR]|[COLOR cyan]cyan[/COLOR]|[COLOR deepskyblue]deepskyblue[/COLOR]|[COLOR firebrick]firebrick[/COLOR]|[COLOR gold]gold[/COLOR]|[COLOR goldenrod]goldenrod[/COLOR]|[COLOR hotpink]hotpink[/COLOR]|[COLOR limegreen]limegreen[/COLOR]|[COLOR orange]orange[/COLOR]|[COLOR orchid]orchid[/COLOR]|[COLOR red]red[/COLOR]|[COLOR salmon]salmon[/COLOR]|[COLOR yellow]yellow[/COLOR]"
default="white" visible="eq(-11,true)+eq(-12,true)"/> default="white" visible="eq(-11,true)+eq(-12,true)"/>
<setting id="vos_color" type="labelenum" label="70143" <setting id="vos_color" type="labelenum" label="70143"
+206 -51
View File
@@ -3,23 +3,30 @@
# -*- Created for Alfa-addon -*- # -*- Created for Alfa-addon -*-
# -*- By the Alfa Develop Group -*- # -*- By the Alfa Develop Group -*-
import re, urllib, os, inspect import re, os, inspect, requests
import requests
from core import httptools, scrapertoolsV2, servertools, jsontools, tmdb, support from core import httptools, scrapertoolsV2, servertools, jsontools, tmdb, support
from core.item import Item from core.item import Item
from core.support import typo from core.support import typo
from channelselector import get_thumb from channelselector import get_thumb
from platformcode import logger, 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()
@@ -48,8 +55,7 @@ def show_channels(item):
itemlist.append(Item(channel=item.channel, itemlist.append(Item(channel=item.channel,
title=typo(config.get_localized_string(70676),'bold color kod'), title=typo(config.get_localized_string(70676),'bold color kod'),
action='add_channel', action='add_channel',
thumbnail=get_thumb('add.png') thumbnail=get_thumb('add.png')))
))
for key, channel in json['channels'].items(): for key, channel in json['channels'].items():
# Find File Path # Find File Path
@@ -81,6 +87,7 @@ def show_channels(item):
path=path)) path=path))
return itemlist return itemlist
def show_menu(item): def show_menu(item):
global list_data global list_data
itemlist = [] itemlist = []
@@ -94,6 +101,7 @@ def show_menu(item):
fanart = relative('fanart', option, item.path) fanart = relative('fanart', option, item.path)
plot = option['plot'] if option.has_key('plot') else item.plot plot = option['plot'] if option.has_key('plot') else item.plot
url = relative('link', option, item.path) url = relative('link', option, item.path)
submenu = option['submenu'] if option.has_key('submenu') else []
itemlist.append(Item(channel=item.channel, itemlist.append(Item(channel=item.channel,
title=format_title(option['title']), title=format_title(option['title']),
thumbnail=thumbnail, thumbnail=thumbnail,
@@ -102,9 +110,26 @@ def show_menu(item):
action='show_menu', action='show_menu',
url=url, url=url,
path=item.path)) path=item.path))
if submenu:
for key in submenu:
if key != 'search':
itemlist.append(Item(channel=item.channel,
title=typo(submenu[key],'submenu'),
url=url,
path=item.path,
thumbnail=item.thumbnail,
action='submenu',
filterkey=key))
if submenu.has_key('search'):
itemlist.append(Item(channel=item.channel,
title=typo('Cerca ' + option['title'] +'...','color kod bold'),
thumbnail=get_thumb('search.png'),
action='search',
url=url,
path=item.path))
# add Search # add Search
itemlist.append(Item(channel=item.channel, itemlist.append(Item(channel=item.channel,
title=typo('Cerca...','color kod bold'), title=typo('Cerca nel Canale...','color kod bold'),
thumbnail=get_thumb('search.png'), thumbnail=get_thumb('search.png'),
action='search', action='search',
url=item.url, url=item.url,
@@ -121,6 +146,54 @@ def show_menu(item):
return list_all(item) return list_all(item)
def submenu(item):
support.log()
itemlist = []
filter_list = []
json_data = load_json(item)
if json_data.has_key("movies_list"): item.media_type= 'movies_list'
elif json_data.has_key("tvshows_list"): item.media_type = 'tvshows_list'
elif json_data.has_key("episodes_list"): item.media_type = 'episodes_list'
elif json_data.has_key("generic_list"): item.media_type= 'generic_list'
media_type = item.media_type
for media in json_data[media_type]:
if media.has_key(item.filterkey):
if type(media[item.filterkey]) == str and media[item.filterkey] not in filter_list:
filter_list.append(media[item.filterkey])
elif type(media[item.filterkey]) == list:
for f in media[item.filterkey]:
if f not in filter_list:
filter_list.append(f)
filter_list.sort()
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,
title=typo(filter, 'bold'),
url=item.url,
media_type=item.media_type,
action='list_filtered',
thumbnail=thumbnail,
plot=plot,
filterkey=item.filterkey,
filter=filter))
return itemlist
def list_all(item): def list_all(item):
support.log() support.log()
@@ -132,8 +205,9 @@ def list_all(item):
if json_data: if json_data:
for media in json_data[media_type]: for media in json_data[media_type]:
support.log(media)
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)
@@ -171,6 +245,7 @@ def list_all(item):
url=url, url=url,
contentTitle=contentTitle, contentTitle=contentTitle,
contentSerieName=contentSerieName, contentSerieName=contentSerieName,
infoLabels=infoLabels,
action=action)) action=action))
if not 'generic_list' in json_data: if not 'generic_list' in json_data:
@@ -180,8 +255,73 @@ def list_all(item):
item.plot = '\n\n' + typo('','submenu') + '\n' + item.personal_plot + '\n' + typo('','submenu') + '\n\n' + item.plot item.plot = '\n\n' + typo('','submenu') + '\n' + item.personal_plot + '\n' + typo('','submenu') + '\n\n' + item.plot
return itemlist return itemlist
def list_filtered(item):
support.log()
itemlist = []
media_type = item.media_type
json_data = load_json(item)
contentTitle = contentSerieName = ''
infoLabels = item.infoLabels if item.infoLabels else {}
if json_data:
for media in json_data[media_type]:
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, item.path)
fulltitle = media['title']
title = set_title(fulltitle, language, quality)
infoLabels['year'] = media['year'] if media.has_key('year')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:
url= media
contentTitle = fulltitle
contentType = 'movie'
action='findvideos'
else:
contentSerieName = fulltitle
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,
contentType=contentType,
title=format_title(title),
fulltitle=fulltitle,
show=fulltitle,
quality=quality,
language=language,
plot=plot,
personal_plot=plot,
thumbnail=poster,
path=item.path,
url=url,
contentTitle=contentTitle,
contentSerieName=contentSerieName,
infoLabels=infoLabels,
action=action))
if not 'generic_list' in json_data:
tmdb.set_infoLabels(itemlist, seekTmdb=True)
for item in itemlist:
if item.personal_plot != item.plot and item.personal_plot:
item.plot = '\n\n' + typo('','submenu') + '\n' + item.personal_plot + '\n' + typo('','submenu') + '\n\n' + item.plot
return itemlist
def get_seasons(item): def get_seasons(item):
support.log(item) support.log()
itemlist = [] itemlist = []
infoLabels = item.infoLabels if item.infolabels else {} infoLabels = item.infoLabels if item.infolabels else {}
list_seasons = item.url list_seasons = item.url
@@ -218,7 +358,7 @@ def get_seasons(item):
def episodios(item): def episodios(item):
support.log(item) support.log()
itemlist = [] itemlist = []
json_data = load_json(item) json_data = load_json(item)
@@ -272,7 +412,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)
@@ -285,6 +425,7 @@ def findvideos(item):
return itemlist return itemlist
def add_channel(item): def add_channel(item):
support.log() support.log()
import xbmc import xbmc
@@ -333,6 +474,7 @@ def add_channel(item):
platformtools.dialog_notification(config.get_localized_string(20000), config.get_localized_string(70683) % json_file['channel_name']) platformtools.dialog_notification(config.get_localized_string(20000), config.get_localized_string(70683) % json_file['channel_name'])
return return
def remove_channel(item): def remove_channel(item):
support.log() support.log()
import xbmc import xbmc
@@ -354,7 +496,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 = ''
@@ -368,7 +510,9 @@ 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 ''
elif 'thumbnail' in dict and dict['thumbnail'] != '':
poster = dict['thumbnail']if ':/' in dict['thumbnail'] else path + dict['thumbnail'] if '/' in dict['thumbnail'] else ''
return quality, language, plot, poster return quality, language, plot, poster
@@ -387,12 +531,14 @@ def set_title(title, language, quality):
return title return title
def format_title(title): def format_title(title):
t = scrapertoolsV2.find_single_match(title, r'\{([^\}]+)\}') t = scrapertoolsV2.find_single_match(title, r'\{([^\}]+)\}')
if 'bold' not in t: t += ' bold' if 'bold' not in t: t += ' bold'
title = re.sub(r'(\{[^\}]+\})','',title) title = re.sub(r'(\{[^\}]+\})','',title)
return typo(title,t) return typo(title,t)
def search(item, text): def search(item, text):
support.log('Search ', text) support.log('Search ', text)
itemlist = [] itemlist = []
@@ -400,47 +546,55 @@ def search(item, text):
return load_links(item, itemlist, json_data, text) return load_links(item, itemlist, json_data, text)
def load_links(item, itemlist, json_data, text): def load_links(item, itemlist, json_data, text):
for option in json_data['menu']: support.log()
json_data = load_json(option['link'] if option['link'].startswith('http') else item.path+option['link'])
if not 'menu' in json_data:
if "movies_list" in json_data: media_type= 'movies_list'
elif "tvshows_list" in json_data: media_type = 'tvshows_list'
elif "episodes_list" in json_data: media_type = 'episodes_list'
if "generic_list" in json_data: media_type= 'generic_list'
if json_data: def links(item, itemlist, json_data, text):
for media in json_data[media_type]: support.log()
if text.lower() in media['title'].lower(): if "movies_list" in json_data: media_type= 'movies_list'
quality, language, plot, poster = set_extra_values(media) elif "tvshows_list" in json_data: media_type = 'tvshows_list'
elif "episodes_list" in json_data: media_type = 'episodes_list'
if "generic_list" in json_data: media_type= 'generic_list'
title = media['title'] if json_data:
title = set_title(title, language, quality) for media in json_data[media_type]:
if text.lower() in media['title'].lower():
quality, language, plot, poster = set_extra_values(media, item.path)
new_item = Item(channel=item.channel, title=format_title(title), quality=quality, title = media['title']
language=language, plot=plot, personal_plot=plot, thumbnail=poster, path=item.path) title = set_title(title, language, quality)
new_item.infoLabels['year'] = media['year'] if 'year' in media else '' new_item = Item(channel=item.channel, title=format_title(title), quality=quality,
new_item.infoLabels['tmdb_id'] = media['tmdb_id'] if 'tmdb_id' in media else '' language=language, plot=plot, personal_plot=plot, thumbnail=poster, path=item.path)
if 'movies_list' in json_data or 'generic_list' in json_data: new_item.infoLabels['year'] = media['year'] if 'year' in media else ''
new_item.url = media new_item.infoLabels['tmdb_id'] = media['tmdb_id'] if 'tmdb_id' in media else ''
new_item.contentTitle = media['title']
new_item.action = 'findvideos'
else:
new_item.url = media['seasons_list']
new_item.contentSerieName = media['title']
new_item.action = 'seasons'
itemlist.append(new_item) if 'movies_list' in json_data or 'generic_list' in json_data:
new_item.url = media
new_item.contentTitle = media['title']
new_item.action = 'findvideos'
else:
new_item.url = media['seasons_list']
new_item.contentSerieName = media['title']
new_item.action = 'seasons'
if not 'generic_list' in json_data: itemlist.append(new_item)
tmdb.set_infoLabels(itemlist, seekTmdb=True)
for item in itemlist: if not 'generic_list' in json_data:
if item.personal_plot != item.plot and item.personal_plot: tmdb.set_infoLabels(itemlist, seekTmdb=True)
item.plot = '\n\n' + typo('','submenu') + '\n' + item.personal_plot + '\n' + typo('','submenu') + '\n\n' + item.plot for item in itemlist:
else: if item.personal_plot != item.plot and item.personal_plot:
item.plot = '\n\n' + typo('','submenu') + '\n' + item.personal_plot + '\n' + typo('','submenu') + '\n\n' + item.plot
if json_data.has_key('menu'):
for option in json_data['menu']:
json_data = load_json(option['link'] if option['link'].startswith('http') else item.path+option['link'])
load_links(item, itemlist, json_data, text) load_links(item, itemlist, json_data, text)
else:
links(item, itemlist, json_data, text)
return itemlist return itemlist
@@ -454,18 +608,19 @@ def relative(key, json, path):
ret = '' ret = ''
return ret return ret
def load_json(item):
support.log(item)
url= item if type(item) == str else item.url
if url: def load_json(item):
support.log()
url= item if type(item) == str else item.url
try:
if url.startswith('http'): if url.startswith('http'):
json_file = httptools.downloadpage(url).data json_file = httptools.downloadpage(url).data
else: else:
json_file = open(url, "r").read() json_file = open(url, "r").read()
json_data = jsontools.load(json_file) json_data = jsontools.load(json_file)
else:
json_data = '' except:
json_data = {}
return json_data return json_data
+3 -3
View File
@@ -46,7 +46,7 @@ def mainlist(item):
list_canales, any_active = get_channels_list() list_canales, any_active = get_channels_list()
channel_language = config.get_setting("channel_language", default="auto") channel_language = config.get_setting("channel_language", default="auto")
if channel_language == 'auto': if channel_language == 'auto':
channel_language = auto_filter()[0] channel_language = auto_filter()
#if list_canales['peliculas']: #if list_canales['peliculas']:
thumbnail = get_thumb("channels_movie.png") thumbnail = get_thumb("channels_movie.png")
@@ -134,7 +134,7 @@ def get_channels_list():
channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json')
channel_language = config.get_setting("channel_language", default="all") channel_language = config.get_setting("channel_language", default="all")
if channel_language =="auto": if channel_language =="auto":
channel_language = auto_filter()[0] channel_language = auto_filter()
for infile in sorted(glob.glob(channels_path)): for infile in sorted(glob.glob(channels_path)):
channel_id = os.path.basename(infile)[:-5] channel_id = os.path.basename(infile)[:-5]
@@ -607,7 +607,7 @@ def setting_channel(item):
channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json')
channel_language = config.get_setting("channel_language", default="auto") channel_language = config.get_setting("channel_language", default="auto")
if channel_language == 'auto': if channel_language == 'auto':
channel_language = auto_filter()[0] channel_language = auto_filter()
list_controls = [] list_controls = []
+1 -1
View File
@@ -475,7 +475,7 @@ def do_search(item, categories=None):
logger.info("channels_path=%s" % channels_path) logger.info("channels_path=%s" % channels_path)
# channel_language = config.get_setting("channel_language", default="all") # channel_language = config.get_setting("channel_language", default="all")
channel_language = auto_filter()[0] channel_language = auto_filter()
logger.info("channel_language=%s" % channel_language) logger.info("channel_language=%s" % channel_language)
# Para Kodi es necesario esperar antes de cargar el progreso, de lo contrario # Para Kodi es necesario esperar antes de cargar el progreso, de lo contrario