# -*- coding: utf-8 -*- # -*- Channel OH-PELIS -*- # -*- Created for Alfa-addon -*- # -*- By the Alfa Develop Group -*- import re from channelselector import get_thumb from core import httptools from core import scrapertools from core import servertools from core import tmdb from core.item import Item from platformcode import config, logger host = 'http://www.ohpelis.com' def mainlist(item): logger.info() itemlist = [] data = httptools.downloadpage(host).data patron = '
  • (.*?)<\/a> (\d+)<\/i>' matches = scrapertools.find_multiple_matches(data, patron) mcantidad = 0 for scrapedurl, scrapedtitle, cantidad in matches: mcantidad += int(cantidad) itemlist.append( item.clone(title="Peliculas (%s)" %mcantidad, action='movies_menu' )) itemlist.append( item.clone(title="Series", action='series_menu' )) itemlist.append( item.clone(title="Buscar", action="search", url='http://www.ohpelis.com/?s=', )) return itemlist def series_menu(item): logger.info() itemlist = [] itemlist.append( item.clone(title="Series", action="list_all", url=host + '/series/', extra='serie' )) return itemlist def movies_menu(item): logger.info() itemlist = [] itemlist.append( item.clone(title="Todas", action="list_all", url=host + '/peliculas/' )) itemlist.append( item.clone(title="Generos", action="section", url=host, extra='genres')) itemlist.append( item.clone(title="Por año", action="section", url=host, extra='byyear' )) return itemlist def list_all(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data patron = '
    (.*?)<\/a>.*?(\d{4})<\/span>.*?' patron += '
    (.*?)
    (\d+) - (\d+)<\/div>
    (.*?)<\/a>' matches = re.compile(patron, re.DOTALL).findall(data) infoLabels = item.infoLabels num_ep = 1 for scrapedseason, scrapedepisode, scrapedurl, scrapedtitle in matches: season = scrapedseason contentEpisodeNumber = num_ep url = scrapedurl title = '%sx%s - %s' % (season, num_ep, scrapedtitle) itemlist.append(item.clone(title=title, url=url, contentEpisodeNumber=contentEpisodeNumber, action='findvideos', infoLabels=infoLabels )) num_ep += 1 return itemlist def episodesxseason(item): logger.info() itemlist = [] season = item.contentSeasonNumber data = httptools.downloadpage(item.url).data patron = '
    %s - (\d+)<\/div>
    (.*?)<\/a>' % season matches = re.compile(patron, re.DOTALL).findall(data) infoLabels = item.infoLabels num_ep = 1 for scrapedepisode, scrapedurl, scrapedtitle in matches: title = '%sx%s - %s' % (season, num_ep, scrapedtitle) url = scrapedurl infoLabels['episode'] = num_ep itemlist.append(item.clone(title=title, url=url, contentEpisodeNumber=num_ep, action='findvideos', infoLabels=infoLabels)) num_ep += 1 tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) return itemlist def findvideos(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data itemlist.extend(servertools.find_video_items(data=data)) for videoitem in itemlist: videoitem.channel = item.channel videoitem.contentTitle = item.fulltitle videoitem.infoLabels = item.infoLabels if videoitem.server != 'youtube': videoitem.title = item.title + ' (%s)' % videoitem.server else: videoitem.title = 'Trailer en %s' % videoitem.server videoitem.action = 'play' videoitem.server = "" if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'findvideos': itemlist.append( Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, action="add_pelicula_to_library", extra="findvideos", )) tmdb.set_infoLabels(itemlist, True) itemlist = servertools.get_servers_itemlist(itemlist) return itemlist def newest(categoria): logger.info() item = Item() try: if categoria == 'peliculas': item.url = host + '/release/2017/' elif categoria == 'infantiles': item.url = host + '/genero/infantil/' itemlist = list_all(item) if itemlist[-1].title == '>> Página siguiente': itemlist.pop() except: import sys for line in sys.exc_info(): logger.error("%s" % line) return [] return itemlist def play(item): logger.info() item.thumbnail = item.contentThumbnail return [item]