allineamento al master kod del 26 maggio 2019
This commit is contained in:
@@ -42,8 +42,7 @@ def get_channel_parameters(channel_name):
|
||||
channel_parameters["language"] = channel_parameters.get("language", ["all"])
|
||||
channel_parameters["adult"] = channel_parameters.get("adult", False)
|
||||
channel_parameters["active"] = channel_parameters.get("active", False)
|
||||
channel_parameters["include_in_global_search"] = channel_parameters.get("include_in_global_search",
|
||||
False)
|
||||
channel_parameters["include_in_global_search"] = channel_parameters.get("include_in_global_search", False)
|
||||
channel_parameters["categories"] = channel_parameters.get("categories", list())
|
||||
|
||||
channel_parameters["thumbnail"] = channel_parameters.get("thumbnail", "")
|
||||
@@ -87,8 +86,7 @@ def get_channel_parameters(channel_name):
|
||||
channel_parameters["include_in_global_search"] = True
|
||||
elif s['id'] == "filter_languages":
|
||||
channel_parameters["filter_languages"] = s.get('lvalues',[])
|
||||
elif not s['id'].startswith("include_in_") and \
|
||||
(s.get('enabled', False) or s.get('visible', False)):
|
||||
elif s['id'].startswith("include_in_"):
|
||||
channel_parameters["has_settings"] = True
|
||||
|
||||
del channel_parameters['settings']
|
||||
|
||||
@@ -365,6 +365,9 @@ def get_season_and_episode(title):
|
||||
@return: Numero de temporada y episodio en formato "1x01" o cadena vacia si no se han encontrado
|
||||
"""
|
||||
filename = ""
|
||||
# 4l3x87 - fix for series example 9-1-1
|
||||
# original_title = title
|
||||
# title = title.replace('9-1-1','')
|
||||
|
||||
patrons = ["(\d+)\s*[x-]\s*(\d+)", "(\d+)\s*×\s*(\d+)", "(?:s|t)(\d+)e(\d+)",
|
||||
"(?:season|temp|stagione\w*)\s*(\d+)\s*(?:capitulo|epi|episode|episodio\w*)\s*(\d+)"]
|
||||
@@ -372,6 +375,7 @@ def get_season_and_episode(title):
|
||||
for patron in patrons:
|
||||
try:
|
||||
matches = re.compile(patron, re.I).search(title)
|
||||
|
||||
if matches:
|
||||
if len(matches.group(1)) == 1:
|
||||
filename = matches.group(1) + "x" + matches.group(2).zfill(2)
|
||||
|
||||
+3
-30
@@ -16,8 +16,6 @@ from platformcode import config, logger
|
||||
from platformcode import platformtools
|
||||
from servers.decrypters import zcrypt
|
||||
|
||||
from specials import autoplay # by greko
|
||||
|
||||
dict_servers_parameters = {}
|
||||
|
||||
|
||||
@@ -35,7 +33,7 @@ def find_video_items(item=None, data=None):
|
||||
@return: devuelve el itemlist con los resultados
|
||||
@rtype: list
|
||||
"""
|
||||
logger.info("ITEM DATA : %s" % item)
|
||||
logger.info()
|
||||
itemlist = []
|
||||
|
||||
# Descarga la página
|
||||
@@ -60,29 +58,6 @@ def find_video_items(item=None, data=None):
|
||||
itemlist.append(
|
||||
item.clone(title=title, action="play", url=url, thumbnail=thumbnail, server=server, folder=False))
|
||||
|
||||
"""
|
||||
fix by Greko inizio
|
||||
Controllo su tutti i canali:
|
||||
- se i link sono validi per tutti i canali
|
||||
- autoplay
|
||||
- aggiungi in videoteca
|
||||
non c'è bisogno dei controlli nel file[.json, py] del canale
|
||||
"""
|
||||
itemlist = check_list_links(itemlist)
|
||||
|
||||
########## Da risolvere
|
||||
# Per AutoPlay
|
||||
autoplay.start(itemlist, item)
|
||||
|
||||
# Decommentare per la voce aggiungi alla videoteca di tutti i canali
|
||||
# non funziona se il canale ha una def findvideos()
|
||||
if item.extra != "library" and item.contentType != 'episode':
|
||||
itemlist.append(Item(channel=item.channel, title="Aggiungi alla Videoteca",
|
||||
action="add_pelicula_to_library", url=item.url,
|
||||
contentTitle=item.contentTitle, infoLabels = item.infoLabels
|
||||
))
|
||||
# fix by Greko fine
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
@@ -145,7 +120,7 @@ def get_servers_itemlist(itemlist, fnc=None, sort=False):
|
||||
# Ordenar segun favoriteslist si es necesario
|
||||
if sort:
|
||||
itemlist = sort_servers(itemlist)
|
||||
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
@@ -181,7 +156,7 @@ def findvideos(data, skip=False):
|
||||
if config.get_setting("filter_servers") == False: is_filter_servers = False
|
||||
if not devuelve and is_filter_servers:
|
||||
platformtools.dialog_ok(config.get_localized_string(60000), config.get_localized_string(60001))
|
||||
|
||||
|
||||
return devuelve
|
||||
|
||||
|
||||
@@ -208,8 +183,6 @@ def findvideosbyserver(data, serverid):
|
||||
devuelve.append(value)
|
||||
logger.info(msg)
|
||||
|
||||
|
||||
|
||||
return devuelve
|
||||
|
||||
|
||||
|
||||
+29
-34
@@ -61,15 +61,7 @@ def hdpass_get_servers(item):
|
||||
url=url_decode(media_url)))
|
||||
log("video -> ", res_video)
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', item.channel)
|
||||
__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', item.channel)
|
||||
|
||||
if __comprueba_enlaces__:
|
||||
itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__)
|
||||
if xbmcaddon.Addon('plugin.video.kod').getSetting('checklinks'):
|
||||
itemlist = servertools.check_list_links(itemlist, xbmcaddon.Addon('plugin.video.kod').getSetting('checklinks_number'))
|
||||
|
||||
return itemlist
|
||||
return controls(itemlist, item, AutoPlay=True, CheckLinks=True)
|
||||
|
||||
|
||||
def url_decode(url_enc):
|
||||
@@ -141,7 +133,7 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data=""
|
||||
blocks = scrapertoolsV2.find_multiple_matches(block, regex)
|
||||
block = ""
|
||||
for b in blocks:
|
||||
block += "\n" + str(b) # by greko
|
||||
block += "\n" + b
|
||||
log('BLOCK ', n, '=', block)
|
||||
else:
|
||||
block = data
|
||||
@@ -149,7 +141,7 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data=""
|
||||
matches = scrapertoolsV2.find_multiple_matches(block, patron)
|
||||
log('MATCHES =', matches)
|
||||
|
||||
known_keys = ['url', 'title', 'episode', 'thumb', 'quality', 'year', 'plot', 'duration', 'genere', 'rating', 'lang'] #by greko aggiunto episode + lang
|
||||
known_keys = ['url', 'title', 'episode', 'thumb', 'quality', 'year', 'plot', 'duration', 'genere', 'rating'] #by greko aggiunto episode
|
||||
for match in matches:
|
||||
if len(listGroups) > len(match): # to fix a bug
|
||||
match = list(match)
|
||||
@@ -165,19 +157,12 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data=""
|
||||
title = scrapertoolsV2.decodeHtmlentities(scraped["title"]).strip()
|
||||
plot = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["plot"]))
|
||||
|
||||
# modificato by Greko inizio
|
||||
longtitle = '[B]' + title + '[/B] '
|
||||
if scraped["quality"]:
|
||||
longtitle += '[COLOR blue][' + scraped["quality"] + '][/COLOR]'#'[B]' + title + '[/B] - [B]' + scraped["episode"] + '[/B][COLOR blue][' + scraped["quality"] + '][/COLOR]' # by greko aggiunto episode
|
||||
if scraped["episode"]:
|
||||
longtitle += '[B]' + scraped["episode"] + '[/B]'#'[B]' + title + '[/B] - [B]' + scraped["episode"] + '[/B]'
|
||||
if scraped["lang"]:
|
||||
if 'sub' in scraped["lang"].lower():
|
||||
lang = 'Sub-ITA'
|
||||
else:
|
||||
lang = 'ITA'
|
||||
longtitle += '[COLOR blue][ ' + lang + ' ][/COLOR]'
|
||||
# modificato by Greko fine
|
||||
if scraped["quality"] and scraped["episode"]: # by greko aggiunto episode
|
||||
longtitle = '[B]' + title + '[/B] - [B]' + scraped["episode"] + '[/B][COLOR blue][' + scraped["quality"] + '][/COLOR]' # by greko aggiunto episode
|
||||
elif scraped["episode"]: # by greko aggiunto episode
|
||||
longtitle = '[B]' + title + '[/B] - [B]' + scraped["episode"] + '[/B]' # by greko aggiunto episode
|
||||
else:
|
||||
longtitle = '[B]' + title + '[/B]'
|
||||
|
||||
if item.infoLabels["title"] or item.fulltitle: # if title is set, probably this is a list of episodes or video sources
|
||||
infolabels = item.infoLabels
|
||||
@@ -508,11 +493,6 @@ def nextPage(itemlist, item, data, patron, function_level=1):
|
||||
return itemlist
|
||||
|
||||
def server(item, data='', headers='', AutoPlay=True, CheckLinks=True):
|
||||
|
||||
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', item.channel)
|
||||
log(__comprueba_enlaces__ )
|
||||
__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', item.channel)
|
||||
log(__comprueba_enlaces_num__ )
|
||||
|
||||
if not data:
|
||||
data = httptools.downloadpage(item.url, headers=headers).data
|
||||
@@ -527,14 +507,29 @@ def server(item, data='', headers='', AutoPlay=True, CheckLinks=True):
|
||||
videoitem.channel = item.channel
|
||||
videoitem.contentType = item.contentType
|
||||
|
||||
if __comprueba_enlaces__ and CheckLinks:
|
||||
itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__)
|
||||
if xbmcaddon.Addon('plugin.video.kod').getSetting('checklinks'):
|
||||
itemlist = servertools.check_list_links(itemlist, xbmcaddon.Addon('plugin.video.kod').getSetting('checklinks_number'))
|
||||
return controls(itemlist, item, AutoPlay, CheckLinks)
|
||||
|
||||
def controls(itemlist, item, AutoPlay=True, CheckLinks=True):
|
||||
from core import jsontools
|
||||
from platformcode.config import get_setting
|
||||
CL = get_setting('checklinks') or get_setting('checklinks', item.channel)
|
||||
autoplay_node = jsontools.get_node_from_file('autoplay', 'AUTOPLAY')
|
||||
channel_node = autoplay_node.get(item.channel, {})
|
||||
settings_node = channel_node.get('settings', {})
|
||||
AP = get_setting('autoplay') or settings_node['active']
|
||||
if CL and not AP:
|
||||
if get_setting('checklinks', item.channel):
|
||||
checklinks = get_setting('checklinks', item.channel)
|
||||
else:
|
||||
checklinks = get_setting('checklinks')
|
||||
if get_setting('checklinks_number', item.channel):
|
||||
checklinks_number = get_setting('checklinks_number', item.channel)
|
||||
else:
|
||||
checklinks_number = get_setting('checklinks_number')
|
||||
itemlist = servertools.check_list_links(itemlist, checklinks_number)
|
||||
|
||||
if AutoPlay == True:
|
||||
autoplay.start(itemlist, item)
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
|
||||
+16
-2
@@ -324,8 +324,9 @@ def set_infoLabels_item(item, seekTmdb=True, idioma_busqueda=def_lang, lock=None
|
||||
|
||||
__leer_datos(otmdb_global)
|
||||
|
||||
if lock and lock.locked():
|
||||
lock.release()
|
||||
# 4l3x87 - fix for overlap infoLabels if there is episode or season
|
||||
# if lock and lock.locked():
|
||||
# lock.release()
|
||||
|
||||
if item.infoLabels['episode']:
|
||||
try:
|
||||
@@ -354,6 +355,10 @@ def set_infoLabels_item(item, seekTmdb=True, idioma_busqueda=def_lang, lock=None
|
||||
item.infoLabels['rating'] = episodio['episodio_vote_average']
|
||||
item.infoLabels['votes'] = episodio['episodio_vote_count']
|
||||
|
||||
# 4l3x87 - fix for overlap infoLabels if there is episode or season
|
||||
if lock and lock.locked():
|
||||
lock.release()
|
||||
|
||||
return len(item.infoLabels)
|
||||
|
||||
else:
|
||||
@@ -374,8 +379,17 @@ def set_infoLabels_item(item, seekTmdb=True, idioma_busqueda=def_lang, lock=None
|
||||
if temporada['poster_path']:
|
||||
item.infoLabels['poster_path'] = 'http://image.tmdb.org/t/p/original' + temporada['poster_path']
|
||||
item.thumbnail = item.infoLabels['poster_path']
|
||||
|
||||
# 4l3x87 - fix for overlap infoLabels if there is episode or season
|
||||
if lock and lock.locked():
|
||||
lock.release()
|
||||
|
||||
return len(item.infoLabels)
|
||||
|
||||
# 4l3x87 - fix for overlap infoLabels if there is episode or season
|
||||
if lock and lock.locked():
|
||||
lock.release()
|
||||
|
||||
# Buscar...
|
||||
else:
|
||||
otmdb = copy.copy(otmdb_global)
|
||||
|
||||
Reference in New Issue
Block a user