Página 1 de 2

Dudas varias al crea mi primer canal

Publicado: 24 Ene 2015, 12:09
por super_berny
Hola a todos,
Permitir que me presente antes de nada: Soy nuevo en esto (xbmc, pelisalacarta, incluso en Python) aunque tengo algunas experiencias en sistemas similares (Showtime PS3, Peli-XR) y otros lenguajes de programación.
He leído todas las guias del blog sobre creación de canales y añadidos, que por cierto aunque esten desactualizadas son buenísimas. Felicidades a Jesus por este trabajo.

Asi que con todo esto me puse a crear mi primer canal (PornHub), y aunque el canal ya funciona me he encontrado con algunas dudas que quisiera plantear divididas por temas:

Pelisalacarta:
  • Cuando entramos en un canal y comenzamos a navegar por su secciones (Novedades, Peliculas, Series, etc..) es fácil perderse. ¿Seria posible incluir un rastro del tipo: Pelisalacarta->Peliculas->NewPct1->Estrenos…?
  • Corregirme si me equivoco, pero creo que ahora los canales listan todos los servidores incluso los que no están soportados por el plugin. Y es al intentar ver el video cuando xbmctools lanza el aviso de servidor no soportado. ¿No seria mas lógico crear una función para filtrar los servidores?
  • Al hilo de lo anterior y de una petición del foro, yo propondría incluir una opción en la configuración para elegir si listar o no servidores Premium cuando no se tiene cuenta en ellos. De modo que la función del apartado anterior, consultando este nuevo setting, filtraría también los servidores en función de las cuentas Premium que tengamos (o solo servidores Free si no tenemos ninguna) o listar todos los soportados.
item.py:
  • No he encontrado ninguna documentación sobre los objetos Item. Me podríais aclara para que se usan los siguientes atributos: plot, childcount, totalItems, overlay.
  • ¿Y que diferencias hay entre title y fulltitle?
Canales:
  • ¿Es necesaria la función test() o por el contrario es algo que esta obsoleto?
  • No acabo de entender el tema de los Fanart. Si quiero poner uno (siempre el mismo) para todo mi canal ¿he de declararlo en cada ítem de cada itemlist de mi canal? O por el contrario hay otro medio para hacerlo.
Para un primer post no esta mal ¿no?
Gracias a todos por la paciencia y sobretodo a Jesus por ser un referente.

Re: Dudas varias al crea mi primer canal

Publicado: 02 Feb 2015, 18:06
por super_berny
Bueno pues como nadie me contesta lo hare yo mismo...
Corregirme si me equivoco, pero creo que ahora los canales listan todos los servidores incluso los que no están soportados por el plugin. Y es al intentar ver el video cuando xbmctools lanza el aviso de servidor no soportado. ¿No seria mas lógico crear una función para filtrar los servidores?
Al hilo de lo anterior y de una petición del foro, yo propondría incluir una opción en la configuración para elegir si listar o no servidores Premium cuando no se tiene cuenta en ellos. De modo que la función del apartado anterior, consultando este nuevo setting, filtraría también los servidores en función de las cuentas Premium que tengamos (o solo servidores Free si no tenemos ninguna) o listar todos los soportados.
He añadido una nueva opcion en el archivo "plugin.video.pelisalacarta\resources\settings.xml":

Código: Seleccionar todo

<category label="30500">

   <setting type="sep" />
	<!-- TODO: Incluir label en los ficheros strings.xml -->
	<setting id="hidepremium" type="bool" label="Ocultar servidores de pago sin cuenta" default="false"/>
		
	<setting type="sep" />

Tambien he añadido lo siguiente en el archivo "plugin.video.pelisalacarta\servers\servertools.py":

Código: Seleccionar todo

# Lista completa de todos los servidores soportados por pelisalacarta, usada para buscar patrones
#ALL_SERVERS = list( set(FREE_SERVERS) | set(FILENIUM_SERVERS) | set(REALDEBRID_SERVERS) | set(ALLDEBRID_SERVERS) )
#ALL_SERVERS.sort()

# Lista de servidores activos en funcion de: Configuracion/Cuentas
if config.get_setting("hidepremium")=="false":
    ENABLED_SERVERS= list( set(FREE_SERVERS) | set(FILENIUM_SERVERS) | set(REALDEBRID_SERVERS) | set(ALLDEBRID_SERVERS) )
else:
    ENABLED_SERVERS= set(FREE_SERVERS)
    if config.get_setting("uploadedtopremium")=="true":
        ENABLED_SERVERS.add('uploadedto')
    if config.get_setting("nowvideopremium")=="true":
        ENABLED_SERVERS.add('nowvideo')
    if config.get_setting("fileniumpremium")=="true":
        ENABLED_SERVERS= ENABLED_SERVERS | set(FILENIUM_SERVERS)
    if config.get_setting("realdebridpremium")=="true":
        ENABLED_SERVERS= ENABLED_SERVERS | set(REALDEBRID_SERVERS)
    if config.get_setting("alldebridpremium")=="true":
        ENABLED_SERVERS= ENABLED_SERVERS | set(ALLDEBRID_SERVERS)
    ENABLED_SERVERS= list (ENABLED_SERVERS)
ENABLED_SERVERS.sort()


# Función genérica para encontrar vídeos en una página
def find_video_items(item=None, data=None, channel=""):

...
...
def findvideos(data):
...
 # Ejecuta el findvideos en cada servidor
    #for serverid in ALL_SERVERS:
    for serverid in ENABLED_SERVERS:
        try:
