toonitalia: fix scraper and voe server

This commit is contained in:
ilmich
2024-07-21 09:43:31 +02:00
parent 7d641bf83f
commit f1d055d4fa
2 changed files with 9 additions and 8 deletions

View File

@@ -71,7 +71,8 @@ def check(item):
def episodios(item): def episodios(item):
anime = True anime = True
item.contentType = 'tvshow' item.contentType = 'tvshow'
patron = r'>\s*(?:(?P<season>\d+)(?:&#215;|x|×))?(?P<episode>\d+)(?:\s+&#8211;\s+)?[ ]+(?P<title>[^<]+)[ ]+<a (?P<data>.*?)(?:<br|</p)' patron = r'>\s*(?:(?P<season>\d+)(?:&#215;|x|×))?(?P<episode>\d+)-*\d*(?:\s+&#8211;\s+)?[ ]+(?P<title>[^<]+)[ ]+<a (?P<data>.*?)(?:<br|</p)'
return locals() return locals()

View File

@@ -3,7 +3,7 @@
# -*- Created for Alfa-addon -*- # -*- Created for Alfa-addon -*-
# -*- By the Alfa Develop Group -*- # -*- By the Alfa Develop Group -*-
from core import httptools from core import httptools, support
from core import scrapertools from core import scrapertools
from platformcode import logger from platformcode import logger
from platformcode import config from platformcode import config
@@ -18,6 +18,10 @@ def test_video_exists(page_url):
global data global data
logger.info("(page_url='%s')" % page_url) logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data data = httptools.downloadpage(page_url).data
redirect_url = support.match(data, patron=r"}\s}\selse\s{\swindow.location.href\s=\s'(http[^']+)'").match
if redirect_url:
data = httptools.downloadpage(redirect_url).data
if "File not found" in data or "File is no longer available" in data: if "File not found" in data or "File is no longer available" in data:
return False, config.get_localized_string(70449) % "VOE" return False, config.get_localized_string(70449) % "VOE"
@@ -26,14 +30,10 @@ def test_video_exists(page_url):
def get_video_url(page_url, premium=False, user="", password="", video_password=""): def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("(page_url='%s')" % page_url) logger.info("(page_url='%s')" % page_url)
from core import support
# support.dbg()
video_urls = [] video_urls = []
video_srcs = support.match(data, patron=r"src: '([^']+)'") video_srcs = support.match(data, patron=r"src: '([^']+)'")
video_srcs = scrapertools.find_multiple_matches(data, r"src: '([^']+)'") video_srcs = scrapertools.find_multiple_matches(data, r"src: '([^']+)'")
if not video_srcs: if not video_srcs:
# bloque = scrapertools.find_single_match(data, "sources.*?\}")
# video_srcs = support.match(bloque, patron=': "([^"]+)', debug=True)
video_srcs = support.match(data, patronBlock=r'sources [^\{]+{([^}]+)', patron=r'''['"]([^'"]+)[^:]+: ['"]([^'"]+)['"]''').matches video_srcs = support.match(data, patronBlock=r'sources [^\{]+{([^}]+)', patron=r'''['"]([^'"]+)[^:]+: ['"]([^'"]+)['"]''').matches
for ext, url in video_srcs: for ext, url in video_srcs:
video_urls.append([ext + " [Voe]", base64.b64decode(url).decode()]) video_urls.append([ext + " [Voe]", base64.b64decode(url).decode()])