allineamento al master kod del 26 maggio 2019

This commit is contained in:
greko
2019-05-26 02:20:21 +02:00
parent a340b6f054
commit cd1640acda
67 changed files with 637 additions and 418 deletions
+2 -4
View File
@@ -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']
+4
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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)