Página 1 de 3

Creacion de canales

Publicado: 16 Jun 2018, 12:07
por dan83
Buenas, estoy intentando crear un par de canales(asi voy aprendiendo poco a poco), y me estoy encontrando unos problemillas.

Intentare explicarme lo mejor posible, estoy creando un canal y la serie tiene varios capitulos en un torrent, y lo identifican en la web como del 1-3 capitulos(como un solo item), al pasar la info al tmdb de ese item da error,con lo cual no entra,pero en los enlaces que estan bien numerados si, en resumen, si un listado esta mal(por x razon)no lo muestra, a no ser que lo ponga como 'type=item' pero pierde el tmdb(que es como lo tengo ahora).

En resumen que se pudiera hacer que si diera error al pasar el tmdb que pasara de el y mostrara el titulo que pongamos.

Dejo los archivos para que se pueda ver mejor el error.

Edito: Pondre mas o menos lo que llevamos visto.

Código: Seleccionar todo

# -*- coding: utf-8 -*-

from core.libs import *

QLT = Qualities({
    Qualities.rip: ['dvdrip', 'rhdtv'],
    Qualities.hd_full: ['1080p', 'BluRay-1080p', 'BDremux-1080p', 'FullBluRay', 'MicroHD-1080p'],
    Qualities.hd: ['BluRay-720p', 'hdtv', '720p'],
    Qualities.scr: ['dvdscr']
})

HOST = 'http://www.mejortorrent.com'

def mainlist(item):
    logger.trace()
    itemlist = list()

    itemlist.append(item.clone(
        action="newest_movies",
        label="Peliculas HD",
        url=HOST + '/torrents-de-peliculas-hd-alta-definicion.html',
        content_type='movies',
        type="item"
    ))

    return itemlist

def newest_movies(item):
    logger.trace()
    itemlist = list()

    data = httptools.downloadpage(item.url).data
    data = unicode(data, "iso-8859-1", errors="replace").encode("utf-8")
    
    #extraemos bloque informacion
    bloque = scrapertools.find_multiple_matches(data, "<td><div align='justify'><center>(.*?)<br>")
    #unimos los resultados
    bloque = ''.join(bloque) 
    #---------------------------

    patron = '<a href="([^<]+)">.*?<img src="(.*?)" '

    #bloque quality
    bloque_quality = scrapertools.find_multiple_matches(data,'<br>(.*?)</table>')
    bloque_quality = ''.join(bloque_quality)
    #----------------------------
    
    for url, poster in scrapertools.find_multiple_matches(bloque, patron):
        #limpieza titulo
        title = scrapertools.find_single_match(url, '\d+-(.*?).html')
        title = title.replace('-',' ').replace('4K HDR','').replace('FullBluRay','')
        #quality
        quality = scrapertools.find_single_match(url, '(\d+)')
        quality = scrapertools.find_single_match(bloque_quality, quality+'.*?b>(.*?)<')
        quality = quality.replace('(','').replace(')','').replace(' ', '')
        #     
        url =  HOST + url
        poster = HOST + poster       
        
        new_item = item.clone(
            title=title,
            label=title,
            url=url,
            poster=poster,
            type="movie",
            content_type="servers",
            quality=QLT.get(quality),
            action="findvideos"
            )
        
        itemlist.append(new_item)

    # Paginador
    next_url = scrapertools.find_single_match(data, "</span> <a href='(.*?)'")
    if next_url:
        next_url = HOST + next_url
        itemlist.append(item.clone(
            action="newest_movies",
            url=next_url,
            type='next'
        ))
      
    return itemlist


def findvideos(item):
    logger.trace()
    itemlist = list()

    data = httptools.downloadpage(item.url).data
    data = unicode(data, "iso-8859-1", errors="replace").encode("utf-8")
    data = re.sub(r"\n|\r|\t|&nbsp;|<br>", "", data)

    size = scrapertools.find_single_match(data, 'Tamaño:</b> (.*?) .*?<')
    size = size.replace(',','.')
          
    data_torrent = scrapertools.find_single_match(data, "Torrent:.*?<a href='(.*?)'")
    url2 = HOST+"/"+data_torrent

    #descargamos la siguiente pagina
    data = httptools.downloadpage(url2).data
    data = re.sub(r"\n|\r|\t|&nbsp;|<br>", "", data)
    
    data_enlace = "Pincha <a href='(.*?)'>"

    url = scrapertools.find_single_match(data, data_enlace)

    url = HOST + url
   
    itemlist.append(item.clone(
        label=item.label,
        action="play",
        url=url,
        type='server',
        size=float(size) * 1024 * 1024,
        server='torrent'
    ))
    
    itemlist = servertools.get_servers_from_id(itemlist)
        
    return itemlist


