Página 2 de 6

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 01 Oct 2014, 14:22
por neno1978
muchísimas gracias robalo. ;) jaja no creo, no sabes la envidia q da ver como sacas en un ratito lo q yo no veo en semanas. Me gusta esto, pero he de admitir q me queda grande, mas que nada es curiosidad y cabezoneria . gracias de nuevo ;)

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 02 Oct 2014, 07:46
por neno1978
perdona robalo que te siga molestando. la verdad es que me gusta esto, estoy aprendiendo algo. he conseguido ponerle paginador y buscador ;) . pero una pregunta . como teniendo la misma estructura en series, películas , 1080 etc,

def mainlist(item):
logger.info("pelisalacarta.zentorrents mainlist")

itemlist = []
itemlist.append( Item(channel=__channel__, title="Películas" , action="peliculas", url="http://zentorrents.palasaka.net/peliculas/"))
itemlist.append( Item(channel=__channel__, title="Peliculas 1080", action="peliculas", url="http://zentorrents.palasaka.net/tags/1080p"))
itemlist.append( Item(channel=__channel__, title="Peliculas 720", action="peliculas", url="http://zentorrents.palasaka.net/tags/720p"))
itemlist.append( Item(channel=__channel__, title="Series" , action="peliculas", url="http://zentorrents.palasaka.net/series"))

no valen los patrones para los demás, solo para peliculas? no debería tirar de la url?

Miento, las series funcionan, he cambiado id_torrent = scrapertools.get_match(item.url,"peliculas/(\d+)-") por id_torrent = scrapertools.get_match(item.url,".*?/(\d+)-")solo que al abrir el torrent da "fallo en enlace torrent"

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 02 Oct 2014, 08:29
por robalo
Reemplaza en la función 'findvideos'

Código: Seleccionar todo

    id_torrent = scrapertools.get_match(item.url,"peliculas/(\d+)-")
por

Código: Seleccionar todo

    # Intententa extraer el 'id_torrent' del path '/peliculas/<id del torrent>-<nombre del torrent>'
    try: id_torrent = scrapertools.get_match(item.url,"peliculas/(\d+)-")
    # Si falla, intentará extraer el 'id_torrent' del path /series/<id del torrent>-<nombre del torrent>'
    except: id_torrent = scrapertools.get_match(item.url,"series/(\d+)-")
;)

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 02 Oct 2014, 09:31
por neno1978
vale así funcionan las series pero dan error en e lace torrent :?: y no furula las otras categorías... ,madre que dificil es esto ;)

en el log de abrir torrent series sale NOTICE: TypeError: 'NoneType' object is unsubscriptable

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 02 Oct 2014, 10:21
por robalo
Para nada difícil :)
Hay un par de problemas fáciles de solucionar

El primero el de los menús.
Para que el patrón funcione en los cuatro opciones del menú
Reemplaza de la función 'peliculas'

Código: Seleccionar todo

    patron = '<div class="blogitemfdb ">'             # Empezamos el patrón por aquí para que no se cuele nada raro
por

Código: Seleccionar todo

    patron = '<div class="blogitemfdb[^>]+>'             # Empezamos el patrón por aquí para que no se cuele nada raro
En unas páginas es '<div class="blogitemfdb ">' y en otras '<div class="blogitemfdb">'

El segundo el de las urls finales.
He visto que también usan 'magnet' por lo que es mejor dejarse de atajos y rastrear los enlances para llegar al torrent ( lo de la url 1, url 2, ... Lo que puse al inicio)
La url 1 se la damos en la función 'itemlist', la url 2 se la damos en la función 'peliculas' y las url 3 y la url del torrent la ponemos en la función 'findvideos'
Lo poestado anteriormente ya no hace falta, nos da igual que sea película, serie, música... ( por cierto, el vídeo de Neil Young and Crazy Horse mola mazo :) )
la función 'findvideos' ahora quedaría así:

Código: Seleccionar todo

