diff --git a/plugin.video.alfa/channels/ohpelis.json b/plugin.video.alfa/channels/ohpelis.json new file mode 100644 index 00000000..5c5d00f5 --- /dev/null +++ b/plugin.video.alfa/channels/ohpelis.json @@ -0,0 +1,43 @@ +{ + "id": "ohpelis", + "name": "OH-PELIS", + "compatible": { + "addon_version": "4.3" + }, + "active": true, + "adult": false, + "language": "es", + "thumbnail": "https://s28.postimg.org/6v7ig831p/oh-pelis.png", + "banner": "https://s27.postimg.org/bz0fh8jpf/oh-pelis-banner.png", + "version": 1, + "categories": [ + "latino", + "movie" + ], + "settings": [ + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": false, + "enabled": false, + "visible": false + }, + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_infantiles", + "type": "bool", + "label": "Incluir en Novedades - Infantiles", + "default": true, + "enabled": true, + "visible": true + } + ] +} \ No newline at end of file diff --git a/plugin.video.alfa/channels/ohpelis.py b/plugin.video.alfa/channels/ohpelis.py new file mode 100644 index 00000000..31b9080a --- /dev/null +++ b/plugin.video.alfa/channels/ohpelis.py @@ -0,0 +1,316 @@ +# -*- coding: utf-8 -*- +# -*- Channel OH-PELIS -*- +# -*- Created for Alfa-addon -*- +# -*- By the Alfa Develop Group -*- + +import re +import urllib +import urlparse + +from channels import autoplay +from channels import filtertools +from core import config +from core import httptools +from core import logger +from core import scrapertools +from core import servertools +from core import tmdb +from core.item import Item + + +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 = [] + templist =[] + 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() + itemlist = [] + 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("{0}".format(line)) + return [] + + return itemlist