# -*- coding: utf-8 -*- import re from core import httptools from core import scrapertools from core import servertools from core.item import Item from platformcode import config, logger host = "http://www.pymovie.com.mx" headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'], ['Referer', host]] tgenero = {"comedia": "https://s7.postimg.org/ne9g9zgwb/comedia.png", "drama": "https://s16.postimg.org/94sia332d/drama.png", "accion": "https://s3.postimg.org/y6o9puflv/accion.png", "aventura": "https://s10.postimg.org/6su40czih/aventura.png", "romance": "https://s15.postimg.org/fb5j8cl63/romance.png", "animacion": "https://s13.postimg.org/5on877l87/animacion.png", "ciencia ficcion": "https://s9.postimg.org/diu70s7j3/cienciaficcion.png", "terror": "https://s7.postimg.org/yi0gij3gb/terror.png", "musical": "https://s29.postimg.org/bbxmdh9c7/musical.png", "deporte": "https://s13.postimg.org/xuxf5h06v/deporte.png", "artes Marciales": "https://s24.postimg.org/w1aw45j5h/artesmarciales.png", "intriga": "https://s27.postimg.org/v9og43u2b/intriga.png", "infantil": "https://s23.postimg.org/g5rmazozv/infantil.png", "mexicanas": "https://s3.postimg.org/p36ntnxfn/mexicana.png", "espionaje": "https://s2.postimg.org/5hv64b989/espionaje.png", "biografia": "https://s15.postimg.org/5lrpbx323/biografia.png"} tcalidad = {'hd-1080': '[COLOR limegreen]HD-1080[/COLOR]', 'hd-720': '[COLOR limegreen]HD-720[/COLOR]', 'blueray': '[COLOR limegreen]BLUERAY[/COLOR]', 'dvd': '[COLOR limegreen]DVD[/COLOR]', 'cam': '[COLOR red]CAM[/COLOR]'} tcalidad2 = {'hd-1080': 'https://s21.postimg.org/4h1s0t1wn/hd1080.png', 'hd-720': 'https://s12.postimg.org/lthu7v4q5/hd720.png', 'blueray': '', 'dvd': 'https://s1.postimg.org/m89hus1tb/dvd.png', 'cam': 'https://s11.postimg.org/ad4o5wpz7/cam.png'} def mainlist(item): logger.info() itemlist = [] itemlist.append(item.clone(title="Peliculas", action="menupeliculas", thumbnail='https://s8.postimg.org/6wqwy2c2t/peliculas.png', fanart='https://s8.postimg.org/6wqwy2c2t/peliculas.png', extra='peliculas/')) itemlist.append(itemlist[-1].clone(title="Series", action="menuseries", thumbnail='https://s27.postimg.org/iahczwgrn/series.png', fanart='https://s27.postimg.org/iahczwgrn/series.png', extra='peliculas/')) itemlist.append(itemlist[-1].clone(title="Documentales", action="menudocumental", thumbnail='https://s16.postimg.org/7xjj4bmol/documental.png', fanart='https://s16.postimg.org/7xjj4bmol/documental.png', extra='documental')) return itemlist def menupeliculas(item): logger.info() itemlist = [] itemlist.append(Item(channel=item.channel, title="Ultimas", action="lista", url=host + '/Ordenar/Estreno/?page=1', thumbnail='https://s22.postimg.org/cb7nmhwv5/ultimas.png', fanart='https://s22.postimg.org/cb7nmhwv5/ultimas.png', extra='Estreno')) itemlist.append(Item(channel=item.channel, title="Todas", action="lista", url=host + '?page=1', thumbnail='https://s18.postimg.org/fwvaeo6qh/todas.png', fanart='https://s18.postimg.org/fwvaeo6qh/todas.png', extra='todas')) itemlist.append(Item(channel=item.channel, title="Generos", action="seccion", url=host, thumbnail='https://s3.postimg.org/5s9jg2wtf/generos.png', fanart='https://s3.postimg.org/5s9jg2wtf/generos.png', extra='generos')) itemlist.append( Item(channel=item.channel, title="Alfabetico", action="lista", url=host + '/Ordenar/Alfabetico/?page=1', thumbnail='https://s17.postimg.org/fwi1y99en/a-z.png', fanart='https://s17.postimg.org/fwi1y99en/a-z.png', extra='Alfabetico')) itemlist.append(Item(channel=item.channel, title="Calidad", action="seccion", url=host, thumbnail='https://s13.postimg.org/6nzv8nlkn/calidad.png', fanart='https://s13.postimg.org/6nzv8nlkn/calidad.png', extra='calidad')) itemlist.append( Item(channel=item.channel, title="Mas Vistas", action="lista", url=host + '/Ordenar/MasVistas/?page=1', thumbnail='https://s9.postimg.org/wmhzu9d7z/vistas.png', fanart='https://s9.postimg.org/wmhzu9d7z/vistas.png', extra='Estreno')) itemlist.append( Item(channel=item.channel, title="Mas Votadas", action="lista", url=host + '/Ordenar/MasVotos/?page=1', thumbnail='https://s7.postimg.org/9kg1nthzf/votadas.png', fanart='https://s7.postimg.org/9kg1nthzf/votadas.png', extra='Estreno')) itemlist.append( Item(channel=item.channel, title="Calificacion", action="lista", url=host + '/Ordenar/Calificacion/?page=1', thumbnail='https://s18.postimg.org/mjqrl49h5/calificacion.png', fanart='https://s18.postimg.org/mjqrl49h5/calificacion.png', extra='Estreno')) return itemlist def menuseries(item): logger.info() itemlist = [] itemlist.append(Item(channel=item.channel, title="Ultimas", action="lista", url=host + "/Series-estreno/?page=1", thumbnail='https://s22.postimg.org/cb7nmhwv5/ultimas.png', fanart='https://s22.postimg.org/cb7nmhwv5/ultimas.png', extra='series')) itemlist.append(Item(channel=item.channel, title="Generos", action="seccion", url=host, thumbnail='https://s3.postimg.org/5s9jg2wtf/generos.png', fanart='https://s3.postimg.org/5s9jg2wtf/generos.png', extra='series-generos')) itemlist.append( Item(channel=item.channel, title="Alfabetico", action="lista", url=host + '/Ordernar-Serie/Alfabetico/?page=1', thumbnail='https://s17.postimg.org/fwi1y99en/a-z.png', fanart='https://s17.postimg.org/fwi1y99en/a-z.png', extra='series-alpha')) itemlist.append( Item(channel=item.channel, title="Mas Vistas", action="lista", url=host + '/Ordernar-Serie/MasVistas/?page=1', thumbnail='https://s9.postimg.org/wmhzu9d7z/vistas.png', fanart='https://s9.postimg.org/wmhzu9d7z/vistas.png', extra='series-masvistas')) itemlist.append( Item(channel=item.channel, title="Mas Votadas", action="lista", url=host + '/Ordernar-Serie/Masvotos/?page=1', thumbnail='https://s7.postimg.org/9kg1nthzf/votadas.png', fanart='https://s7.postimg.org/9kg1nthzf/votadas.png', extra='series-masvotadas')) itemlist.append(Item(channel=item.channel, title="Recomendadas", action="lista", url=host + '/Ordernar-Serie/Recomendadas/?page=1', thumbnail='https://s12.postimg.org/s881laywd/recomendadas.png', fanart='https://s12.postimg.org/s881laywd/recomendadas.png', extra='series-recomendadas')) return itemlist def menudocumental(item): logger.info() itemlist = [] itemlist.append(Item(channel=item.channel, title="Todas", action="lista", url=host + "/Documentales/?page=1", thumbnail='https://s18.postimg.org/fwvaeo6qh/todas.png', fanart='https://s18.postimg.org/fwvaeo6qh/todas.png', extra='documental')) itemlist.append(Item(channel=item.channel, title="Alfabetico", action="lista", url=host + "/OrdenarDocumental/Alfabetico/?page=1", thumbnail='https://s17.postimg.org/fwi1y99en/a-z.png', fanart='https://s17.postimg.org/fwi1y99en/a-z.png', extra='documental')) itemlist.append(Item(channel=item.channel, title="Mas Vistas", action="lista", url=host + "/OrdenarDocumental/MasVistas/?page=1", thumbnail='https://s9.postimg.org/wmhzu9d7z/vistas.png', fanart='https://s9.postimg.org/wmhzu9d7z/vistas.png', extra='documental')) return itemlist def lista(item): logger.info() if item.extra == 'series': accion = 'episodiosxtemp' elif 'series-' in item.extra: accion = 'temporadas' else: accion = 'findvideos' itemlist = [] data = httptools.downloadpage(item.url).data if 'series' in item.extra or item.extra == 'documental': patron = '