def findvideos(item):
    logger.info("pelisalacarta.palasaka findvideos")

    itemlist = []

    # Descarga la página 
    data = scrapertools.cache_page(item.url)
    #}" href="http://zentorrents.palasaka.net/index.php?option=com_profiles&view=download&id=15849&f=aHR0cDovL3plbnRvcnJlbnRzLnBhbGFzYWthLm5ldC9tZWRpYS90b3JyZW50cy8xNTg0OS50b3JyZW50&tmpl=component"
    patron = '}" href="([^"]+)"'
    url = scrapertools.get_match(data, patron)

    # Descarga la página
    data = scrapertools.cache_page(url)
    #window.location = 'http://zentorrents.palasaka.net/media/torrents/15849.torrent'
    patron = "window.location = '([^']+)'"
    url_torrent = scrapertools.get_match(data, patron)

    itemlist.append( Item(channel=__channel__, title = "[torrent]", action="play", url=url_torrent, server="torrent", folder=False) )

    return itemlist

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 02 Oct 2014, 11:21
por neno1978
Bestial,simplemente bestial. Gracias x tus clases magistrales, he aprendido mucho ;)

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 08 Oct 2014, 10:07
por neno1978
hola de nuevo. Mira, con el regex online he conseguido verificar que mis patrones son correctos(o eso me parece ) pero por ejemplo, con este canal que estoy entrenando(dejando aun lado el fingidos y demás, porque lo primero es ser capaz de hacer lo básico) me sigue saliendo las categorías vacías. no sé si es la dificultad de la web en si, que soy un cenutrio, o que la clave esta en los "matches" haber si puedes decirme que he hecho mal(casi todo supongo) :)

# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os, sys

from core import logger
from core import config
from core import scrapertools
from core.item import Item
from servers import servertools

__channel__ = "cuelgame"
__category__ = "F"
__type__ = "generic"
__title__ = "Cuélgame"
__language__ = "ES"

DEBUG = config.get_setting("debug")

def isGeneric():
return True

def mainlist(item):
logger.info("pelisalacarta.cuelgame mainlist")

itemlist = []
itemlist.append( Item(channel=__channel__, title="Películas" , action="peliculas", url="http://www.bricocine.com/c/hd-microhd/"))
itemlist.append( Item(channel=__channel__, title="Series" , action="peliculas", url="http://www.bricocine.com/c/series/"))


return itemlist


def peliculas(item):
logger.info("pelisalacarta.cuelgame peliculas")
itemlist = []

# Descarga la página
data = scrapertools.cache_page(item.url)

'''
<div class="post-10888 post type-post status-publish format-standard hentry category-the-leftovers tag-ciencia-ficcion tag-drama tag-fantasia tag-misterio"><div class="entry"> <a href="http://www.bricocine.com/10888/leftovers-temporada-1/"> <img src="http://www.bricocine.com/wp-content/plu ... overs_.jpg" alt="The Leftovers " /> </a></div><div class="entry-meta"><div class="clearfix"><div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" class="rating" title="Puntos IMDB: 7.4"><div class="rating-stars imdb-rating"><div class="stars" style="width:74%"></div></div><div itemprop="ratingValue" class="rating-number"> 7.4</div></div><div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" class="rating" title="Puntos Bricocine: 6.2"><div class="rating-stars brico-rating"><div class="stars" style="width:62%"></div></div><div itemprop="ratingValue" class="rating-number"> 6.2</div></div> <span class="vcard author none"> Publicado por <a class="fn" href="" rel="author" target="_blank"></a> </span> <span class="date updated none">2014-10-07T23:36:17+00:00</span></div></div><h2 class="title2 entry-title"> <a href="http://www.bricocine.com/10888/leftovers-temporada-1/"> The Leftovers &#8211; Temporada 1 </a></h2></div> </article> <article class="hentry item-entry"><div class="post-10088 post type-post status-publish format-standard hentry category-the-last-ship tag-accion tag-ciencia-ficcion tag-drama tag-the tag-thriller"><div class="entry"> <a href="http://www.bricocine.com/10088/last-ship-temporada-1/"> <img src="http://www.bricocine.com/wp-content/plu ... _ship_.jpg" alt="The Last Ship " /> </a></div><div class="entry-meta"><div class="clearfix"><div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" class="rating" title="Puntos IMDB: 7.4"><div class="rating-stars imdb-rating"><div class="stars" style="width:74%"></div></div><div itemprop="ratingValue" class="rating-number"> 7.4</div></div><div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" class="rating" title="Puntos Bricocine: 7.0"><div class="rating-stars brico-rating"><div class="stars" style="width:70%"></div></div><div itemprop="ratingValue" class="rating-number"> 7.0</div></div> <span class="vcard author none"> Publicado por <a class="fn" href="" rel="author" target="_blank"></a> </span> <span class="date updated none">2014-10-07T23:32:25+00:00</span></div></div><h2 class="title2 entry-title"> <a href="http://www.bricocine.com/10088/last-ship-temporada-1/"> The Last Ship &#8211; Temporada 1 </a></h2></div> </article> <article class="hentry item-entry">

'''