Lo que hace este codigo es sustituir la lista ALL_SERVERS anterior por una nueva lista (ENABLED_SERVERS) de servidores activos segun nuestra configuracion. Lo cual mejora mucho el rendimiento de la funcion servertools.findvideos.

Por ultimo he añadido una nueva funcion en el archivo serverstools.py para poder saber desde cualquier canal si un servidor en cuestion debe ser mostrado en el listado o no:

Código: Seleccionar todo

def is_server_enabled (server):
    server=scrapertools.find_single_match(server,'(.*?)\..*?')
    return server in ENABLED_SERVERS
Podemos ver como se utiliza esto por ejemplo en el siguiente canal:

Código: Seleccionar todo

datos = re.compile(patron, re.S).findall(match)
            for info in datos:  
                id = info[0]
                servidor = info[1]
                if servertools.is_server_enabled(servidor):
                    Nro = Nro + 1     
                    audio = "Audio:" + info[2]
                    url = "http://www.seriesyonkis.sx" +info[0]
                    scraptedtitle = "%02d) [%s] - [%s] " % (Nro , audio,servidor)
                   
                    itemlist.append( Item(channel=__channel__, action="play" , title=scraptedtitle, fulltitle=item.fulltitle , url=url, thumbnail=item.thumbnail, plot="", folder=False,fanart="http://pelisalacarta.mimediacenter.info/fanart/seriesyonkis.jpg"))
        
Es decir solo añadimos el itemlist si el servidor esta soportado.

Os adjunto los ficheros modificados, solo descomprimir en la carpeta "user_name\AppData\Roaming\Kodi\addons"

Re: Dudas varias al crea mi primer canal

Publicado: 02 Feb 2015, 21:39
por alpelmir
Gracias lo probaré.

Re: Dudas varias al crea mi primer canal

Publicado: 15 Mar 2015, 13:07
por super_berny
supercopito escribió:Una duda super_berny el servertools.py que comentas es el que tienes puesto en tu repositorio git es que a mi por ejemplo en kodi no me funciona no se porque ya que has sacado el tema.
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.SyntaxError'>
Error Contents: ('invalid syntax', ('C:\\Users\\htpc-salon\\AppData\\Roaming\\Kodi\\addons\\plugin.video.pelisalacarta\\servers\\servertools.py', 4, 1, '<!DOCTYPE html>\n'))
Traceback (most recent call last):
File "C:\Users\htpc-salon\AppData\Roaming\Kodi\addons\plugin.video.pelisalacarta\library_service.py", line 15, in <module>
from servers import servertools
SyntaxError: ('invalid syntax', ('C:\\Users\\htpc-salon\\AppData\\Roaming\\Kodi\\addons\\plugin.video.pelisalacarta\\servers\\servertools.py', 4, 1, '<!DOCTYPE html>\n'))
-->End of Python script error report<--

He probado a sustituir la libreria library_service.py por la que tienes en egit y ya no me arroja el error de servertools.py pero sigue arrojandome la de la library.

Perdonad si me aparto de este hilo pero como se mencionado, por eso lo he puesto.
supercopito

Mensajes: 146
Registrado: 02 Feb 2015, 16:12
Si, todas mis variaciones estan en el git.
Pero la modificacion de library_service.py y servertools.py no tienen nada que ver.
El problema es q tienes un error de sintaxis en servertools.py (q no se cual es, ya q a mi no me falla) y al cambiar library_service.py te localiza ahi el fallo por q es la primera vez en la ejecucion del plugin q se importa serverstools.

Ahora bien, me interesa saber por q te da ese sisntax error, por q veo que a mi no me dan problemna en kodi 14 sobre windows y a otros si os da problemas (como el tema de tmdb discutido en otro hilo). Los errores de sintaxis son debidos a q cometemos errores al teclear el codigo o bien a q estamos utilizando diferentes versiones de python. Y esto es lo q mas me preocupa.

Re: Dudas varias al crea mi primer canal

Publicado: 15 Mar 2015, 13:14
por supercopito
Ok lo miro cuando pueda y te comento algo porque me interesa que no aparezcan el la versión html el torrent ya que todavía no está implementado y si tienes toda la razón es mejor aquí.

Re: Dudas varias al crea mi primer canal

Publicado: 15 Mar 2015, 15:31
por supercopito
Uso python 2.7.9 y kodi en windows.
Voy a probar en mac yosemite y te digo algo.

Re: Dudas varias al crea mi primer canal

Publicado: 15 Mar 2015, 15:39
por supercopito
He desistalado kodi he dejado limpio el ordenador de el y lo que guarda de datos también después he vuelto a instalarlo, he metido el addons de pelisalacarta, me he salido fuera he metido tus archivos y ya no da error, por lo que sea algo estaba dando problemas. Pero por lo pronto va bien. Me estoy refiriendo a windows 7.

Re: Dudas varias al crea mi primer canal

Publicado: 15 Mar 2015, 15:52
por supercopito
No da problemas pero si se supone que no tengo activado realdebrid o alldebrid porque por ejemplo en nepwct1 me aparecen los servidores de descarga.

Re: Dudas varias al crea mi primer canal

Publicado: 15 Mar 2015, 18:42
por super_berny
En la configuracion, pestaña cuentas, ¿tienes marcada la opción 'Ocultar servidores de pago sin cuenta'?

Re: Dudas varias al crea mi primer canal

Publicado: 15 Mar 2015, 19:30
por supercopito
Ok no me he dado cuenta que has añadido una modificación en el settings.xml lo mirare.