Para los amantes de la versión HTML traigo novedades! He estado liado modificando la versión HTML para asemejar lo mas posible su funcionamiento a la versión parar XBMC, he tenido que crear una herramienta que he llamada guitools.py, se encarga de gestionar el uso de las librerías especificas de cada plataforma, por poner un ejemplo:
Código: Seleccionar todo
def Dialog_OK(title, text):
if "xbmc" in PLATFORM_NAME:
import xbmcgui
xbmcgui.Dialog().ok(title,text)
elif "mediaserver" in PLATFORM_NAME:
from platformcode.mediaserver import cliente
cliente.Dialogo().MostrarOK(title,text)
Y aquí va lo importante:
Características de la nueva versión HTML:
1. Compatibilidad con los modulos porgramados para XBMC, tan solo hay que cambiarles las llamadas a xmbc.loquesea, por guitools.loquesea, yo ya he cambiado los necesarios para que funcione, pero si la propuesta es aceptada, seria cuestión de cambiarlos todos.
2. Nuevo diseño, basado en pelisalacarta 4.0.
3. Añadidos Dialogos: Alert, Progreso, Pregunta Si/No, Select, Teclado virtual, etc...
4. Los vídeos se reproducen en un Pop-up, dentro de la misma página, con las opciones disponibles hasta ahora, Enlace directo, VLC, HTML5
5. Menu de configuración renovado, ordenado por secciones, también en un popup, y se puede cargar desde cualquier canal con config.open_settings()
6. Biblioteca, favoritos, descargar, lista de descargas, todo funcionando igual que en XBMC
7. Diseño personalizable, editando el archivo pelisalacarta.css, (en un futuro se pueden crear varios diseños y que se puedan escoger desde el cliente, guardar la selección mediante cookies, asi cada cliente podría tener un diseño mas acorde a sus características)
8. Multicliente, Pueden estar varios clientes conectados a la vez y utilizando pelisalacarta en el mismo server
9. Muchas cosas que seguro que me dejo...
Para que todo esto funcione he tenido que usar una conexión websocket cliente/servidor, por defecto en el puerto 8081, navegadores antiguos pueden no ser compatibles, si se carga la página, pero no aparecen las opciones, es que el navegador no es compatible.
Por ahora se que en el blusens, no funciona, aunque todavía me niego a creer que no sea compatible, ya que en el foro de blusens hay un mensaje de 2011 diciendo que no es compatible con websockets, pero que están trabajando en incorporar esta opcion, y de eso ya hace 4 años!
De todos modos, es posible hacer otra versión que en vez de usar websockets, utilize peticiones http, cada x segundos, para comunicar el cliente con el servidor, pero el rendimiento es mucho mejor así, y en principio todos los navegadores con soporte HTML5 deberían funcionar.
Problemas:
Uno de los principales problemas de pelisalacarta HTML, son los "referer", cuando el navegador solicita contenido fuera del server python, (imágenes, videos, etc) envía una cabecera indicando la página de donde proviene dicha solicitud, algunos servers, como medida de protección para que no se enlace a su contenido desde otras páginas, bloquean la conexión, o te muestran otro contenido genérico.
Para solucionar esto con las imágenes, he creado un pequeño "proxy" con el server de python y mediante JavaScript, si la imagen no se carga correctamente, realiza la petición a través del server python, y este solicita la imagen al servidor sin referer, ya que desde JavaScript no se puede eliminar el referer.
El problema viene con los videos, que para hacer lo mismo, el "proxy" tendría que ser un poco mas complejo, para poder solicitar parte del vídeo, avanzar, retroceder, si paras la reproducción, que no siga descargando, etc...
Actualmente esta es la situación:
En PC: con el plugin VLC va perfecto, ya que no envía referer
En Android: (y supongo que iOS igual) puedes abrir el video directamente en el reproductor de android u otro que tengas instalado y va perfectamente.
En WebTV: ahí es donde tengo dudas, ya que no dispongo de ninguna, reproducioendo los videos en HTML5, en principio tendríamos el problema, abrir el enlace directamente, no se como reaccionaria, así que es cuestión de probar
De todas formas este problema esta desde siempre, y creo que afecta a muy pocos servers.
Aquí os la dejo para que podáis trastear y opinar!!!
Espero que os guste.