diff --git a/plugin.video.alfa/channels/italiaserie.json b/plugin.video.alfa/channels/italiaserie.json index ce9d7686..ba094b25 100644 --- a/plugin.video.alfa/channels/italiaserie.json +++ b/plugin.video.alfa/channels/italiaserie.json @@ -1,7 +1,7 @@ { "id": "italiaserie", "name": "Italia Serie", - "active": false, + "active": true, "adult": false, "language": ["ita"], "thumbnail": "https:\/\/raw.githubusercontent.com\/Zanzibar82\/images\/master\/posters\/italiaserie.png", diff --git a/plugin.video.alfa/channels/italiaserie.py b/plugin.video.alfa/channels/italiaserie.py index 073f522a..0c94e5d9 100644 --- a/plugin.video.alfa/channels/italiaserie.py +++ b/plugin.video.alfa/channels/italiaserie.py @@ -1,37 +1,37 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------ -# Ringraziamo Icarus crew # Canale per italiaserie -# ---------------------------------------------------------- +# ------------------------------------------------------------ import re -import urlparse -from core import httptools, scrapertools, servertools -from core.item import Item +import autoplay +import filtertools +import support +from core import httptools, scrapertools from core import tmdb -from lib import unshortenit -from platformcode import config, logger +from core.item import Item +from platformcode import logger host = "https://italiaserie.org" +list_servers = ['speedvideo'] + +IDIOMAS = {'Italiano': 'IT'} +list_language = IDIOMAS.values() + def mainlist(item): - logger.info("kod.italiaserie mainlist") - itemlist = [Item(channel=item.channel, - title="[COLOR azure]Aggiornamenti Serie TV[/COLOR]", - action="peliculas", - url=host, - thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"), - Item(channel=item.channel, - title="[COLOR azure]Ultimi Episodi[/COLOR]", - action="latestep", - url="%s/aggiornamento-episodi/" % host, - thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"), - Item(channel=item.channel, - title="[COLOR yellow]Cerca...[/COLOR]", - action="search", - extra="tvshow", - thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search")] + support.log() + itemlist = [] + + support.menu(itemlist, 'Ultime Uscite', 'peliculas', host + "/category/serie-tv/", "episode") + support.menu(itemlist, 'Ultimi Episodi', 'peliculas', host + "/ultimi-episodi/", "episode", 'latest') + support.menu(itemlist, 'Categorie', 'menu', host, "episode", args="Serie-Tv per Genere") + support.menu(itemlist, 'Cerca...', 'search', host, 'episode', args='serie') + + autoplay.init(item.channel, list_servers, []) + autoplay.show_option(item.channel, itemlist) + return itemlist @@ -41,11 +41,13 @@ def newest(categoria): item = Item() try: if categoria == "series": - item.url = "%s/aggiornamento-episodi/" % host - item.action = "latestep" - itemlist = latestep(item) + item.url = host + "/ultimi-episodi/" + item.action = "peliculas" + item.args = "latest" + item.contentType = "episode" + itemlist = peliculas(item) - if itemlist[-1].action == "latestep": + if itemlist[-1].action == "peliculas": itemlist.pop() # Continua la ricerca in caso di errore @@ -58,110 +60,46 @@ def newest(categoria): return itemlist -def latestep(item): - itemlist = [] - - data = httptools.downloadpage(item.url).data - blocco = scrapertools.find_single_match(data, - r'

Aggiornamento Episodi

\s*
(.*?)

 

') - patron = r'(?:]+>||)(]*>([^<]+)<\/a>' - matches = re.compile(patron, re.DOTALL).findall(blocco) - - for scrapedtitle, scrapedurl, scraped_number_and_title in matches: - scrapedlang = scrapertools.find_single_match(scraped_number_and_title, r'(SUB-ITA)') - scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle).replace(scrapedlang, scrapedlang) - scrapedtitle = scrapertools.htmlclean(scrapedtitle).strip() - fulltitle = scrapedtitle.replace("–", "").replace(' ', '').strip() - - scraped_number_and_title = scrapertools.decodeHtmlentities(scraped_number_and_title.replace('×', 'x')) - seasonandep = scrapertools.find_single_match(scraped_number_and_title, r'(\d+x[0-9\-?]+)') - extra = r'%s(.*?)(?:|

)' - - # Multi Ep - if re.compile(r'[,-]\s*\d+', re.DOTALL).findall(scraped_number_and_title): - season = scrapertools.find_single_match(scraped_number_and_title, r'(\d+x)') - scraped_number_and_title = scraped_number_and_title.split(',') - for ep in scraped_number_and_title: - ep = (season + ep if season not in ep else ep).strip() - seasonandep = scrapertools.find_single_match(ep, r'(\d+x[0-9\-?]+)') - completetitle = "%s %s" % (scrapedtitle, ep) - - itemlist.append( - Item(channel=item.channel, - action="findepvideos", - title=completetitle, - contentSerieName=completetitle, - fulltitle=fulltitle, - url=scrapedurl, - extra=extra % seasonandep.replace('x', '×'), - folder=True)) - continue - - # Ep singolo - correct_scraped_number = seasonandep.replace('x', '×') - extra = extra % (correct_scraped_number) - completetitle = ("%s %s %s" % ( - scrapedtitle, scraped_number_and_title, "(%s)" % scrapedlang if scrapedlang else scrapedlang)).strip() - itemlist.append( - Item(channel=item.channel, - action="findepvideos", - title=completetitle, - contentSerieName=completetitle, - fulltitle=fulltitle, - url=scrapedurl, - extra=extra, - folder=True)) - - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) - return itemlist - - def peliculas(item): - logger.info("kod.italiaserie peliculas") - itemlist = [] + support.log() + patron = r'
\s*\s*]+>' + list_groups = ["url", "title", "thumb"] - # Carica la pagina - data = httptools.downloadpage(item.url).data + if item.args == "latest": + patron += r'.*?aj-eps">(.*?)' + data = httptools.downloadpage(item.url).data - # Estrae i contenuti - patron = '
\s*\s*]+>' - matches = re.compile(patron, re.DOTALL).findall(data) + matches = re.compile(patron, re.S).findall(data) + itemlist = [] - for scrapedurl, scrapedtitle, scrapedthumbnail in matches: - scrapedplot = "" - scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle) - scrapedurl = scrapedurl.replace("-1/", "-links/") + for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedep in matches: + s, ep = scrapertools.find_single_match(scrapedep, r'(\d+)x(\d+)\s') + itemlist.append( + Item(channel=item.channel, + action="episodios", + contentType=item.contentType, + title="[B]" + scrapedtitle + "[/B] " + scrapedep, + fulltitle=scrapedtitle, + show=scrapedtitle, + url=scrapedurl, + extra=item.extra, + args={"season": s, "episode": ep} + )) - itemlist.append( - Item(channel=item.channel, - action="episodios", - fulltitle=scrapedtitle, - show=scrapedtitle, - title="[COLOR azure]" + scrapedtitle + "[/COLOR]", - url=scrapedurl, - thumbnail=scrapedthumbnail, - plot=scrapedplot, - folder=True)) + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + return itemlist + else: + patron_next = r']*>', '', scrapedtitle).strip() - if scrapedtitle != 'Categorie': - scrapedtitle = scrapedtitle.replace('×', 'x') - scrapedtitle = scrapedtitle.replace('×', 'x') - itemlist.append( - Item(channel=item.channel, - action="findvideos", - contentType="episode", - title="[COLOR azure]%s[/COLOR]" % (scrapedtitle + " (" + lang_title + ")"), - url=data, - thumbnail=item.thumbnail, - extra=item.extra, - fulltitle=scrapedtitle + " (" + lang_title + ")" + ' - ' + item.show, - show=item.show)) +def menu(item): + support.log() + patron = r'
  • (.*?)' + return support.scrape(item, patron, ["url", "title"], action="peliculas") - logger.info("[italiaserie.py] episodios") + +def episodios(item): + support.log() + + patron = r'
    ' + data = httptools.downloadpage(item.url).data + matches = re.compile(patron, re.S).findall(data) + + if item.args: + s = (int(item.args["season"])) + try: + matches = [matches[s]] + except: + matches = [matches[(s - 1)]] itemlist = [] - # Download pagina - data = httptools.downloadpage(item.url).data - data = scrapertools.decodeHtmlentities(data) - if 'CLICCA QUI PER GUARDARE TUTTI GLI EPISODI' in data: - item.url = re.sub('\-\d+[^\d]+$', '-links', item.url) - data = httptools.downloadpage(item.url).data - data = scrapertools.decodeHtmlentities(data) - data = scrapertools.find_single_match(data, '
    (.*?)
    ') + for season, block in matches: + patron = r'