Página 3 de 3

Re: Creacion de canales

Publicado: 26 Jun 2018, 20:40
por caperucitaferoz
Bienvenido bic!!!
Que hilo mas divertido nos quedo!!! :lol: :lol: :lol:
Q habra sido de Paquito? :cry:

Vamos al lio:

Código: Seleccionar todo

124     if 'episodio' in url:
No seais racanos... imaginate que en nombre de la serie (y por tanto tambien en la url) aparece la palabra 'episodio', ya la hemos liado. Propongo if 'serie-episodio-descargar-torrent' in url

En mi caso el if lo pongo despues de crear new_item. Es lo mismo, pero me va mejor para decidir que episodios se incluyen en multi_episodes:

Código: Seleccionar todo

           # si es miniserie
            season = int(season.lower().replace('m', '1'))

            new_item = item.clone(
                tvshowtitle=tvshowtitle.strip(),
                label=tvshowtitle.strip(),
                url=HOST + url,
                action="findvideos",
                thumb=HOST + poster,
                season=season,
                type='episode',
                content_type='servers',
                quality = QLT.get(quality) if quality else item.quality
            )

            num_episode = scrapertools.find_multiple_matches(episode, "(\d+)")
            num_episode = [int(n) for n in num_episode]
            new_item.episode = num_episode[0]

            if len(num_episode) > 1:
                if 'al' in episode and len(num_episode) == 2:
                    multi_episodes = range(num_episode[0], num_episode[1] + 1)
                else:
                    multi_episodes = num_episode

                if 'serie-episodio-descargar-torrent' in url:
                    # Verdaderos multi_episodess
                    new_item.multi_episodes = multi_episodes

                elif 'serie-descargar-torrents' in url:
                    # Falsos multi_episodes
                    new_item.multi_episodes = multi_episodes
                    new_item.content_type = 'episodes'
                    new_item.action='episodes' # Esto lista toda la temporada
                    #new_item.action='filter_multi_episodes' # Esto obtiene solo los episodios indicados

            itemlist.append(new_item)

    # Paginador
    next_url = scrapertools.find_single_match(data, "</span> <a href='(.*?)'")
Lo de multiepisodes, no se muy bien como hacerlo :? , he estado mirando y con range() a lo mejor se podria,con mas tiempo lo miro.
Bueno, supongo que ya lo has visto ;) Efectivamente range() es la opcion.
En findvideos en los de un solo capitulo, pondria un item para ir al listado de la serie(hay una url que dirige a la serie y vale la misma funcion 'episodes'),pero eso mas adelante.
Aqui tengo dos problemas:
  • Realmente ese enlace no es a la serie, sino mas bien a la temporada.
  • En ningun canal anterior se ha puesto ese enlace. No digo que este mal, pero habria que probar la navegacion en todas las plataformas (sobretodo el boton atras) y a ver que piensa el resto del equipo. A lo mejor es una funcionalidad para añadir al core para q todos los canales la tengan.
La intencion es añadir nuevos items a mainlist para buscar Series por letra por ejemplo y obtener las temporadas, etc... Pero eso sera mas adelante.


Creo que no me entendistes bien en mi mensaje anterior. La funcion episodes() debe devolver TODOS los episodios de esta temporada que sean posible visualizar (aunq sea en modo multi_episodio).
Mira esta captura (tmdb lo tengo siempre desactivado mientras programo):
Imagen

Mientras que en la web:
Imagen

Los items de los episodios 2 al 4, por ejemplo, comparten todos la misma url de forma q al abrirlos se nos mostrara el mismo torrent y sera nuestro cliente de torrent quien nos volvera a preguntar si queremos ver el episodio 2, el 3 o el 4. Esto se hace asi para mantener la compatibilidad con otras caracteristicas (la biblioteca o tmdb por ejemplo).


Despues de esto ya hablaremos de filter_multi_episodes() ...

Re: Creacion de canales

Publicado: 27 Jun 2018, 13:30
por bic
caperucitaferoz escribió:
26 Jun 2018, 20:40
Bienvenido bic!!!
Que hilo mas divertido nos quedo!!! :lol: :lol: :lol:
Q habra sido de Paquito? :cry:




Paquito no se si estara en la Tv :lol:


