Bugfixes italiaserie

This commit is contained in:
thepasto
2019-04-18 22:23:32 +02:00
parent cb1634da45
commit 7014a36a0f
+38 -20
View File
@@ -1,8 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# ------------------------------------------------------------ # ------------------------------------------------------------
# Ringraziamo Icarus crew
# Canale per italiaserie # Canale per italiaserie
# ---------------------------------------------------------- # ------------------------------------------------------------
import re import re
import autoplay import autoplay
@@ -16,7 +15,6 @@ from platformcode import logger
host = "https://italiaserie.org" host = "https://italiaserie.org"
list_servers = ['speedvideo'] list_servers = ['speedvideo']
list_quality = ['1080p', '720p', '480p']
IDIOMAS = {'Italiano': 'IT'} IDIOMAS = {'Italiano': 'IT'}
list_language = IDIOMAS.values() list_language = IDIOMAS.values()
@@ -27,11 +25,13 @@ def mainlist(item):
itemlist = [] itemlist = []
support.menu(itemlist, 'Ultime Uscite', 'peliculas', host + "/category/serie-tv/", "episode") support.menu(itemlist, 'Ultime Uscite', 'peliculas', host + "/category/serie-tv/", "episode")
support.menu(itemlist, 'Ultimi Episodi', 'peliculas', host + "/ultimi-episodi/", "episode", 'latest') # page not working
# support.menu(itemlist, 'Ultimi Episodi', 'peliculas', host + "/ultimi-episodi/", "episode", 'latest')
support.menu(itemlist, 'Ultimi Episodi', 'peliculas', host, "episode", 'latest')
support.menu(itemlist, 'Categorie', 'menu', host, "episode", args="Serie-Tv per Genere") support.menu(itemlist, 'Categorie', 'menu', host, "episode", args="Serie-Tv per Genere")
support.menu(itemlist, 'Cerca...', 'search', host, 'episode', args='serie') support.menu(itemlist, 'Cerca...', 'search', host, 'episode', args='serie')
autoplay.init(item.channel, list_servers, list_quality) autoplay.init(item.channel, list_servers, [])
autoplay.show_option(item.channel, itemlist) autoplay.show_option(item.channel, itemlist)
return itemlist return itemlist
@@ -63,19 +63,22 @@ def newest(categoria):
def peliculas(item): def peliculas(item):
logger.info("kod.italiaserie peliculas") support.log()
patron = r'<div class="post-thumb">\s*<a href="([^"]+)" title="([^"]+)">\s*<img src="([^"]+)"[^>]+>' patron = r'<div class="post-thumb">\s*<a href="([^"]+)" title="([^"]+)">\s*<img src="([^"]+)"[^>]+>'
list_groups = ["url", "title", "thumb"] list_groups = ["url", "title", "thumb"]
support.log(item.tojson())
if item.args == "latest": if item.args == "latest":
patron += r'.*?aj-eps">(.*?)</span>' patron += r'.*?aj-eps">(.*?)</span>'
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
matches = re.compile(patron, re.S).findall(data)
# remove when /ultimi-episodi page will work again
block = scrapertools.find_single_match(data, r'<ul class="recent-posts">(.*?)<\/ul>')
matches = re.compile(patron, re.S).findall(block)
itemlist = [] itemlist = []
for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedep in matches: for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedep in matches:
s, ep = scrapertools.find_single_match(scrapedep, r'(\d+)x(\d+)\s')
itemlist.append( itemlist.append(
Item(channel=item.channel, Item(channel=item.channel,
action="seasons", action="seasons",
@@ -85,7 +88,7 @@ def peliculas(item):
show=scrapedtitle, show=scrapedtitle,
url=scrapedurl, url=scrapedurl,
extra=item.extra, extra=item.extra,
args=scrapedep args={"season": s, "episode": ep}
)) ))
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
@@ -96,7 +99,7 @@ def peliculas(item):
def search(item, texto): def search(item, texto):
logger.info("[italiaserie.py] " + item.url + " search " + texto) support.log("s=", texto)
item.url = host + "/?s=" + texto item.url = host + "/?s=" + texto
try: try:
return peliculas(item) return peliculas(item)
@@ -109,42 +112,57 @@ def search(item, texto):
def menu(item): def menu(item):
support.log()
patron = r'<li class="cat-item.*?href="([^"]+)".*?>(.*?)</a>' patron = r'<li class="cat-item.*?href="([^"]+)".*?>(.*?)</a>'
return support.scrape(item, patron, ["url", "title"], action="peliculas") return support.scrape(item, patron, ["url", "title"], action="peliculas")
def seasons(item): def seasons(item):
support.log()
patron = r'<div class="su-spoiler.*?</i>(.*?)</div>\s+<div class="su-spoiler-content"(.*?)="clearfix">' patron = r'<div class="su-spoiler.*?</i>(.*?)</div>\s+<div class="su-spoiler-content"(.*?)="clearfix">'
itemlist = support.scrape(item, patron, ["title", "url"], action="episodios") itemlist = support.scrape(item, patron, ["title", "url"], action="episodios")
if item.args != "": if item.args:
s, ep = scrapertools.find_single_match(item.args, r'(\d+)x(\d+)\s') s = item.args["season"]
s = (int(s) - 1) s = (int(s) - 1)
lastitem = itemlist[s] lastitem = itemlist[s]
lastitem.args = ep lastitem.args = {"episode": item.args["episode"]}
return episodios(lastitem) return episodios(lastitem)
return itemlist return itemlist[:-1]
def episodios(item): def episodios(item):
support.log()
season = item.fulltitle
patron = r'<div class="su-link-ep">\s+<a.*?href="([^"]+)".*?strong>(.*?)</' patron = r'<div class="su-link-ep">\s+<a.*?href="([^"]+)".*?strong>(.*?)</'
if item.args != "": if item.args:
ep = int(item.args) ep = int(item.args["episode"])
patron = r'<div class="su-link-ep">\s+<a.*?href="([^"]+)".*?strong>\s(Episodio ' + str(ep) + r') .*?</' patron = r'<div class="su-link-ep">\s+<a.*?href="([^"]+)".*?strong>\s(Episodio ' + str(ep) + r') .*?</'
return support.scrape(item, patron, ["url", "title"], data=item.url) itemlist = support.scrape(item, patron, ["url", "title"], data=item.url)
if item.args:
itemlist = itemlist[:-1]
for it in itemlist:
if it.action == "findvideos":
season_n = season.lower().replace("stagione", "").strip()
ep_n = scrapertools.find_single_match(it.title, r'Episodio\s+(\d+)')
it.title = season_n + "x" + str(ep_n).zfill(2) + re.sub(r"Episodio\s+" + ep_n, "", it.title)
return itemlist
def findvideos(item): def findvideos(item):
support.log() support.log()
itemlist = support.server(item, data=item.url) itemlist = support.server(item, data=item.url)
itemlist = filtertools.get_links(itemlist, item, list_language) itemlist = filtertools.get_links(itemlist, item, list_language)
autoplay.start(itemlist, item) autoplay.start(itemlist, item)
support.videolibrary(itemlist, item, 'color blue bold')
return itemlist return itemlist