diff --git a/plugin.video.alfa/channels/altadefinizione01.py b/plugin.video.alfa/channels/altadefinizione01.py index a93f3b48..db3db198 100644 --- a/plugin.video.alfa/channels/altadefinizione01.py +++ b/plugin.video.alfa/channels/altadefinizione01.py @@ -1,14 +1,12 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------ -# *AddonNamer* - XBMC Plugin # Canale per altadefinizione01 # ------------------------------------------------------------ import re import urlparse -from channels import autoplay -from channels import filtertools -from core import scrapertools, servertools, httptools, tmdb, scrapertoolsV2 +from channels import filtertools, autoplay, support +from core import servertools, httptools, tmdb, scrapertoolsV2 from core.item import Item from platformcode import logger, config @@ -23,59 +21,48 @@ list_quality = ['default'] __comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'altadefinizione01') __comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', 'altadefinizione01') -headers = None +headers = [['Referer', host]] blacklist_categorie = ['Altadefinizione01', 'Altadefinizione.to'] def mainlist(item): - logger.info("kod.altadefinizione01 mainlist") + support.log() + itemlist =[] + + support.menu(itemlist, 'Al Cinema bold','peliculas',host+'/cinema/') + support.menu(itemlist, 'Ultimi Film Inseriti bold','peliculas',host) + support.menu(itemlist, 'Film Sub-ITA','peliculas',host+'/sub-ita/') + support.menu(itemlist, 'Film Ordine Alfabetico submenu','AZlist',host+'/catalog/') + support.menu(itemlist, 'Categorie Film submenu','categories',host) + support.menu(itemlist, 'Cerca... color blue','search') + autoplay.init(item.channel, list_servers, list_quality) - - itemlist = [Item(channel=item.channel, - title="[COLOR azure]In sala[/COLOR]", - action="sala", - url="%s/page/1/" % 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 film inseriti[/COLOR]", - action="peliculas", - url="%s/page/1/" % 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]Sub ITA[/COLOR]", - action="subIta", - url="%s/sub-ita/" % 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]Categorie film[/COLOR]", - action="categorias", - 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 yellow]Cerca...[/COLOR]", - action="search", - extra="movie", - thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search")] - autoplay.show_option(item.channel, itemlist) return itemlist +def categories(item): + support.log(item) + return support.scrape(item,'
  • (.*?)
  • ',['url','title'],headers,'Altadefinizione01',patron_block='',action='peliculas',url_host=host) + +def AZlist(item): + support.log() + return support.scrape(item,r'(.*?)<\/div>',action='peliculas_list',url_host=host) def newest(categoria): - logger.info("kod.altadefinizione01 newest" + categoria) + # import web_pdb; web_pdb.set_trace() + support.log(categoria) itemlist = [] item = Item() try: - if categoria == "film": + if categoria == "peliculas": item.url = host item.action = "peliculas" itemlist = peliculas(item) if itemlist[-1].action == "peliculas": itemlist.pop() - # Continua la ricerca in caso di errore except: import sys @@ -86,124 +73,8 @@ def newest(categoria): return itemlist -def createItem(data, item, itemlist, scrapedurl, scrapedtitle, scrapedthumbnail, scrapedquality, subDiv, subText): - info = scrapertoolsV2.find_multiple_matches(data, '([0-9]+)+<\/span>.*?(.*?)<\/span>.*?

    (.*?)<\/p>.*?') - infoLabels = {} - for infoLabels['year'], duration, scrapedplot, checkUrl in info: - if checkUrl == scrapedurl: - break - - infoLabels['duration'] = int(duration.replace(' min', '')) * 60 # calcolo la durata in secondi - scrapedthumbnail = host + scrapedthumbnail - scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle) - fulltitle = scrapedtitle - if subDiv: - fulltitle += ' (' + subText + ')' - fulltitle += ' [' + scrapedquality.strip() + ']' - - itemlist.append( - Item(channel=item.channel, - action="findvideos", - text_color="azure", - contentType="movie", - contentTitle=scrapedtitle, - contentQuality=scrapedquality.strip(), - plot=scrapedplot, - title=fulltitle, - url=scrapedurl, - infoLabels=infoLabels, - thumbnail=scrapedthumbnail)) - - -def sala(item): - logger.info("kod.altadefinizione01 peliculas") - itemlist = [] - - # Carica la pagina - data = httptools.downloadpage(item.url, headers=headers).data - - # The categories are the options for the combo - patron = '

    .*?
    .*?(.*?)<\/div>.(
    (.*?)<\/div>|())' - matches = scrapertoolsV2.find_multiple_matches(data, patron) - - for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedquality, subDiv, subText, empty in matches: - createItem(data, item, itemlist, scrapedurl, scrapedtitle, scrapedthumbnail, scrapedquality, subDiv, subText) - - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) - - return itemlist - - -def subIta(item): - logger.info("kod.altadefinizione01 subita") - return peliculas(item, sub=True) - - -def peliculas(item, sub=False): - logger.info("kod.altadefinizione01 peliculas") - itemlist = [] - - # Carica la pagina - data = httptools.downloadpage(item.url, headers=headers).data - - # The categories are the options for the combo - patron = '
    (.*?)<\/a>.*?(.*?)<\/div>.(
    (.*?)<\/div>|())' - matches = scrapertoolsV2.find_multiple_matches(data, patron) - - for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedquality, subDiv, subText, empty in matches: - if sub or not subDiv: - createItem(data, item, itemlist, scrapedurl, scrapedtitle, scrapedthumbnail, scrapedquality, subDiv, subText) - - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) - - # Paginazione - patronvideos = '[^<]+[^<]+' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - if len(matches) > 0: - scrapedurl = urlparse.urljoin(item.url, matches[0]) - action = "peliculas" if not sub else "subIta" - itemlist.append( - Item(channel=item.channel, - action=action, - title="[COLOR lightgreen]" + config.get_localized_string(30992) + "[/COLOR]", - url=scrapedurl, - thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png", - folder=True)) - - return itemlist - - -def categorias(item): - logger.info("kod.altadefinizione01 categorias") - itemlist = [] - - # data = scrapertools.cache_page(item.url) - data = httptools.downloadpage(item.url, headers=headers).data - - # Narrow search by selecting only the combo - bloque = scrapertools.get_match(data, '
      (.*?)
    ') - - # The categories are the options for the combo - patron = '
  • (.*?)
  • ' - matches = re.compile(patron, re.DOTALL).findall(bloque) - - for scrapedurl, scrapedtitle in matches: - if not scrapedtitle in blacklist_categorie: - scrapedurl = host + scrapedurl - itemlist.append( - Item(channel=item.channel, - action="subIta", - title="[COLOR azure]" + scrapedtitle + "[/COLOR]", - url=scrapedurl, - thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png", - folder=True)) - - return itemlist - - def search(item, texto): - logger.info("[altadefinizione01.py] " + item.url + " search " + texto) + support.log(texto) item.url = "%s/index.php?do=search&story=%s&subaction=search" % ( host, texto) try: @@ -219,157 +90,71 @@ def search(item, texto): return [] -def findvideos(item): - logger.info("[altadefinizione01.py] findvideos") - - # Carica la pagina - if item.contentType == "episode": - data = item.url - else: - data = httptools.downloadpage(item.url, headers=headers).data - - itemlist = servertools.find_video_items(data=data) - - for videoitem in itemlist: - videoitem.title = "".join([item.title, '[COLOR green][B]' + videoitem.title + '[/B][/COLOR]']) - videoitem.fulltitle = item.fulltitle - videoitem.show = item.show - videoitem.thumbnail = item.thumbnail - videoitem.channel = item.channel - videoitem.contentType = item.contentType - videoitem.language = IDIOMAS['Italiano'] - - # Requerido para Filtrar enlaces - - if __comprueba_enlaces__: - itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__) - - # Requerido para FilterTools - - itemlist = filtertools.get_links(itemlist, item, list_language) - - # Requerido para AutoPlay - - autoplay.start(itemlist, item) - - if item.contentType != 'episode': - if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'findvideos': - itemlist.append( - Item(channel=item.channel, title='[COLOR yellow][B]Aggiungi alla videoteca[/B][/COLOR]', url=item.url, - action="add_pelicula_to_library", extra="findvideos", contentTitle=item.contentTitle)) - - return itemlist - - -""" def peliculas_tv(item): - logger.info("kod.altadefinizionezone peliculas") - itemlist = [] - - # Carica la pagina - data = httptools.downloadpage(item.url, headers=headers).data - patron = '
    (.*?)
    ' - data = scrapertools.find_single_match(data, patron) - - # Estrae i contenuti - patron = '

    (.*?)

    ' - matches = re.compile(patron, re.DOTALL).findall(data) - - for scrapedurl, scrapedtitle in matches: - scrapedplot = "" - scrapedthumbnail = "" - scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle) - itemlist.append( - Item(channel=item.channel, - action="seasons", - fulltitle=scrapedtitle, - contentType='tv', - contentTitle=scrapedtitle, - show=scrapedtitle, - title="[COLOR azure]" + scrapedtitle + "[/COLOR]", - url=scrapedurl, - thumbnail=scrapedthumbnail, - plot=scrapedplot, - folder=True)) - - tmdb.set_infoLabels(itemlist) - - # Paginazione - patronvideos = '.*?.*?href="(.*?)">' - matches = re.compile(patronvideos, re.DOTALL).findall(data) - - if matches: - scrapedurl = urlparse.urljoin(item.url, matches[0]) - itemlist.append( - Item(channel=item.channel, - action="peliculas_tv", - title="[COLOR lightgreen]" + config.get_localized_string(30992) + "[/COLOR]", - url=scrapedurl, - thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png", - folder=True)) - - return itemlist - - -def seasons(item): +def peliculas(item): + support.log() itemlist = [] data = httptools.downloadpage(item.url, headers=headers).data - patron = '
  • (.*?)
  • ' - matches = re.compile(patron, re.DOTALL).findall(data) + patron = r'
    (.*?)<\/a>.*?(.*?)<\/div>.(
    (.*?)<\/div>|())' + matches = scrapertoolsV2.find_multiple_matches(data, patron) + + for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedquality, subDiv, subText, empty in matches: + info = scrapertoolsV2.find_multiple_matches(data, r'([0-9]+)+<\/span>.*?(.*?)<\/span>.*?

    (.*?)<\/p>.*?') + infoLabels = {} + for infoLabels['year'], duration, scrapedplot, checkUrl in info: + if checkUrl == scrapedurl: + break - for scrapedurl, scrapedseason in matches: - scrapedurl = item.url + scrapedurl - scrapedtitle = item.title - - itemlist.append( - Item(channel=item.channel, - action="episodios", - fulltitle=scrapedtitle, - show=scrapedtitle, - title="[COLOR azure]" + scrapedtitle + "[/COLOR]" + " " + "Stagione " + scrapedseason, - url=scrapedurl, - thumbnail=item.scrapedthumbnail, - plot=item.scrapedplot, - folder=True)) - - return itemlist - - -def episodios(item): - itemlist = [] - - data = httptools.downloadpage(item.url, headers=headers).data - patron = 'class="tab-pane fade" id="%s">(.*?)class="tab-pane fade"' % item.url.split('#')[1] - bloque = scrapertools.find_single_match(data, patron) - patron = 'class="text-muted">.*?<[^>]+>(.*?)<[^>]+>[^>]+>[^>][^>]+>[^<]+[^<]+[^<]+') - return itemlist """ + return itemlist + +def peliculas_list(item): + support.log() + block = r'(.*)<\/tbody>' + patron = r' ([0-9]+)<\/td>(.*?)<\/td>' + return support.scrape(item,patron, ['url','title','year','quality'],patron_block=block) + + + +def findvideos(item): + support.log() + + itemlist = support.server(item, headers=headers) + + # Requerido para Filtrar enlaces + if __comprueba_enlaces__: + itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__) + + # Requerido para FilterTools + itemlist = filtertools.get_links(itemlist, item, list_language) + + # Requerido para AutoPlay + autoplay.start(itemlist, item) + + support.videolibrary(itemlist, item, 'color blue') + + return itemlist diff --git a/plugin.video.alfa/channels/serietvonline.py b/plugin.video.alfa/channels/serietvonline.py index d33df563..331f30c0 100644 --- a/plugin.video.alfa/channels/serietvonline.py +++ b/plugin.video.alfa/channels/serietvonline.py @@ -8,8 +8,7 @@ from core import httptools, scrapertoolsV2, servertools, tmdb from core.item import Item from lib import unshortenit from platformcode import logger, config -from channels import autoplay -from channels.support import menu +from channels import autoplay, support from channelselector import thumb host = "https://serietvonline.co" @@ -26,8 +25,8 @@ def mainlist(item): logger.info(item.channel + 'mainlist') itemlist = web_menu() - menu(itemlist, "Cerca Film... color blue", 'search', '', 'movie') - menu(itemlist, "Cerca Serie... color blue", 'search', '', 'episode') + support.menu(itemlist, "Cerca Film... color blue", 'search', '', 'movie') + support.menu(itemlist, "Cerca Serie... color blue", 'search', '', 'episode') autoplay.init(item.channel, list_servers, list_quality) autoplay.show_option(item.channel, itemlist) @@ -49,7 +48,7 @@ def web_menu(): contentType = 'movie' else: contentType = 'episode' - menu(itemlist, title, 'peliculas', url,contentType=contentType) + support.menu(itemlist, title, 'peliculas', url,contentType=contentType) return itemlist @@ -88,7 +87,7 @@ def search_peliculas(item): contentType=item.contentType, fulltitle=title, show=title, - title=title, + title=title, url=url)) next_page = scrapertoolsV2.find_single_match(data, "