Despues de completar el canal le vi solo como una semana mas conectado por el foro y ya despues desaparecio,de todas formas parecia de esos usuarios que llevan mucho tiempo registrados pero que casi nunca se conectan,parece que seria verdad lo que decia que le pico la curiosidad por saber hacer un canal y como funcionaba,pero yo estoy ya muy acostumbrado a conocer personas por estos foros y luego incluso despues de hacer una buena amistad y hasta parecer que nos entedemos bien como los mejores amigos desaparecer,estas cosas a mi ya hasta me parecen formar parte de la vida y de nuestro lado mas humano o nuestros mejores conceptos de la amistad



Una cosa de Paquito que siempre me estuvo sorprendiendo mucho es su gran parecido con el verdadero y autentico Paco porras de la Tv el cual me parecio siempre que le vi por la tv como uno de los tios mas raros,muchas fueron las veces que me pregunte si nuestro Paquito era el verdadero de la Tv,aunque nuestro paquito parecia mas joven que el de la Tv



¿ Sera posible que a un famosillo de la Tv supiera algo de python y haya conocido este mundillo de kodi y le hubiese picado la curiosidad por aprender a programar y hacer canales ? :lol: :lol: :lol:




Puede que parezca mentira pero estas preguntas me las hice muchas veces a medida que ibamos charlando un dia tras otro por el foro y debo reconocer que le fui cogiendo bastante aprecio,cosa que no me imaginaba que pudiese pasar nunca al ver al paco porras en la Tv como un tio muy raro



Caperucitaferoz sirvete de ver estos links

https://www.google.es/search?q=paco+por ... 66&bih=654


http://www.elcomercio.es/gente-estilo/2 ... 10636.html



https://elpais.com/elpais/album.html



https://www.youtube.com/watch?v=Se52D19ot_o

Re: Creacion de canales

Publicado: 28 Jun 2018, 20:31
por dan83
caperucitaferoz escribió:
26 Jun 2018, 20:40
Creo que no me entendistes bien en mi mensaje anterior. La funcion episodes() debe devolver TODOS los episodios de esta temporada que sean posible visualizar (aunq sea en modo multi_episodio).
Mira esta captura (tmdb lo tengo siempre desactivado mientras programo):

Mientras que en la web:

Los items de los episodios 2 al 4, por ejemplo, comparten todos la misma url de forma q al abrirlos se nos mostrara el mismo torrent y sera nuestro cliente de torrent quien nos volvera a preguntar si queremos ver el episodio 2, el 3 o el 4. Esto se hace asi para mantener la compatibilidad con otras caracteristicas (la biblioteca o tmdb por ejemplo).


Despues de esto ya hablaremos de filter_multi_episodes() ...
Nada :cry: , lo he intendado pero nada, ya en plan ensayo y error pero nada, he visto que habria que hacer un list(range(x,y+1)), el +1 para que pille el ultimo ep.,pero en mi cabeza si, pero en la practica nada :oops:, seguire probando aver...

Re: Creacion de canales

Publicado: 29 Jun 2018, 06:57
por caperucitaferoz
dan83 escribió:
28 Jun 2018, 20:31
...seguire probando aver...
Entonces no cuelgo el codigo completo, sino mejor alguna pista ¿no?
Has de analizar la pagina y por cada enlace encontrado mirar si es de un solo episodio (tipo: "2x03"), en cuyo caso se añade el item sin mas, o por el contrario se incluyen mas de un episodio (tipo "2x03 2x04" o "2x03 al 2x06"). En el caso de que sean varios hemos de averiguar los numeros de episodios incluidos (mira newest_episodes) y guardarlos en una lista. Despues recorremos esa lista añadiendo el item clonado, pero cambiando su numero de episodio (item.episode).


caperucitaferoz escribió:
25 Jun 2018, 12:07
...enviar a findvideos para reproducirlos, pero debemos adaptar esa funcion ya que no es exactamente igual para series q para peliculas, y nos deberia funcionar para cualquier tipo de contenido y calidad.
En tu ultima propuesta eliminaste el tamaño de las peliculas. No se trata de quitar datos, sino de asegurarnos de que si existe se muestre, pero si no existe el codigo no pete:

Código: Seleccionar todo

