From 67ffce6ede53d2ef736bb4c99df55fd2d7dd823b Mon Sep 17 00:00:00 2001 From: marco <10120390+mac12m99@users.noreply.github.com> Date: Mon, 28 Dec 2020 17:30:09 +0100 Subject: [PATCH] piccoli fix --- channels/cinemalibero.py | 21 ++++++++++++++------ channels/ilgeniodellostreaming.py | 5 ++--- servers/speedvideo.py | 2 +- servers/streamz.py | 32 +++++++++++++------------------ tests/test_generic.py | 11 ++++++++++- 5 files changed, 41 insertions(+), 30 deletions(-) diff --git a/channels/cinemalibero.py b/channels/cinemalibero.py index b935f3ee..ce6d70e2 100644 --- a/channels/cinemalibero.py +++ b/channels/cinemalibero.py @@ -93,11 +93,14 @@ def episodios(item): patron = r'[^>]+>(?PEpisodio\s(?P<episode>\d+))(?::)?(?:(?P<title2>[^<]+))?.*?(?:<br|</p))' patronBlock = r'(?:Stagione (?P<season>\d+))?(?:</span><br />|</span></p>|strong></p>)(?P<block>.*?)(?:<div style="margin-left|<span class="txt_dow">)' item.contentType = 'tvshow' - else:# item.extra == 'serie': + elif item.args == 'serie': support.info("Serie :", item) patron = r'(?:>| )(?P<episode>\d+(?:x|×|×)\d+)[;]?[ ]?(?:(?P<title>[^<–-]+)(?P<data>.*?)|(\2[ ])(?:<(\3.*?)))(?:</a><br /|</a></p|$)' patronBlock = r'>(?:[^<]+[Ss]tagione\s|[Ss]tagione [Uu]nica)(?:(?P<lang>iTA|ITA|Sub-ITA|Sub-iTA))?.*?</strong>(?P<block>.+?)(?:<strong|<div class="at-below)' item.contentType = 'tvshow' + else: + patron = r'(?P<title>\s*[0-9]{2}/[0-9]{2}/[0-9]{4})(?P<data>.*?)<br' + def itemHook(item): if not scrapertools.find_single_match(item.title, r'(\d+x\d+)'): item.title = re.sub(r'(\d+) -', '1x\\1', item.title) @@ -156,24 +159,30 @@ def check(item): support.info() data = support.match(item.url, headers=headers).data if data: - blockAnime = support.match(data, patron=r'<div id="container" class="container">(.+?<div style="margin-left)').match + ck = support.match(data, patron=r'Supportaci condividendo quest[oa] ([^:]+)').match.lower() - if support.match(blockAnime, patron=r'\d+(?:×|×)?\d+\-\d+|\d+(?:×|×)\d+').match: + if ck == 'serie tv': item.contentType = 'tvshow' + item.args = 'serie' item.data = data return episodios(item) - elif blockAnime and ('episodio' in blockAnime.lower() or 'saga' in blockAnime.lower()): + elif ck == 'anime': item.contentType = 'tvshow' item.args = 'anime' - item.data = blockAnime + item.data = data return episodios(item) - else: + elif ck == 'film': item.contentType = 'movie' item.data = data return findvideos(item) + else: + item.contentType = 'tvshow' + item.data = data + return episodios(item) + def findvideos(item): support.info() diff --git a/channels/ilgeniodellostreaming.py b/channels/ilgeniodellostreaming.py index a6d73698..1baa525f 100644 --- a/channels/ilgeniodellostreaming.py +++ b/channels/ilgeniodellostreaming.py @@ -85,12 +85,11 @@ def peliculas(item): item.contentType = 'episode' return item else: - patron = r'<div class="poster">\s?<a href="(?P<url>[^"]+)"><img src="(?P<thumb>[^"]+)" alt="[^"]+"><\/a>[^>]+>[^>]+>[^>]+> (?P<rating>[0-9.]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>.+?)[ ]?(?:\[(?P<lang>Sub-ITA|Sub-ita)\])?<[^>]+>[^>]+>[^>]+>(?P<year>[^<]+)(?:<.*?<div class="texto">(?P<plot>[^<]+))?' - + patron = r'<div class="poster">\s?<a href="(?P<url>[^"]+)"><img src="(?P<thumb>[^"]+)" alt="[^"]+"><\/a>[^>]+>[^>]+>[^>]+> (?P<rating>[0-9.]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>.+?)[ ]?(?:\[(?P<lang>Sub-ITA|Sub-ita)\])?<[^>]+>[^>]+>[^>]+>(?P<year>[0-9]{4})?[^<]*(?:<.*?<div class="texto">(?P<plot>[^<]+))?' patronNext = '<span class="current">[^<]+<[^>]+><a href=[\'"]([^\'"]+)[\'"]' #support.regexDbg(item, patron, headers) - #debug = True + # debug = True return locals() diff --git a/servers/speedvideo.py b/servers/speedvideo.py index 4f4d50a2..3b4d5a5a 100644 --- a/servers/speedvideo.py +++ b/servers/speedvideo.py @@ -21,7 +21,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= 'NORMAL':2, 'HD':3} data = httptools.downloadpage(page_url).data - logger.debug('SPEEDVIDEO DATA '+ data) + # logger.debug('SPEEDVIDEO DATA '+ data) media_urls = scrapertools.find_multiple_matches(data, r"file:[^']'([^']+)',\s*label:[^\"]\"([^\"]+)\"") logger.debug("speed video - media urls: %s " % media_urls) diff --git a/servers/streamz.py b/servers/streamz.py index ac0fb568..099f174b 100644 --- a/servers/streamz.py +++ b/servers/streamz.py @@ -1,35 +1,29 @@ # -*- coding: utf-8 -*- +# -------------------------------------------------------- +# Conector Streamz By Alfa development Group +# -------------------------------------------------------- + import re from core import httptools -from core import scrapertools from platformcode import logger, config -from lib import jsunpack def test_video_exists(page_url): global data - logger.debug("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data + logger.info("(page_url='%s')" % page_url) + data = httptools.downloadpage(page_url) - if "<font color=\"red\"><b>File not found, sorry!" in data: - return False, config.get_localized_string(70449) % "streamZ" + if "<b>File not found, sorry!</b" in data.data: + return False, config.get_localized_string(70449) % "streamz" return True, "" -def get_video_url(page_url, video_password): - logger.debug("(page_url='%s')" % page_url) +def get_video_url(page_url, video_password=""): + logger.info("(page_url='%s')" % page_url) video_urls = [] - from core.support import match - matches = match(data, patron=r'(eval\(function\(p,a,c,k,e,d\).*?)\s+</script>').matches - unpacked = '' - for packed in matches: - unpacked += jsunpack.unpack(packed) + '\n' - urls = match(unpacked, patron=r"videojs\d+[^;]+[^']+'[^']+'[^']+'(https://streamz.*?/get.*?.dll)").matches - - for url in urls: - url = url + "|User-Agent=%s" % httptools.get_user_agent() - if not video_urls or url not in video_urls[-1]: - video_urls.append(["[streamZ]", url]) + url = re.sub(r'(\.\w{2,3})/\w', '\\1/getlink-', data.url) + '.dll' + url += "|User-Agent=%s" % httptools.get_user_agent() + video_urls.append([".mp4 [Streamz]", url]) return video_urls \ No newline at end of file diff --git a/tests/test_generic.py b/tests/test_generic.py index befde289..483ec1a8 100644 --- a/tests/test_generic.py +++ b/tests/test_generic.py @@ -28,6 +28,15 @@ if 'KOD_TST_CH' not in os.environ: xbmc.get_add_on_info_from_calling_script = add_on_info +# functions that on kodi 19 moved to xbmcvfs +try: + import xbmcvfs + xbmc.translatePath = xbmcvfs.translatePath + xbmc.validatePath = xbmcvfs.validatePath + xbmc.makeLegalFilename = xbmcvfs.makeLegalFilename +except: + pass + import HtmlTestRunner import parameterized @@ -95,7 +104,7 @@ chNumRis = { 'Serie TV': 30 }, 'italiaserie': { - 'Serie TV': 20 + 'Serie TV': 15 }, 'casacinemaInfo': { 'Film': 150