Re: Creacion de canales

Publicado: 17 Jun 2018, 11:20
por vidial
No entiendo muy bien tu explicacion, pero me voy a bajar el zip con el canal que has subido y me lo miro a ver si entiendo mejor lo que estas diciendo.

EDITO:

Agradeceria si me indicaras una serie en la que te da el error, asi lo encontrare antes.

Re: Creacion de canales

Publicado: 17 Jun 2018, 15:07
por dan83
Esta puesto para que no de el error,deberas poner el "type"(que lo tengo #) y quitar el label(para obtener el nombre del episodio).Y buscar una serie con varios capitulos en el enlace, en el titulo suele poner 1-3,5-8,....

Re: Creacion de canales

Publicado: 17 Jun 2018, 16:36
por vidial
Y cual es el problema que tienes? Porque a mi, por lo menos tal como lo tengo configurado, no me da error.

Adjunto una imagen del resultado para que veas que como se muestra.

De todas formas ten en cuenta que los atributos season y episode tienen que ser siempre numeros sino no te va a funcionar. tal como lo haces tu en el mejor de los casos son cadenas de texto tipo '1' y en el peor '1 al 5' así no va a funcionar y no es problema de tmdb sino del la forma que tiene el plugin de formatear los labels de los items, que requiere que los atributos tengan el contenido esperado, sino te va a fallar siempre y ya no digo si se pretende integrar con biblioteca, buscador, novedades, etc...


PD: MediaExplorer requiere que los canales tengan cierta estructura para que funcionen como se espera, y este no la tiene en absoluto, no quiere decir que no pueda funcionar, pero va a ser dificil que se muesteren los items de forma corercta, porque no tiene la estructura correcta. Y la estructura de la web no ayuda mucho para solucionar este punto, aunque hay cosas que se podrian mejorar.

Re: Creacion de canales

Publicado: 17 Jun 2018, 18:57
por dan83
A eso me referia, se que no ayuda la web, por eso preguntaba si habria alguna forma de que cuando no pueda encontrar la info por culpa de la web, se saltara eso y no muestre la informacion del capitulo(que muestre como esta ahora), asi no saldria el error(al no encontrar los datos sale como error).

Aunque ahora escribiendo esto se me ha ocurrido algo, que seria que esos capitulos listarlos y que sean el mismo enlace, ya vere como lo hago :roll:

Gracias.

Re: Creacion de canales

Publicado: 18 Jun 2018, 12:08
por caperucitaferoz
Saludos dan83,
En primer lugar me vas a permitir una pequeña explicacion sobre el codigo de MediaExplorer.

Como todos sabeis este plugin esta basado en Pelisalacarta, aunque hemos intentado crear muchas partes desde cero. No porque no funcionasen, sino por que como se desarrollo de manera colaborativa cada uno habia ido añadiendo y modificando el codigo segun su propio interes. Existian muchisimos canales, cada uno creado por un desarrollador, por lo que habian canales q tenian filtrado por idiomas, autoplay, posibilidad de añadir contenido a la biblioteca, etc.. mientras que otros no tenian nada de esto o solo algunas de estas opciones. Lo mismo pasaba con la informacion mostrada: unos incluian la calidad, la sinopsis y las imagenes (fanart, poster y thumbnail) y otros nada de nada. Todo esto hacia que mantener tal cantidad de canales con sus opciones se hiciese muy complicado.
Al iniciar el proyecto de MediaExplorer debatimos mucho sobre esto y llegamos a la conclusion de que queriamos que TODOS los canales incluidos tubiesen en mismo aspecto (que se puede cambiar segun el perfil seleccionado) y las mismas funcionalidades: si añadiamos una biblioteca TODOS los canales debian de tener acceso a ella y lo mismo con Autoplay o cualquier otra funcion. Esto nos obliga a ser extrictos con el formato y contruccion de los canales.

Por otra parte, algunas veces nos han dicho que el plugin tiene pocos canales. Creemos q muchas de las webs se copian los enlaces unas a otras o simplemente son clones q sus creadores hacen para obtener mas beneficios por publicidad. Por lo tanto nosotros apostamos por limitar el numero de canales e intentamos centrarnos en los mejores. Entonces, ¿como ha de ser una web para que valga la pena convertirla en una canal de MediaExplorer?:
  • Actualizaciones constantes. Una web que solo se actualiza una vez a la semana o al mes no es interesante.
  • Muchos enlaces a servidores. Una web en las que solo se incluya uno o dos servidores es mas probale que falle.
  • Al menos el 50% de los enlaces deberian estar en castellano. Existen otros addons especificos para versiones originales o audio latino.
  • Hay otras consideraciones mas tecnicas a tener encuenta como la dificultad de obtener los enlaces, logins, captchas, etc...
Con las dos premisas expuestas (formato canales y web interesante) todo el que quiera crear una canal y verlo integrado en MediaExplorer debera estar de acuerdo con nuestros requisitos y esperar a que su propuesta sea aprobada o no.
Esto no impide que os hagais vuestros propios canales para uso personal sin tener en cuenta lo aqui explicado, pero nosotros no daremos soporte a esos canales.

Y volviendo al caso especifico que nos proponia dan83, selecciona una de las dos webs y me comprometo a estudiarla, y si es factible, a irte guiando publicamente para intentar crear una canal 100% MediaExplorer.

Re: Creacion de canales

Publicado: 18 Jun 2018, 20:42
por dan83
Perfecto, pues por elegir me da igual porque en los dos es el mismo problema(el de la imagen que puso vidial), ya que asi tampoco funcionaria la biblioteca,pero elegire mejortorrent. He pensado en hacer un regex de los episodios que ponen en el titulo y luego hacer un "range", que me liste los episodios. De todo lo demas, lo que veas que se pueda mejorar bienvenido sera.

Re: Creacion de canales

Publicado: 19 Jun 2018, 12:07
por caperucitaferoz
Ok pues empecemos:
Idioma, calidad y año

En MediaExplorer las etiquetas de calidad, año e idioma no se incluyen nunca en el titulo y tampoco estan permitidas las etiquetas de formato (por ejem: 'COLOR yellow'). De dar formato a cada campo se encargan los perfiles, por eso hay que poner cada cosa en su sitio. Por ejemplo el año debe ir en el atributo "year" del objeto Item.
Por otra parte cada web identifica los idiomas y las calidades como mejor le parece: ESP, Castellano, Español o HDRip, HDTV, FullHD, etc... Para poder homologar todo esto se han establecido 9 idiomas y 7 calidades (definidos en la clase Languages y Qualities dentro de item.py). Los idiomas no creo q necesiten mucha explicacion (los mirais y me decis), pero en las calidades hay que seguir ciertos criterios tomando como partida lo que indica la web (siempre es mejor indicar una calidad menor q no entrar esperando HD y encontrarte CAM):
  • Qualities.scr: Todo lo que incluya: CAM o SCREENER (o similar: SCR, HDScreener, BRCam, etc)
  • Qualities.rip: Todo lo que incluya: RIP (DVD5Rip, BR-Rip, etc..)
  • Qualities.hd_full: Se reservan a las denominaciones FullHD o 1080.
  • Qualities.hd: Para el resto de resoluciones HD no incluidas en el anterior (HD, HD720, microHD, etc..)
  • Qualities.sd: Cualquier calidad incluida en la descripcion q no se ajuste a ninguna de las opciones anteriores.
  • Qualities.unk: Cuando no se incluya referencia alguna en la descripcion.
Estas listas podrian variar en el futuro, pero a dia de hoy las consideramos suficientes.

Podeis abrir cualquiera de los canales incluidos (HDFull por ejemplo) y vereis al principio como se asocian las palabras utilizadas en la web en cuestion con los idiomas y calidades declarados en MediaExplorer.
Una vez obtenidos los idiomas (podrian ser varios) y las calidades hay que asignarlo al item correspondiente mediante los atributos "lang" y "quality"

continuara...

Re: Creacion de canales

Publicado: 19 Jun 2018, 16:31
por dan83
Perfectamente explicado.

Como usuario mayormente de torrents, pongo los inconvenientes que veo a lo mostrado.

Lo primero seria que al no salir la calidad en el titulo del listado habria que meterse dentro para ver la calidad, con lo que tendria que meterme y volver hasta encontrar la calidad que busco, en otras paginas no pasa, porque te agrupan todas las calidades en el mismo titulo, pero en las paginas de torrents no.Te pueden listar la misma pelicula seguida 3-4 veces seguidas y lo que cambia es la calidad.
Pongo de ejemplo una busqueda del canal.

Lo segundo seria el listado de qualities, engloba varias calidades en una, por ejemplo mediaexplorer te pondria 'HD 1080p', pero no sabrias si es microhd,FullBluRay,BDremux,...
Por poner un ejemplo de un usuario cualquiera, yo quiero solo ver microhd, tienen buena calidad y pesan poco,se pueden ver directamente 'sin descargar', pero al meterme solo vere la etiqueta que sea(HD720 o la que sea).Uno mas 'experimentado' si vera el tamaño y se podra guiar y saber si es el bluray completo, si esta ripeado,...

Luego pondre en el primer post, el canal actualizado, e ire actualizandolo con lo que nos enseñes.
Un saludo.

Re: Creacion de canales

Publicado: 19 Jun 2018, 18:08
por caperucitaferoz
dan83 escribió:
19 Jun 2018, 16:31
Como usuario mayormente de torrents, pongo los inconvenientes que veo a lo mostrado.
Si, por favor, discrepar y preguntar lo que no quede claro.
dan83 escribió:
19 Jun 2018, 16:31
Lo primero seria que al no salir la calidad en el titulo del listado habria que meterse dentro para ver la calidad, con lo que tendria que meterme y volver hasta encontrar la calidad que busco, en otras paginas no pasa, porque te agrupan todas las calidades en el mismo titulo, pero en las paginas de torrents no.Te pueden listar la misma pelicula seguida 3-4 veces seguidas y lo que cambia es la calidad.
Pongo de ejemplo una busqueda del canal.
Aquí hay varias cosas a aclarar:
  • Cuando decimos que hay que poner la calidad, el idioma, el año, etc... en sus respectivos atributos del objeto Item evidentemente es cuando tengamos esos datos. En algunas web estará en el listado de películas y en otras en el listado de enlaces (findvideos). Lo importante es no añadir esos datos en otros atributos como por ejemplo en el título.
  • Ayer ya dije que uno de los factores a la hora de elegir q web se adapta en canal eran las dificultades técnicas y el ejemplo q pones de la búsqueda sería una de esas dificultades. Pero no tiremos la toalla tan rápido, iremos buscando soluciones paso a paso y cuando terminemos veremos como queda el canal. Te propongo comenzar con la sección de Películas.
dan83 escribió:
19 Jun 2018, 16:31
Lo segundo seria el listado de qualities, engloba varias calidades en una, por ejemplo mediaexplorer te pondria 'HD 1080p', pero no sabrias si es microhd,FullBluRay,BDremux,...
Por poner un ejemplo de un usuario cualquiera, yo quiero solo ver microhd, tienen buena calidad y pesan poco,se pueden ver directamente 'sin descargar', pero al meterme solo vere la etiqueta que sea(HD720 o la que sea).Uno mas 'experimentado' si vera el tamaño y se podra guiar y saber si es el bluray completo, si esta ripeado,...
Aquí me gustaría hacer dos preguntas:
  • Entendemos que la función del plugin es ver vídeos ¿No? Se pueden descargar para verlos más tarde, pero en cualquier caso serán vídeos no DVDs o BlueRay con varios vídeos, menús, audios, etc... ¿Correcto?
  • Dicho lo anterior ¿Cuál sería la diferencia entre microhd,FullBluRay,BDremux?