def tmdb(item): from core.tmdb import Tmdb #oTmdb= Tmdb(id_Tmdb='1399',tipo='tv') #print oTmdb.get_poster(rnd= True, size="w185") #oTmdb= Tmdb(texto_buscado='juego de tronos',tipo='tv') oTmdb= Tmdb(external_id='121361',tipo='tv',external_source="tvdb_id") print "id: " + oTmdb.get_id() #print oTmdb.get_episodio(2,5) #print oTmdb.get_episodio(2,1) print oTmdb.get_sinopsis()
def info(title, thumbnail): logger.info("streamondemand.eurostreaminginfo info") infoLabels={} plot={} try: from core.tmdb import Tmdb oTmdb= Tmdb(texto_buscado=title, tipo= "movie") count = 0 if oTmdb.total_results > 0: #Mientras el thumbnail no coincida con el del resultado de la búsqueda, pasa al siguiente resultado while oTmdb.get_poster(size="w185") != thumbnail: count += 1 oTmdb.load_resultado(index_resultado=count) if count == oTmdb.total_results : break infoLabels['code'] = oTmdb.get_id() infoLabels['plot'] = oTmdb.get_sinopsis() infoLabels['title'] = oTmdb.result["title"] infoLabels['year']= oTmdb.result["release_date"][:4] infoLabels['genre'] = ", ".join(oTmdb.result["genres"]) infoLabels['rating'] = float(oTmdb.result["vote_average"]) fanart=oTmdb.get_backdrop() poster=oTmdb.get_poster() plot['infoLabels']=infoLabels return plot, fanart, poster except: pass
def show_movie_info(item): logger.info() itemlist = [] tmdb_title = re.sub(r'\(.*\)|\[.*\]', '', item.title).strip() logger.debug('tmdb_title=' + tmdb_title) try: oTmdb = Tmdb(texto_buscado=tmdb_title, idioma_busqueda="es") item.fanart = oTmdb.get_backdrop() item.plot = oTmdb.get_sinopsis() except: pass data = httptools.downloadpage(item.url).data patron = "<a href='(secciones.php\?sec\=descargas[^']+)'" matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl in matches: url = urlparse.urljoin(item.url, scrapedurl) logger.debug("title=[" + item.title + "], url=[" + url + "], thumbnail=[" + item.thumbnail + "]") torrent_data = httptools.downloadpage(url).data if scrapertools.find_single_match(torrent_data, "<a href='(\/uploads\/torrents\/peliculas\/.*?\.torrent)'>"): link = scrapertools.get_match(torrent_data, "<a href='(\/uploads\/torrents\/peliculas\/.*?\.torrent)'>") else: link = scrapertools.get_match(torrent_data, "<a href='(http:\/\/www.mejortorrent.com\/uploads\/torrents\/.*?peliculas\/.*?\.torrent)'>") link = urlparse.urljoin(url, link) logger.debug("link=" + link) itemlist.append(Item(channel=item.channel, action="play", server="torrent", title=item.title, url=link, thumbnail=item.thumbnail, plot=item.plot, fanart=item.fanart, folder=False, extra="pelicula")) return itemlist
def info(title): logger.info("streamondemand.scambioetico info") try: from core.tmdb import Tmdb oTmdb = Tmdb(texto_buscado=title, tipo="movie", include_adult="false", idioma_busqueda="it") count = 0 if oTmdb.total_results > 0: #Mientras el thumbnail no coincida con el del resultado de la búsqueda, pasa al siguiente resultado #while oTmdb.get_poster(size="w185") != thumbnail: #count += 1 #oTmdb.load_resultado(index_resultado=count) #if count == oTmdb.total_results : break extrameta = {} extrameta["Year"] = oTmdb.result["release_date"][:4] extrameta["Genre"] = ", ".join(oTmdb.result["genres"]) extrameta["Rating"] = float(oTmdb.result["vote_average"]) fanart = oTmdb.get_backdrop() poster = oTmdb.get_poster() plot = oTmdb.get_sinopsis() return plot, fanart, poster, extrameta except: pass
def info(title, thumbnail): logger.info("pelisalacarta.inkapelis info") infoLabels = {} plot = {} try: from core.tmdb import Tmdb oTmdb = Tmdb(texto_buscado=title, tipo="movie") count = 0 if oTmdb.total_results > 0: #Mientras el thumbnail no coincida con el del resultado de la búsqueda, pasa al siguiente resultado while oTmdb.get_poster(size="w185") != thumbnail: count += 1 oTmdb.load_resultado(index_resultado=count) if count == oTmdb.total_results: break infoLabels['code'] = oTmdb.get_id() infoLabels['plot'] = oTmdb.get_sinopsis() infoLabels['title'] = oTmdb.result["title"] infoLabels['year'] = oTmdb.result["release_date"][:4] infoLabels['genre'] = ", ".join(oTmdb.result["genres"]) infoLabels['rating'] = float(oTmdb.result["vote_average"]) fanart = oTmdb.get_backdrop() plot['infoLabels'] = infoLabels return plot, fanart except: pass
def info(title, type, sinopsis): logger.info("pelisalacarta.descargasmix info") infolabels={} plot={} try: from core.tmdb import Tmdb otmdb= Tmdb(texto_buscado=title, tipo= type) if otmdb.get_sinopsis() == "": infolabels['plot'] = sinopsis else: infolabels['plot'] = otmdb.get_sinopsis() infolabels['year']= otmdb.result["release_date"][:4] infolabels['genre'] = otmdb.get_generos() infolabels['rating'] = float(otmdb.result["vote_average"]) fanart=otmdb.get_backdrop() plot['infoLabels']=infolabels return plot, fanart except: pass
def info(title, type, sinopsis): logger.info("pelisalacarta.allpeliculas info") infolabels = {} plot = {} try: from core.tmdb import Tmdb otmdb = Tmdb(texto_buscado=title, tipo=type) if otmdb.get_sinopsis() == "": infolabels['plot'] = sinopsis else: infolabels['plot'] = otmdb.get_sinopsis() infolabels['year'] = otmdb.result["release_date"][:4] infolabels['genre'] = otmdb.get_generos() infolabels['rating'] = float(otmdb.result["vote_average"]) fanart = otmdb.get_backdrop() plot['infoLabels'] = infolabels return plot, fanart except: pass
def show_movie_info(item): logger.info("pelisalacarta.mejortorrent show_movie_info") itemlist = [] tmdb_title = re.sub(r'\(.*\)|\[.*\]', '', item.title).strip() logger.debug('pelisalacarta.mejortorrent show_movie_info tmdb_title=' + tmdb_title) try: oTmdb = Tmdb(texto_buscado=tmdb_title, idioma_busqueda="es") item.fanart = oTmdb.get_backdrop() item.plot = oTmdb.get_sinopsis() except: pass data = scrapertools.cache_page(item.url) logger.debug("data=" + data) patron = "<a href='(secciones.php\?sec\=descargas[^']+)'" matches = re.compile(patron, re.DOTALL).findall(data) scrapertools.printMatches(matches) for scrapedurl in matches: url = urlparse.urljoin(item.url, scrapedurl) logger.debug("title=[" + item.title + "], url=[" + url + "], thumbnail=[" + item.thumbnail + "]") torrent_data = scrapertools.cache_page(url) logger.debug("torrent_data=" + torrent_data) #<a href='/uploads/torrents/peliculas/los-juegos-del-hambre-brrip.torrent'> link = scrapertools.get_match( torrent_data, "<a href='(/uploads/torrents/peliculas/.*?\.torrent)'>") link = urlparse.urljoin(url, link) logger.debug("link=" + link) itemlist.append( Item(channel=__channel__, action="play", server="torrent", title=item.title, url=link, thumbnail=item.thumbnail, plot=item.plot, fanart=item.fanart, folder=False, viewmode="movie_with_plot")) return itemlist
def show_movie_info(item): logger.info("pelisalacarta.mejortorrent show_movie_info") itemlist = [] tmdb_title = re.sub(r"\(.*\)|\[.*\]", "", item.title).strip() logger.debug("pelisalacarta.mejortorrent show_movie_info tmdb_title=" + tmdb_title) try: oTmdb = Tmdb(texto_buscado=tmdb_title, idioma_busqueda="es") item.fanart = oTmdb.get_backdrop() item.plot = oTmdb.get_sinopsis() except: pass data = scrapertools.cache_page(item.url) logger.debug("data=" + data) patron = "<a href='(secciones.php\?sec\=descargas[^']+)'" matches = re.compile(patron, re.DOTALL).findall(data) scrapertools.printMatches(matches) for scrapedurl in matches: url = urlparse.urljoin(item.url, scrapedurl) logger.debug("title=[" + item.title + "], url=[" + url + "], thumbnail=[" + item.thumbnail + "]") torrent_data = scrapertools.cache_page(url) logger.debug("torrent_data=" + torrent_data) # <a href='/uploads/torrents/peliculas/los-juegos-del-hambre-brrip.torrent'> link = scrapertools.get_match(torrent_data, "<a href='(/uploads/torrents/peliculas/.*?\.torrent)'>") link = urlparse.urljoin(url, link) logger.debug("link=" + link) itemlist.append( Item( channel=__channel__, action="play", server="torrent", title=item.title, url=link, thumbnail=item.thumbnail, plot=item.plot, fanart=item.fanart, folder=False, viewmode="movie_with_plot", ) ) return itemlist
def info_tv(title, year): logger.info("streamondemand.cinemalibero info") try: from core.tmdb import Tmdb oTmdb = Tmdb(texto_buscado=title, year=year, tipo="tv", include_adult="false", idioma_busqueda="it") if oTmdb.total_results > 0: extrameta = {"Year": oTmdb.result["release_date"][:4], "Genre": ", ".join(oTmdb.result["genres"]), "Rating": float(oTmdb.result["vote_average"])} fanart = oTmdb.get_backdrop() poster = oTmdb.get_poster() plot = oTmdb.get_sinopsis() return plot, fanart, poster, extrameta except: pass
def info_tv(title): logger.info("streamondemand.cineblog01 info") try: from core.tmdb import Tmdb oTmdb = Tmdb(texto_buscado=title, tipo="tv", include_adult="false", idioma_busqueda="it") if oTmdb.total_results > 0: extrameta = {"Year": oTmdb.result["release_date"][:4], "Genre": ", ".join(oTmdb.result["genres"]), "Rating": float(oTmdb.result["vote_average"])} fanart = oTmdb.get_backdrop() poster = oTmdb.get_poster() plot = oTmdb.get_sinopsis() return plot, fanart, poster, extrameta except: pass
def info(title): logger.info("streamondemand.cinemalibero info") try: from core.tmdb import Tmdb oTmdb = Tmdb(texto_buscado=title, tipo="movie", include_adult="false", idioma_busqueda="it") count = 0 if oTmdb.total_results > 0: extrameta = {} extrameta["Year"] = oTmdb.result["release_date"][:4] extrameta["Genre"] = ", ".join(oTmdb.result["genres"]) extrameta["Rating"] = float(oTmdb.result["vote_average"]) fanart = oTmdb.get_backdrop() poster = oTmdb.get_poster() plot = oTmdb.get_sinopsis() return plot, fanart, poster, extrameta except: pass
def info(title): logger.info("streamondemand.italianstream info") try: from core.tmdb import Tmdb oTmdb= Tmdb(texto_buscado=title, tipo= "movie", include_adult="true", idioma_busqueda="it") count = 0 if oTmdb.total_results > 0: extrameta = {} extrameta["Year"] = oTmdb.result["release_date"][:4] extrameta["Genre"] = ", ".join(oTmdb.result["genres"]) extrameta["Rating"] = float(oTmdb.result["vote_average"]) fanart=oTmdb.get_backdrop() poster=oTmdb.get_poster() plot=oTmdb.get_sinopsis() return plot, fanart, poster, extrameta except: pass
def info(title, year=""): logger.info("pelisalacarta.cultmoviez info") infolabels={} plot={} try: from core.tmdb import Tmdb otmdb= Tmdb(texto_buscado=title, tipo= "movie", year=year) infolabels['plot'] = otmdb.get_sinopsis() infolabels['year']= otmdb.result["release_date"][:4] infolabels['genre'] = otmdb.get_generos() infolabels['rating'] = float(otmdb.result["vote_average"]) if otmdb.get_poster() != "": thumbnail = otmdb.get_poster() else: thumbnail = "" fanart=otmdb.get_backdrop() plot['infoLabels']=infolabels return plot, fanart, thumbnail except: pass
def info(title): logger.info("pelisalacarta.verseriesynovelas info") infolabels = {} plot = {} try: from core.tmdb import Tmdb otmdb = Tmdb(texto_buscado=title, tipo="tv") infolabels['plot'] = otmdb.get_sinopsis() infolabels['year'] = otmdb.result["release_date"][:4] infolabels['genre'] = otmdb.get_generos() infolabels['rating'] = float(otmdb.result["vote_average"]) if otmdb.get_poster() != "": thumbnail = otmdb.get_poster() else: thumbnail = "" fanart = otmdb.get_backdrop() plot['infoLabels'] = infolabels return plot, fanart, thumbnail except: pass
def info_tv(title, thumbnail): logger.info("streamondemand.guardaserie info") try: from core.tmdb import Tmdb oTmdb= Tmdb(texto_buscado=title, tipo= "tv", include_adult="true", idioma_busqueda="it") count = 0 if oTmdb.total_results > 0: #Mientras el thumbnail no coincida con el del resultado de la búsqueda, pasa al siguiente resultado while oTmdb.get_poster(size="w185") != thumbnail: count += 1 oTmdb.load_resultado(index_resultado=count) if count == oTmdb.total_results : break extrameta = {} extrameta["Year"] = oTmdb.result["release_date"][:4] extrameta["Genre"] = ", ".join(oTmdb.result["genres"]) extrameta["Rating"] = float(oTmdb.result["vote_average"]) fanart=oTmdb.get_backdrop() poster=oTmdb.get_poster() plot=oTmdb.get_sinopsis() return plot, fanart, poster, extrameta except: pass
def findvideos(item): logger.info("pelisalacarta.channels.seriecanal findvideos") itemlist = [] data = scrapertools.cachePage(item.url) data = scrapertools.decodeHtmlentities(data) infoLabels = {} plot = {} infoLabels['season'] = item.extra infoLabels['plot'] = item.plot infoLabels['tvshowtitle'] = item.fulltitle seriethumbnail = item.thumbnail try: from core.tmdb import Tmdb oTmdb = Tmdb(texto_buscado=item.fulltitle, tipo="tv") except: pass #Busca en la seccion descarga/torrent data_download = scrapertools.get_match( data, '<th>Enlaces de Descarga mediante P2P o DD</th>(.*?)</table>') patron = '<p class="item_name">.*?<a href="([^"]+)".*?">([^"]+)</a>' patron += '[^=]+.*?<a.*?">(.*?)</a>' matches = re.compile(patron, re.DOTALL).findall(data_download) scrapertools.printMatches(matches) for scrapedurl, scrapedepi, scrapedname in matches: if scrapedname != "Episodio " + scrapedepi: scrapedtitle = " - Episodio " + scrapedepi + " - " + scrapedname else: scrapedtitle = " - " + scrapedname scrapedtitle = scrapertools.htmlclean(scrapedtitle) #Info episodio infoLabels['episode'] = scrapedepi try: thumbnail_epi = "" episodio = oTmdb.get_episodio(infoLabels['season'], infoLabels['episode']) if episodio["episodio_sinopsis"] != "": infoLabels['plot'] = episodio["episodio_sinopsis"] else: if oTmdb.get_sinopsis() != "": infoLabels['plot'] = oTmdb.get_sinopsis() infoLabels['genre'] = ", ".join(oTmdb.result["genres"]) item.fanart = oTmdb.get_backdrop() if episodio["episodio_imagen"] != "": thumbnail_epi = episodio["episodio_imagen"] except: pass plot['infoLabels'] = infoLabels if (DEBUG): logger.info("title=[" + scrapedtitle + "], url=[" + scrapedurl + "]") if scrapedurl.find("magnet") != -1: if thumbnail_epi == "": thumbnail_epi = seriethumbnail itemlist.append( Item(channel=__channel__, action="play", title="[Torrent]" + scrapedtitle, url=scrapedurl, thumbnail=thumbnail_epi, plot=str(plot), fanart=item.fanart, extra="torrent")) #Busca en la seccion online data_online = scrapertools.get_match( data, '<th>Enlaces de Visionado Online</th>(.*?)</table>') patron = '<a href="([^"]+)\\n.*?src="([^"]+)".*?' patron += 'title="Enlace de Visionado Online">([^"]+)</a>' matches = re.compile(patron, re.DOTALL).findall(data_online) scrapertools.printMatches(matches) for scrapedurl, scrapedthumb, scrapedtitle in matches: #Deshecha enlaces de trailers scrapedtitle = scrapertools.htmlclean(scrapedtitle) if (scrapedthumb != "images/series/youtube.png") & (scrapedtitle != "Trailer"): server = scrapertools.find_single_match(scrapedthumb, 'images/series/(.*?).png') scrapedepi = scrapertools.find_single_match( scrapedtitle, 'Episodio (.*?) -') title = "[" + server.capitalize() + "]" + " " + scrapedtitle #Info episodio infoLabels['episode'] = scrapedepi try: thumbnail_epi = "" episodio = oTmdb.get_episodio(infoLabels['season'], infoLabels['episode']) if episodio["episodio_sinopsis"] != "": infoLabels['plot'] = episodio["episodio_sinopsis"] else: if oTmdb.get_sinopsis() != "": infoLabels['plot'] = oTmdb.get_sinopsis() infoLabels['genre'] = ", ".join(oTmdb.result["genres"]) item.fanart = oTmdb.get_backdrop() if episodio["episodio_imagen"] != "": thumbnail_epi = episodio["episodio_imagen"] except: pass plot['infoLabels'] = infoLabels if thumbnail_epi == "": thumbnail_epi = seriethumbnail itemlist.append( Item(channel=__channel__, action="play", extra=server, title=title, url=scrapedurl, thumbnail=thumbnail_epi, fanart=item.fanart, plot=str(plot))) data_temp = scrapertools.get_match( data, '<div class="panel panel-success">(.*?)</table>') data_temp = re.sub(r"\n|\r|\t|\s{2}| ", "", data_temp) data_notemp = scrapertools.find_single_match( data_temp, '<td colspan="7"(.*?)</table>') #Comprueba si hay otras temporadas if len(data_notemp) == 0: patron = '<tr><td><p class="item_name"><a href="([^"]+)".*?' patron += '<p class="text-success"><strong>([^"]+)</strong>' matches = re.compile(patron, re.DOTALL).findall(data_temp) scrapertools.printMatches(matches) for scrapedurl, scrapedtitle in matches: url = urlparse.urljoin(URL_BASE, scrapedurl) scrapedtitle = scrapedtitle.capitalize() itemlist.append( Item(channel=__channel__, action="findvideos", title=scrapedtitle, fulltitle=item.fulltitle, url=url, thumbnail=seriethumbnail, extra=scrapedtitle.strip("Temporada "), fanart=item.fanart, plot=item.plot, folder=True)) return itemlist
def findvideos(item): logger.info("[newpct1.py] findvideos") itemlist=[] if "1.com/pelicula" in item.url: # Buscamos el fanart en TMDB try: year=scrapertools.find_single_match(item.show,'(\d{4}$)') show = item.show.replace(year,"") from core.tmdb import Tmdb oTmdb= Tmdb(texto_buscado=show,year=year,tipo="movie") item.fanart=oTmdb.get_backdrop() item.plot=oTmdb.get_sinopsis() except: pass ## Cualquiera de las tres opciones son válidas #item.url = item.url.replace("1.com/","1.com/ver-online/") #item.url = item.url.replace("1.com/","1.com/descarga-directa/") item.url = item.url.replace("1.com/","1.com/descarga-torrent/") # Descarga la página data = re.sub(r"\n|\r|\t|\s{2}|(<!--.*?-->)","",scrapertools.cache_page(item.url)) data = unicode( data, "iso-8859-1" , errors="replace" ).encode("utf-8") title = scrapertools.find_single_match(data,"<h1><strong>([^<]+)</strong>[^<]+</h1>") title+= scrapertools.find_single_match(data,"<h1><strong>[^<]+</strong>([^<]+)</h1>") caratula = scrapertools.find_single_match(data,'<div class="entry-left">.*?src="([^"]+)"') #<a href="http://tumejorjuego.com/download/index.php?link=descargar-torrent/058310_yo-frankenstein-blurayrip-ac3-51.html" title="Descargar torrent de Yo Frankenstein " class="btn-torrent" target="_blank">Descarga tu Archivo torrent!</a> patron = '<a href="([^"]+)" title="[^"]+" class="btn-torrent" target="_blank">' # escraped torrent url = scrapertools.find_single_match(data,patron) if url!="": itemlist.append( Item(fanart=item.fanart, channel=__channel__, action="play", server="torrent", title=title+" [torrent]", fulltitle=title, url=url , thumbnail=caratula, plot=item.plot, folder=False) ) # escraped ver vídeos, descargar vídeos un link, múltiples liks data = data.replace("'",'"') data = data.replace('javascript:;" onClick="popup("http://www.newpct1.com/pct1/library/include/ajax/get_modallinks.php?links=',"") data = data.replace("http://tumejorserie.com/descargar/url_encript.php?link=","") data = data.replace("$!","#!") patron_descargar = '<div id="tab2"[^>]+>.*?</ul>' patron_ver = '<div id="tab3"[^>]+>.*?</ul>' match_ver = scrapertools.find_single_match(data,patron_ver) match_descargar = scrapertools.find_single_match(data,patron_descargar) patron = '<div class="box1"><img src="([^"]+)".*?' # logo patron+= '<div class="box2">([^<]+)</div>' # servidor patron+= '<div class="box3">([^<]+)</div>' # idioma patron+= '<div class="box4">([^<]+)</div>' # calidad patron+= '<div class="box5"><a href="([^"]+)".*?' # enlace patron+= '<div class="box6">([^<]+)</div>' # titulo enlaces_ver = re.compile(patron,re.DOTALL).findall(match_ver) enlaces_descargar = re.compile(patron,re.DOTALL).findall(match_descargar) for logo, servidor, idioma, calidad, enlace, titulo in enlaces_ver: servidor = servidor.replace("played","playedto") titulo = titulo+" ["+servidor+"]" mostrar_server= True if config.get_setting("hidepremium")=="true": mostrar_server= servertools.is_server_enabled (servidor) if mostrar_server: try: servers_module = __import__("servers."+servidor) server_module = getattr(servers_module,servidor) devuelve= server_module.find_videos(enlace) if devuelve: enlace=devuelve[0][1] itemlist.append( Item(fanart=item.fanart, channel=__channel__, action="play", server=servidor, title=titulo , fulltitle = item.title, url=enlace , thumbnail=logo , plot=item.plot, folder=False) ) except: pass for logo, servidor, idioma, calidad, enlace, titulo in enlaces_descargar: servidor = servidor.replace("uploaded","uploadedto") partes = enlace.split(" ") p = 1 for enlace in partes: parte_titulo = titulo+" (%s/%s)" % (p,len(partes)) + " ["+servidor+"]" p+= 1 mostrar_server= True if config.get_setting("hidepremium")=="true": mostrar_server= servertools.is_server_enabled (servidor) if mostrar_server: try: servers_module = __import__("servers."+servidor) server_module = getattr(servers_module,servidor) devuelve= server_module.find_videos(enlace) if devuelve: enlace=devuelve[0][1] itemlist.append( Item(fanart=item.fanart, channel=__channel__, action="play", server=servidor, title=titulo , fulltitle = item.title, url=enlace , thumbnail=logo , plot=item.plot, folder=False) ) except: pass return itemlist
def episodios(item): logger.info("pelisalacarta.mejortorrent episodios") itemlist = [] # Descarga la página data = scrapertools.cachePage(item.url) total_capis = scrapertools.get_match( data, "<input type='hidden' name='total_capis' value='(\d+)'>") tabla = scrapertools.get_match( data, "<input type='hidden' name='tabla' value='([^']+)'>") titulo = scrapertools.get_match( data, "<input type='hidden' name='titulo' value='([^']+)'>") item.thumbnail = scrapertools.find_single_match( data, "src='http://www\.mejortorrent\.com(/uploads/imagenes/" + tabla + "/[a-zA-Z0-9_ ]+.jpg)'") item.thumbnail = 'http://www.mejortorrent.com' + urllib.quote( item.thumbnail) #<form name='episodios' action='secciones.php?sec=descargas&ap=contar_varios' method='post'> data = scrapertools.get_match( data, "<form name='episodios' action='secciones.php\?sec=descargas\&ap=contar_varios' method='post'>(.*?)</form>" ) ''' <td bgcolor='#C8DAC8' style='border-bottom:1px solid black;'><a href='/serie-episodio-descargar-torrent-18741-Juego-de-tronos-4x01.html'>4x01 - Episodio en V.O. Sub Esp.</a></td> <td width='120' bgcolor='#C8DAC8' align='right' style='border-right:1px solid black; border-bottom:1px solid black;'><div style='color:#666666; font-size:9px; margin-right:5px;'>Fecha: 2014-04-07</div></td> <td width='60' bgcolor='#F1F1F1' align='center' style='border-bottom:1px solid black;'> <input type='checkbox' name='episodios[1]' value='18741'> ''' if item.extra == "series": patron = "<td bgcolor[^>]+><a[^>]+>([^>]+)</a></td>[^<]+" else: patron = "<td bgcolor[^>]+>([^>]+)</td>[^<]+" patron += "<td[^<]+<div[^>]+>Fecha: ([^<]+)</div></td>[^<]+" patron += "<td[^<]+" patron += "<input type='checkbox' name='([^']+)' value='([^']+)'" matches = re.compile(patron, re.DOTALL).findall(data) scrapertools.printMatches(matches) tmdb_title = re.sub( r'(\s*-\s*)?\d+.*?\s*Temporada|(\s*-\s*)?\s*Miniserie\.?|\(.*\)|\[.*\]', '', item.title).strip() logger.debug('pelisalacarta.mejortorrent episodios tmdb_title=' + tmdb_title) if item.extra == "series": oTmdb = Tmdb(texto_buscado=tmdb_title.strip(), tipo='tv', idioma_busqueda="es") else: oTmdb = Tmdb(texto_buscado=tmdb_title.strip(), idioma_busqueda="es") for scrapedtitle, fecha, name, value in matches: scrapedtitle = scrapedtitle.strip() if scrapedtitle.endswith('.'): scrapedtitle = scrapedtitle[:-1] title = scrapedtitle + " (" + fecha + ")" url = "http://www.mejortorrent.com/secciones.php?sec=descargas&ap=contar_varios" #"episodios%5B1%5D=11744&total_capis=5&tabla=series&titulo=Sea+Patrol+-+2%AA+Temporada" post = urllib.urlencode({ name: value, "total_capis": total_capis, "tabla": tabla, "titulo": titulo }) logger.debug("post=" + post) if item.extra == "series": epi = scrapedtitle.split("x") # Sólo comprobar Tmdb si el formato es temporadaXcapitulo if len(epi) > 1: temporada = re.sub("\D", "", epi[0]) capitulo = re.search("\d+", epi[1]) if capitulo: capitulo = capitulo.group() else: capitulo = 1 epi_data = oTmdb.get_episodio(temporada, capitulo) logger.debug("epi_data=" + str(epi_data)) if epi_data: item.thumbnail = epi_data["temporada_poster"] item.fanart = epi_data["episodio_imagen"] item.plot = epi_data["episodio_sinopsis"] epi_title = epi_data["episodio_titulo"] if epi_title != "": title = scrapedtitle + " " + epi_title + " (" + fecha + ")" else: try: item.fanart = oTmdb.get_backdrop() except: pass item.plot = oTmdb.get_sinopsis() logger.debug("title=[" + title + "], url=[" + url + "], item=[" + str(item) + "]") itemlist.append( Item(channel=item.channel, action="play", title=title, url=url, thumbnail=item.thumbnail, plot=item.plot, fanart=item.fanart, extra=post, folder=False)) return itemlist
def findvideos(item): logger.info("pelisalacarta.channels.seriecanal findvideos") itemlist = [] data = scrapertools.cachePage(item.url) data = scrapertools.decodeHtmlentities(data) infoLabels={} plot={} infoLabels['season'] = item.extra infoLabels['plot'] = item.plot infoLabels['tvshowtitle']= item.fulltitle seriethumbnail = item.thumbnail try: from core.tmdb import Tmdb oTmdb= Tmdb(texto_buscado=item.fulltitle, tipo= "tv") except: pass #Busca en la seccion descarga/torrent data_download = scrapertools.get_match(data, '<th>Enlaces de Descarga mediante P2P o DD</th>(.*?)</table>') patron = '<p class="item_name">.*?<a href="([^"]+)".*?">([^"]+)</a>' patron += '[^=]+.*?<a.*?">(.*?)</a>' matches = re.compile(patron,re.DOTALL).findall(data_download) scrapertools.printMatches(matches) for scrapedurl, scrapedepi, scrapedname in matches: if scrapedname != "Episodio "+scrapedepi : scrapedtitle = " - Episodio "+scrapedepi+" - "+scrapedname else: scrapedtitle = " - "+scrapedname scrapedtitle = scrapertools.htmlclean(scrapedtitle) #Info episodio infoLabels['episode']= scrapedepi try: thumbnail_epi = "" episodio = oTmdb.get_episodio(infoLabels['season'], infoLabels['episode']) if episodio["episodio_sinopsis"] !="": infoLabels['plot'] = episodio["episodio_sinopsis"] else: if oTmdb.get_sinopsis() !="": infoLabels['plot'] = oTmdb.get_sinopsis() infoLabels['genre'] = ", ".join(oTmdb.result["genres"]) item.fanart=oTmdb.get_backdrop() if episodio["episodio_imagen"]!= "": thumbnail_epi = episodio["episodio_imagen"] except: pass plot['infoLabels']=infoLabels if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"]") if scrapedurl.find("magnet") != -1: if thumbnail_epi == "": thumbnail_epi = seriethumbnail itemlist.append( Item(channel=__channel__, action="play" , title="[Torrent]" + scrapedtitle, url=scrapedurl, thumbnail=thumbnail_epi , plot = str(plot), fanart= item.fanart, extra="torrent")) #Busca en la seccion online data_online = scrapertools.get_match(data, '<th>Enlaces de Visionado Online</th>(.*?)</table>') patron = '<a href="([^"]+)\\n.*?src="([^"]+)".*?' patron += 'title="Enlace de Visionado Online">([^"]+)</a>' matches = re.compile(patron,re.DOTALL).findall(data_online) scrapertools.printMatches(matches) for scrapedurl, scrapedthumb, scrapedtitle in matches: #Deshecha enlaces de trailers scrapedtitle = scrapertools.htmlclean(scrapedtitle) if (scrapedthumb != "images/series/youtube.png") & (scrapedtitle!="Trailer"): server = scrapertools.find_single_match(scrapedthumb, 'images/series/(.*?).png') scrapedepi = scrapertools.find_single_match(scrapedtitle, 'Episodio (.*?) -') title = "["+server.capitalize()+"]"+" "+scrapedtitle #Info episodio infoLabels['episode']= scrapedepi try: thumbnail_epi = "" episodio = oTmdb.get_episodio(infoLabels['season'], infoLabels['episode']) if episodio["episodio_sinopsis"] !="": infoLabels['plot'] = episodio["episodio_sinopsis"] else: if oTmdb.get_sinopsis() !="": infoLabels['plot'] = oTmdb.get_sinopsis() infoLabels['genre'] = ", ".join(oTmdb.result["genres"]) item.fanart=oTmdb.get_backdrop() if episodio["episodio_imagen"]!= "": thumbnail_epi = episodio["episodio_imagen"] except: pass plot['infoLabels']=infoLabels if thumbnail_epi == "": thumbnail_epi = seriethumbnail itemlist.append( Item(channel=__channel__, action="play" , extra=server, title=title, url=scrapedurl, thumbnail=thumbnail_epi , fanart=item.fanart, plot = str(plot))) data_temp = scrapertools.get_match(data, '<div class="panel panel-success">(.*?)</table>') data_temp = re.sub(r"\n|\r|\t|\s{2}| ","",data_temp) data_notemp = scrapertools.find_single_match(data_temp, '<td colspan="7"(.*?)</table>') #Comprueba si hay otras temporadas if len(data_notemp) == 0: patron = '<tr><td><p class="item_name"><a href="([^"]+)".*?' patron += '<p class="text-success"><strong>([^"]+)</strong>' matches = re.compile(patron,re.DOTALL).findall(data_temp) scrapertools.printMatches(matches) for scrapedurl, scrapedtitle in matches: url = urlparse.urljoin(URL_BASE, scrapedurl) scrapedtitle = scrapedtitle.capitalize() itemlist.append( Item(channel=__channel__, action="findvideos", title=scrapedtitle , fulltitle=item.fulltitle, url=url , thumbnail=seriethumbnail, extra=scrapedtitle.strip("Temporada "), fanart=item.fanart, plot=item.plot, folder=True)) return itemlist
def episodios(item): #import web_pdb; web_pdb.set_trace() logger.info() itemlist = [] # Descarga la página data = httptools.downloadpage(item.url).data total_capis = scrapertools.get_match( data, "<input type='hidden' name='total_capis' value='(\d+)'>") tabla = scrapertools.get_match( data, "<input type='hidden' name='tabla' value='([^']+)'>") titulo = scrapertools.get_match( data, "<input type='hidden' name='titulo' value='([^']+)'>") item.thumbnail = scrapertools.find_single_match( data, "src='http://www\.mejortorrent\.com(/uploads/imagenes/" + tabla + "/[a-zA-Z0-9_ ]+.jpg)'") item.thumbnail = host + urllib.quote(item.thumbnail) # <form name='episodios' action='secciones.php?sec=descargas&ap=contar_varios' method='post'> data = scrapertools.get_match( data, "<form name='episodios' action='secciones.php\?sec=descargas\&ap=contar_varios' method='post'>(.*?)</form>" ) if item.extra == "series": patron = "<td bgcolor[^>]+><a[^>]+>([^>]+)</a></td>[^<]+" else: patron = "<td bgcolor[^>]+>([^>]+)</td>[^<]+" patron += "<td[^<]+<div[^>]+>Fecha: ([^<]+)</div></td>[^<]+" patron += "<td[^<]+" patron += "<input type='checkbox' name='([^']+)' value='([^']+)'" matches = re.compile(patron, re.DOTALL).findall(data) tmdb_title = re.sub( r'(\s*-\s*)?\d+.*?\s*Temporada|(\s*-\s*)?\s*Miniserie\.?|\(.*\)|\[.*\]', '', item.title).strip() logger.debug('tmdb_title=' + tmdb_title) if item.extra == "series": oTmdb = Tmdb(texto_buscado=tmdb_title.strip(), tipo='tv', idioma_busqueda="es") else: oTmdb = Tmdb(texto_buscado=tmdb_title.strip(), idioma_busqueda="es") for scrapedtitle, fecha, name, value in matches: scrapedtitle = scrapedtitle.strip() if scrapedtitle.endswith('.'): scrapedtitle = scrapedtitle[:-1] #import web_pdb; web_pdb.set_trace() title = scrapedtitle + " (" + fecha + ")" patron = "<a href='(.*?)'>" url = "https://mejortorrent.website" + scrapertools.find_single_match( data, patron) # "episodios%5B1%5D=11744&total_capis=5&tabla=series&titulo=Sea+Patrol+-+2%AA+Temporada" post = urllib.urlencode({ name: value, "total_capis": total_capis, "tabla": tabla, "titulo": titulo }) logger.debug("post=" + post) if item.extra == "series": epi = scrapedtitle.split("x") # Sólo comprobar Tmdb si el formato es temporadaXcapitulo if len(epi) > 1: temporada = re.sub("\D", "", epi[0]) capitulo = re.search("\d+", epi[1]) if capitulo: capitulo = capitulo.group() else: capitulo = 1 epi_data = oTmdb.get_episodio(temporada, capitulo) logger.debug("epi_data=" + str(epi_data)) if epi_data: item.thumbnail = epi_data["temporada_poster"] item.fanart = epi_data["episodio_imagen"] item.plot = epi_data["episodio_sinopsis"] epi_title = epi_data["episodio_titulo"] if epi_title != "": title = scrapedtitle + " " + epi_title + " (" + fecha + ")" else: try: item.fanart = oTmdb.get_backdrop() except: pass item.plot = oTmdb.get_sinopsis() logger.debug("title=[" + title + "], url=[" + url + "], item=[" + str(item) + "]") itemlist.append( Item(channel=item.channel, action="play", title=title, url=url, thumbnail=item.thumbnail, plot=item.plot, fanart=item.fanart, extra=post, folder=False, id=value)) return itemlist
def episodios(item): logger.info("pelisalacarta.mejortorrent episodios") itemlist = [] # Descarga la página data = scrapertools.cachePage(item.url) total_capis = scrapertools.get_match(data,"<input type='hidden' name='total_capis' value='(\d+)'>") tabla = scrapertools.get_match(data,"<input type='hidden' name='tabla' value='([^']+)'>") titulo = scrapertools.get_match(data,"<input type='hidden' name='titulo' value='([^']+)'>") item.thumbnail = scrapertools.find_single_match(data, "src='http://www\.mejortorrent\.com(/uploads/imagenes/" + tabla + "/[a-zA-Z0-9_ ]+.jpg)'") item.thumbnail = 'http://www.mejortorrent.com' + urllib.quote(item.thumbnail) #<form name='episodios' action='secciones.php?sec=descargas&ap=contar_varios' method='post'> data = scrapertools.get_match(data,"<form name='episodios' action='secciones.php\?sec=descargas\&ap=contar_varios' method='post'>(.*?)</form>") ''' <td bgcolor='#C8DAC8' style='border-bottom:1px solid black;'><a href='/serie-episodio-descargar-torrent-18741-Juego-de-tronos-4x01.html'>4x01 - Episodio en V.O. Sub Esp.</a></td> <td width='120' bgcolor='#C8DAC8' align='right' style='border-right:1px solid black; border-bottom:1px solid black;'><div style='color:#666666; font-size:9px; margin-right:5px;'>Fecha: 2014-04-07</div></td> <td width='60' bgcolor='#F1F1F1' align='center' style='border-bottom:1px solid black;'> <input type='checkbox' name='episodios[1]' value='18741'> ''' if item.extra == "series": patron = "<td bgcolor[^>]+><a[^>]+>([^>]+)</a></td>[^<]+" else: patron = "<td bgcolor[^>]+>([^>]+)</td>[^<]+" patron += "<td[^<]+<div[^>]+>Fecha: ([^<]+)</div></td>[^<]+" patron += "<td[^<]+" patron += "<input type='checkbox' name='([^']+)' value='([^']+)'" matches = re.compile(patron,re.DOTALL).findall(data) scrapertools.printMatches(matches) tmdb_title = re.sub(r'(\s*-\s*)?\d+.*?\s*Temporada|(\s*-\s*)?\s*Miniserie\.?|\(.*\)|\[.*\]', '', item.title).strip() logger.debug('pelisalacarta.mejortorrent episodios tmdb_title=' + tmdb_title) if item.extra == "series": oTmdb= Tmdb(texto_buscado=tmdb_title.strip(), tipo='tv', idioma_busqueda="es") else: oTmdb= Tmdb(texto_buscado=tmdb_title.strip(), idioma_busqueda="es") for scrapedtitle,fecha,name,value in matches: scrapedtitle = scrapedtitle.strip() if scrapedtitle.endswith('.'): scrapedtitle = scrapedtitle[:-1] title = scrapedtitle + " (" + fecha + ")" url = "http://www.mejortorrent.com/secciones.php?sec=descargas&ap=contar_varios" #"episodios%5B1%5D=11744&total_capis=5&tabla=series&titulo=Sea+Patrol+-+2%AA+Temporada" post = urllib.urlencode( { name:value , "total_capis":total_capis , "tabla":tabla , "titulo":titulo } ) logger.debug("post="+post) if item.extra == "series": epi = scrapedtitle.split("x") # Sólo comprobar Tmdb si el formato es temporadaXcapitulo if len(epi) > 1: temporada = re.sub("\D", "", epi[0]) capitulo = re.sub("\D", "", epi[1]) epi_data = oTmdb.get_episodio(temporada, capitulo) logger.debug("epi_data=" + str(epi_data)) if epi_data: item.thumbnail = epi_data["temporada_poster"] item.fanart = epi_data["episodio_imagen"] item.plot = epi_data["episodio_sinopsis"] epi_title = epi_data["episodio_titulo"] if epi_title != "": title = scrapedtitle + " " + epi_title + " (" + fecha + ")" else: try: item.fanart=oTmdb.get_backdrop() except: pass item.plot=oTmdb.get_sinopsis() logger.debug("title=["+title+"], url=["+url+"], item=["+str(item)+"]") itemlist.append( Item(channel=item.channel, action="play", title=title , url=url , thumbnail=item.thumbnail , plot=item.plot, fanart=item.fanart, extra=post, folder=False) ) return itemlist
def completo(item): logger.info("[newpct1.py] completo") itemlist = [] categoryID="" # Guarda el valor por si son etiquetas para que lo vea 'listadofichas' item_extra = item.extra item_show= item.show item_title= item.title # Lee las entradas if item_extra.startswith("serie"): ultimo_action="get_episodios" if item.extra !="serie_add": ''' # Afinar mas la busqueda if item_extra=="serie-hd": categoryID=buscar_en_subcategoria(item.show,'1469') elif item_extra=="serie-vo": categoryID=buscar_en_subcategoria(item.show,'775') elif item_extra=="serie-tv": categoryID=buscar_en_subcategoria(item.show,'767') if categoryID !="": item.url=item.url.replace("categoryID=","categoryID="+categoryID) #Fanart oTvdb= TvDb() serieID=oTvdb.get_serieId_by_title(item.show) fanart = oTvdb.get_graphics_by_serieId(serieID) if len(fanart)>0: item.fanart = fanart[0]''' try: from core.tmdb import Tmdb oTmdb= Tmdb(texto_buscado=item.show,tipo="tv",idioma_busqueda="es") item.fanart=oTmdb.get_backdrop() item.plot=oTmdb.get_sinopsis() print item.plot except: pass else: item_title= item.show items_programas = get_episodios(item) else: ultimo_action="listado" items_programas = listado(item) if len(items_programas) ==0: return itemlist # devolver lista vacia salir = False while not salir: # Saca la URL de la siguiente página ultimo_item = items_programas[ len(items_programas)-1 ] # Páginas intermedias if ultimo_item.action==ultimo_action: # Quita el elemento de "Página siguiente" ultimo_item = items_programas.pop() # Añade las entradas de la página a la lista completa itemlist.extend( items_programas ) # Carga la siguiente página ultimo_item.extra = item_extra ultimo_item.show = item_show ultimo_item.title = item_title logger.info("[newpct1.py] completo url=" + ultimo_item.url) if item_extra.startswith("serie"): items_programas = get_episodios(ultimo_item) else: items_programas = listado(ultimo_item) # Última página else: # Añade a la lista completa y sale itemlist.extend( items_programas ) salir = True if (config.get_library_support() and len(itemlist)>0 and item.extra.startswith("serie")) : itemlist.append( Item(channel=item.channel, title="Añadir esta serie a la biblioteca", url=item.url, action="add_serie_to_library", extra="completo###serie_add" , show= item.show)) logger.info("[newpct1.py] completo items="+ str(len(itemlist))) return itemlist