([^<]+)<\/h2>next &') while item.url[-1] != '=': item.url = item.url[:-1] next_page_url = item.url + next_page if next_page != '': itemlist.append(Item(channel=item.channel, action="lista", title='Siguiente >>>', url=next_page_url, thumbnail='https://s16.postimg.org/9okdu7hhx/siguiente.png', extra=item.extra)) return itemlist def temporadas(item): logger.info() itemlist = [] templist = [] data = httptools.downloadpage(item.url).data patron = 'class="listatemporadas" >([^<]+)<' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedthumbnail, scrapedtitle in matches: url = host + scrapedurl title = scrapedtitle thumbnail = scrapedthumbnail plot = '' fanart = '' contentSeasonNumber = scrapedtitle.replace('Temporada ', '') itemlist.append(Item(channel=item.channel, action="episodiosxtemp", title=title, fulltitle=item.title, url=url, thumbnail=thumbnail, plot=plot, fanart=fanart, contentSerieName=item.contentSerieName, contentSeasonNumber=contentSeasonNumber)) if item.extra == 'temporadas': for tempitem in itemlist: templist += episodiosxtemp(tempitem) if config.get_videolibrary_support() and len(itemlist) > 0: itemlist.append( Item(channel=item.channel, title='[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]', url=item.url, action="add_serie_to_library", extra="episodios", contentSerieName=item.contentSerieName)) return itemlist def episodios(item): logger.info() itemlist = [] templist = temporadas(item) for tempitem in templist: itemlist += episodiosxtemp(tempitem) return itemlist def episodiosxtemp(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data patron = '' matches = re.compile(patron, re.DOTALL).findall(data) ep = 1 for scrapedtitle in matches: scrapedtitle = scrapedtitle.replace(item.contentSeasonNumber + 'x' + '0' + str(ep), '') url = host + '/VerCapitulo/' + scrapedtitle.replace(' ', '-') title = item.contentSeasonNumber + 'x' + str(ep) + ' ' + scrapedtitle.strip('/') thumbnail = item.thumbnail plot = '' fanart = '' plot = '' contentEpisodeNumber = ep itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=item.title, url=url, thumbnail=thumbnail, plot=plot, fanart=fanart, extra='series', contentSerieName=item.contentSerieName, contentSeasonNumber=item.contentSeasonNumber, contentEpisodeNumber=contentEpisodeNumber)) ep = ep + 1 return itemlist def seccion(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data patron = '