piccoli fix

This commit is contained in:
marco
2020-12-28 17:30:09 +01:00
parent 61ee2dc1c6
commit 67ffce6ede
5 changed files with 41 additions and 30 deletions
+15 -6
View File
@@ -93,11 +93,14 @@ def episodios(item):
patron = r'<a target=(?P<url>[^>]+>(?P<title>Episodio\s(?P<episode>\d+))(?::)?(?:(?P<title2>[^<]+))?.*?(?:<br|</p))' patron = r'<a target=(?P<url>[^>]+>(?P<title>Episodio\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">)' 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' item.contentType = 'tvshow'
else:# item.extra == 'serie': elif item.args == 'serie':
support.info("Serie :", item) support.info("Serie :", item)
patron = r'(?:>| )(?P<episode>\d+(?:x|×|&#215;)\d+)[;]?[ ]?(?:(?P<title>[^<-]+)(?P<data>.*?)|(\2[ ])(?:<(\3.*?)))(?:</a><br /|</a></p|$)' patron = r'(?:>| )(?P<episode>\d+(?:x|×|&#215;)\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)' 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' item.contentType = 'tvshow'
else:
patron = r'(?P<title>\s*[0-9]{2}/[0-9]{2}/[0-9]{4})(?P<data>.*?)<br'
def itemHook(item): def itemHook(item):
if not scrapertools.find_single_match(item.title, r'(\d+x\d+)'): if not scrapertools.find_single_match(item.title, r'(\d+x\d+)'):
item.title = re.sub(r'(\d+) -', '1x\\1', item.title) item.title = re.sub(r'(\d+) -', '1x\\1', item.title)
@@ -156,24 +159,30 @@ def check(item):
support.info() support.info()
data = support.match(item.url, headers=headers).data data = support.match(item.url, headers=headers).data
if 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+(?:&#215;|×)?\d+\-\d+|\d+(?:&#215;|×)\d+').match: if ck == 'serie tv':
item.contentType = 'tvshow' item.contentType = 'tvshow'
item.args = 'serie'
item.data = data item.data = data
return episodios(item) return episodios(item)
elif blockAnime and ('episodio' in blockAnime.lower() or 'saga' in blockAnime.lower()): elif ck == 'anime':
item.contentType = 'tvshow' item.contentType = 'tvshow'
item.args = 'anime' item.args = 'anime'
item.data = blockAnime item.data = data
return episodios(item) return episodios(item)
else: elif ck == 'film':
item.contentType = 'movie' item.contentType = 'movie'
item.data = data item.data = data
return findvideos(item) return findvideos(item)
else:
item.contentType = 'tvshow'
item.data = data
return episodios(item)
def findvideos(item): def findvideos(item):
support.info() support.info()
+2 -3
View File
@@ -85,12 +85,11 @@ def peliculas(item):
item.contentType = 'episode' item.contentType = 'episode'
return item return item
else: 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=[\'"]([^\'"]+)[\'"]' patronNext = '<span class="current">[^<]+<[^>]+><a href=[\'"]([^\'"]+)[\'"]'
#support.regexDbg(item, patron, headers) #support.regexDbg(item, patron, headers)
#debug = True # debug = True
return locals() return locals()
+1 -1
View File
@@ -21,7 +21,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
'NORMAL':2, 'NORMAL':2,
'HD':3} 'HD':3}
data = httptools.downloadpage(page_url).data 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:[^\"]\"([^\"]+)\"") media_urls = scrapertools.find_multiple_matches(data, r"file:[^']'([^']+)',\s*label:[^\"]\"([^\"]+)\"")
logger.debug("speed video - media urls: %s " % media_urls) logger.debug("speed video - media urls: %s " % media_urls)
+13 -19
View File
@@ -1,35 +1,29 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector Streamz By Alfa development Group
# --------------------------------------------------------
import re import re
from core import httptools from core import httptools
from core import scrapertools
from platformcode import logger, config from platformcode import logger, config
from lib import jsunpack
def test_video_exists(page_url): def test_video_exists(page_url):
global data global data
logger.debug("(page_url='%s')" % page_url) logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data data = httptools.downloadpage(page_url)
if "<font color=\"red\"><b>File not found, sorry!" in data: if "<b>File not found, sorry!</b" in data.data:
return False, config.get_localized_string(70449) % "streamZ" return False, config.get_localized_string(70449) % "streamz"
return True, "" return True, ""
def get_video_url(page_url, video_password): def get_video_url(page_url, video_password=""):
logger.debug("(page_url='%s')" % page_url) logger.info("(page_url='%s')" % page_url)
video_urls = [] 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 url = re.sub(r'(\.\w{2,3})/\w', '\\1/getlink-', data.url) + '.dll'
url += "|User-Agent=%s" % httptools.get_user_agent()
for url in urls: video_urls.append([".mp4 [Streamz]", url])
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])
return video_urls return video_urls
+10 -1
View File
@@ -28,6 +28,15 @@ if 'KOD_TST_CH' not in os.environ:
xbmc.get_add_on_info_from_calling_script = add_on_info 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 HtmlTestRunner
import parameterized import parameterized
@@ -95,7 +104,7 @@ chNumRis = {
'Serie TV': 30 'Serie TV': 30
}, },
'italiaserie': { 'italiaserie': {
'Serie TV': 20 'Serie TV': 15
}, },
'casacinemaInfo': { 'casacinemaInfo': {
'Film': 150 'Film': 150