def findvideos(item):
    (...)
    
    size = scrapertools.find_single_match(data, 'Tamaño:</b> (.*?) .*?<')
    # descargamos la siguiente pagina   
    (...)
    
    itemlist.append(item.clone(
        size= (float(size.replace(',', '.')) * 1024 * 1024) if size else '',
        action="play",
        url=HOST + url,
        type='server',
        server='torrent'
    ))
       

Re: Creacion de canales

Publicado: 02 Jul 2018, 23:37
por caperucitaferoz
Bueno como veo a dan83 un poco perdido os adjunto mi propuesta (es necesario tener el item.py y los perfiles actualizados que os pase hace unos dias).

Atencion es solo un canal de estudio, para nada es un canal que este listo para incluirse ya en la proxima beta.

Voy a comentaros algunas cosas que he ido incorporando:
  • Añadidas algunas nuevas designaciones para las calidades.
  • mainlist():
    • He incluido las etiquetas (type=label) 'Peliculas' y 'Series' para organizar el menu.
    • Fijaros que ahora se incluye, en los items label (y en sus clones) las imagenes por defecto (thumb, icon y poster) y la categoria (atributo category). Esto ultimo permite filtrar los items del menu en funcion de su categoria si se entra al canal desde la opcion Categorias del menu principal.
    • Si os fijais bien vereis que los items de cada seccion en este menu estan desplazados a la derecha. Esto se consigue incluyendo el atributo group=True
  • newest_movies():
    • Observando la web vemos que el numero de elementos por cada pagina es variable y puede llegar a los 60. Si tenemos activo tmdb esto puede ser un poco lento. Por eso hemos incluido una paginacion extra (atributo page) si el numero de items inicial es mayor de 40.
    • Esta misma paginacion se ha incluido tambien en newest_episodes()
  • newest_episodes():
    • Con la linea 191 (actualmente comentada) devolveria toda la temporada en el caso de multi-episodios. En su lugar hemos preferido filtrar los episodios de esa temporada y devolver solo los episodios incluidos en el multi-episodio (podeis probar de descomentar la 191 y comentar la 192)
  • episodes():
    • De manera similar a como lo haciamos en newest_episodes obtenemos (linea 256) del titulo de los enlaces (variable episode) una lista (num_episode) con los numeros de episodios incluidos (fijaros que tienen el formato 2x05 y fijaros tambien en el patron).
      Podremos tener un solo elemento en num_episode (un solo episodio por ejemplo: episode='2x05' -> num_episode=['5']) con lo cual lo añadimos directamente (linea 258).
      Tambien podriamos tener un rango de episodios (por ejemplo: episode='2x05 al 2x07' -> num_episode=['5', '7'] -> multi_episodes=[5, 6, 7]) o un listado de dos o mas episodios (por ejemplo: episode='2x05 - 2x06' -> num_episode=['5', '6'] -> multi_episodes=[5, 6]). En estos caso recorremos la lista multi_episodes y vamos añadiendo los diferentes episodios a itemlist (linea 266)
  • filter_multi_episodes():
    • Aunque ya lo he comentado mas arriba voy a explicar la finalidad de esta funcion con mas detalle. Imaginaros que en newest_episodes nos encontramos con: "1x03: Verano Verde (Cap. 3, 4)" que es un 'falso multi_episodes' cuyo enlace en la web nos dirige al listado de todos los episodios de la primera temporada de esa serie. Creo que si en ese item pone que son los episodios 3 y 4 eso es precisamente lo que debemos mostrar al seleccionarlo y no todos los episodios.
    • Lo que hacemos es recorrer el listado proporcionado por episode() y comprobar si el numero de episodio de cada iteraccion esta o no incluido en item.multi_episodes.
  • findvideos():
    • Dependiendo de la seccion en la web se incluye o no el tamaño, y esa diferencias las debemos de tener en cuenta. (lineas 282 y 289)
Mirar el codigo y leeros con atencion mis comentarios, si alguna cosa no entendeis preguntad.

Aun hay algunas cosas mas que podriamos hacer para completar este canal.

Re: Creacion de canales

Publicado: 05 Jul 2018, 23:37
por dan83
Ni un 'pero',perfecto,me falta mirar 'filter_multi_episodes()',que hay voy a estar entretenido un buen rato :P