# -*- 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' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 Chrome/58.0.3029.110', 'Referer': host} def mainlist(item): logger.info() itemlist = [] itemlist.append( item.clone(title="Peliculas", 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 if videoitem.server != 'youtube': videoitem.title = item.title + ' (%s)' % videoitem.server else: videoitem.title = 'Trailer en %s' % videoitem.server videoitem.action = 'play' 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", contentTitle=item.contentTitle, )) 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