patron = '<div class=.*?>'
patron += '<a href="([^"]+)">'
patron += '<img src="([^"]+)" alt="([^"]+)".*?'
patron += 'alt="([^"]+)".*?'
patron += 'class="rating-number">([^<]+)</div></div>'

matches = re.compile(patron,re.DOTALL).findall(data)
scrapertools.printMatches(matches)

for scrapedurl, scrapedthumbnail, scrapedtitle, scrapeddate in matches:

itemlist.append( Item(channel=__channel__, title=scrapedtitle, url=scrapedurl, action="findvideos", thumbnail=scrapedthumbnail, folder=True) )

oye si te resulta pesao esto me lo dices eh? sin problema

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 08 Oct 2014, 11:08
por robalo
Para nada

Yo veo un par de cosas.
Una, te falta un espacio al final en las dos primeras líneas del patrón
Dos, el tercera línea tienes una copia de la cuarta.

Problemas:
Al faltarle los espacios, no encuetra coincidencias para 'matches'
Si corriges el problema de los espacios, si encuetra coincidencias para 'matches' pero al tener duplicado 'alt="([^"]+)".*?' se va hasta el siguiente '<article class="hentry item-entry">' y lo coge de ahí y tambien coge de ahí el resultado de la quinta.

Además del kaos de mezclar los datos, el 'for' no puede funcionar. Le falta el duplicado.

Tu patrón debe quedar así:

Código: Seleccionar todo

    patron = '<div class=.*?> '
    patron += '<a href="http://www.bricocine.com/([^"]+)"> '
    patron += '<img src="([^"]+)".*?'
    patron += 'alt="([^"]+)".*?'
    patron += 'class="rating-number">([^<]+)</div></div>'

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 08 Oct 2014, 11:25
por neno1978
Gracias crack!

Re: alguien sabe como añadir una web a pelisalacarta

Publicado: 08 Oct 2014, 12:06
por neno1978
ey robalo casi lo tengo, ya me sale todo con puntuación , foto y el enlace torrent , pero me falla porque no se como indicar esto ;

id_torrent = scrapertools.get_match(item.url,"(\d+)-")
url_torrent = "http://www.bricocine.com/wp-content/plu ... +".torrent"

en este caso el +id_torrent+ no es un id , es el nombre de la peli, de hecho si establezco un noble, siempre se haber esa peli le des a cual le des ;)

el enlace seria así:

<a id="file" href="http://www.bricocine.com/wp-content/plu ... 0p.torrent" class="btn btn-primary" onclick="_gaq.push(['_trackEvent', 'Descargas', '.Torrent', 'X-Men: Días del futuro pasado (2014) [MicroHD][1080p]'])">Descargar .torrent</a>

que tendría que poner por +id_torrent+ para que seleccione el titulo correspondiente al enlace?

tonto de mi se me ocurrió ".*?".torrent" pero evidentemente no funciono ;)