Buenas!
Repesco tu comentario porque andaba haciendolo y buscando respuestas me di con la tuya, ya lo tengo funcionando es bastante sencillo añadiendo unas pocas lineas, pero claro hasta que di con ellas, siendo novato en python y con algunos imprevistos del debugger que no me mostraba nada cuando ponia logger.info... pues al final le he dedicado unas horillas
Primeramente creo la funcion que hace la llamada por post para cambiar el estado de la serie/pelicula
Código: Seleccionar todo
def pordede_check(item):
headers = DEFAULT_HEADERS[:]
scrapertools.downloadpage("http://www.pordede.com/ajax/mediaaction", post="model="+item.tipo+"&id="+item.idtemp+"&action=status&value="+item.valor)
A continuacion, en el apartado de series (funcion episodios)
Código: Seleccionar todo
patrontemporada = '<div class="checkSeason"[^>]+>([^<]+)<div class="right" onclick="controller.checkSeason(.*?)\s+</div></div>'
matchestemporadas = re.compile(patrontemporada,re.DOTALL).findall(data)
[b]idserie = scrapertools.find_single_match(data,'<div id="layout4" class="itemProfile modelContainer" data-model="serie" data-id="(\d+)"')[/b]
Añado la variable idserie para saber cual es el id de la respectiva...
Un poco mas abajo donde aparece lo de añadir serie a la biblioteca
Código: Seleccionar todo
itemlist.append( Item(channel='pordede', title="Añadir esta serie a la biblioteca de XBMC", url=item.url, action="add_serie_to_library", extra="episodios###", show=show) )
itemlist.append( Item(channel='pordede', title="Descargar todos los episodios de la serie", url=item.url, action="download_all_episodes", extra="episodios", show=show))
[b] itemlist.append( Item(channel='pordede', title="Marcar como Pendiente", tipo="serie", idtemp=idserie, valor="1", action="pordede_check", show=show))
itemlist.append( Item(channel='pordede', title="Marcar como Siguiendo", tipo="serie", idtemp=idserie, valor="2", action="pordede_check", show=show))
itemlist.append( Item(channel='pordede', title="Marcar como Finalizada", tipo="serie", idtemp=idserie, valor="3", action="pordede_check", show=show))
itemlist.append( Item(channel='pordede', title="Marcar como Favorita", tipo="serie", idtemp=idserie, valor="4", action="pordede_check", show=show))
itemlist.append( Item(channel='pordede', title="Quitar marca", tipo="serie", idtemp=idserie, valor="0", action="pordede_check", show=show))[/b]
Ahora veamos la parte correspondiente a las peliculas/documentales (funcion findvideos)
Buscamos el ID de la peli/docu
Código: Seleccionar todo
patron = '<a target="_blank" class="a aporteLink(.*?)</a>'
matches = re.compile(patron,re.DOTALL).findall(data)
itemlist = []
[b] idpeli = scrapertools.find_single_match(data,'<div class="buttons"><button class="defaultPopup onlyLogin" href="/links/create/ref_id/(\d+)/ref_model/4">Añadir enlace')[/b]
Y mostramos los enlaces correspondientes solo si esos enlaces pertecen a peliculas o documentales (sino saldria tambien en los enlaces de las series)
Código: Seleccionar todo
if numberlinks == 0:
verTodos = True
itemsort = sorted(itemsort, key=lambda k: (k['orden1'], k['orden2']), reverse=True)
for i, subitem in enumerate(itemsort):
if verTodos == False and i >= numberlinks:
itemlist.append(Item(channel=item.channel, action='findallvideos' , title='Ver todos los enlaces', url=item.url, extra=item.extra ))
break
itemlist.append( Item(channel=item.channel, action=subitem['action'] , title=subitem['title'] , url=subitem['url'] , thumbnail=subitem['thumbnail'] , fanart= subitem['fanart'], plot=subitem['plot'] , extra=subitem['extra'] , fulltitle=subitem['fulltitle'] ))
[b] if "/what/peli" in item.url or "/what/docu" in item.url:
itemlist.append( Item(channel=item.channel, action="pordede_check" , tipo="peli", title="Marcar como Pendiente" , valor="1", idtemp=idpeli))
itemlist.append( Item(channel=item.channel, action="pordede_check" , tipo="peli", title="Marcar como Vista" , valor="3", idtemp=idpeli))
itemlist.append( Item(channel=item.channel, action="pordede_check" , tipo="peli", title="Marcar como Favorita" , valor="4", idtemp=idpeli))
itemlist.append( Item(channel=item.channel, action="pordede_check" , tipo="peli", title="Quitar Marca" , valor="0", idtemp=idpeli))
[/b] return itemlist
Vease que el unico codigo añadido es lo que figura en negrita, lo demas lo pongo para situarse en el lugar que corresponde añadirlo (no pongas 2 veces lo mismo..).
Pregunta para los admins... Si quiero colaborar añadiendolo al repositorio ? Hago un merge al Github o os lo envio directamente a vosotros?
Link del fichero pordede.py por si a alguien le interesa probarlo
https://www.dropbox.com/s/wq2uj7sokaigx ... de.py?dl=0
Un saludo!