
De los temas de la biblioteca y filtros habla con Seitan, está metido de lleno con eso.
Mensaje por jesus » 11 Jul 2016, 10:41
Mensaje por identidad_oculta » 17 Jul 2016, 17:06
Mensaje por SeiTaN » 17 Jul 2016, 19:00
Mensaje por Cmos » 17 Jul 2016, 19:06
Código: Seleccionar todo
dict_users = {}
channels_path = os.path.join(config.get_runtime_path(), "channels", '*.xml')
# Recorre los xml de la carpeta channels
for infile in sorted(glob.glob(channels_path)):
channel_name = os.path.basename(infile)[:-4]
try:
# Saca el valor del settings del canal
settings = channeltools.get_channel_json(channel_name)["settings"]
for c in settings:
# Si existe el parametro user/password guarda en un dict el valor guardado o el que tenga por defecto
if "id" in c and c["id"] == channel_name + "user":
dict_users[channel_name] = {}
dict_users[channel_name]["user"] = config.get_setting(channel_name + "user", channel_name)
if "id" in c and c["id"] == channel_name + "password":
dict_users[channel_name]["password"] = config.get_setting(channel_name + "password", channel_name)
except:
pass
Mensaje por identidad_oculta » 18 Jul 2016, 23:37
Gracias, encuanto pueda pruebo a vaciar un strm y veo que pasa. He probado de todo, sin conseguir nada. He observado que el contenido de esa serie para ese canal es mas largo que en cualquier otra serie de las que he mirado en varios canales. No se si esto puede ser la razon.SeiTaN escribió:Creo que ya he dado con tu problema de los strm que la biblioteca de Kodi no reconoce... prueba a crearlos vacíos y luego escanea la biblioteca, a ver si te vale.
Respecto a lo del config, quizás te pueda echar mejor una mano superberny, que es desarrollo suyo, yo miraría si con mac, tienes acceso a librerias json.
Gracias, en cuanto vuelva a ponerme con el asunto agrego eso. No tengo conocimiento alguno de Python, bastante me cuesta itentar comprender lo que veo y esas lineas no habria podido redactarlas con facilidad.Cmos escribió:Los "_data.json" creo que solo se generan una vez se modifica algún setting del canal y solo guardan aquellos que tienen algún valor, por eso no lo hace, porque por defecto tanto el usuario como el password están en blanco.
Si no me equivoco no hay ningún método en channeltools con el que puedas saber con certeza qué canal dispone de user/password porque si utilizas el channeltools.get_channel_setting te va a devolver una cadena vacía tanto si el canal dispone de esos settings (es su valor por defecto) como si no. Pero puedes crear tú uno dentro de tu función que lo haga cogiendo algo de código de aquí y allá. Por ejemplo puedes hacer algo como esto y adaptarlo a lo que quieras hacer:
Código: Seleccionar todo
dict_users = {} channels_path = os.path.join(config.get_runtime_path(), "channels", '*.xml') # Recorre los xml de la carpeta channels for infile in sorted(glob.glob(channels_path)): channel_name = os.path.basename(infile)[:-4] try: # Saca el valor del settings del canal settings = channeltools.get_channel_json(channel_name)["settings"] for c in settings: # Si existe el parametro user/password guarda en un dict el valor guardado o el que tenga por defecto if "id" in c and c["id"] == channel_name + "user": dict_users[channel_name] = {} dict_users[channel_name]["user"] = config.get_setting(channel_name + "user", channel_name) if "id" in c and c["id"] == channel_name + "password": dict_users[channel_name]["password"] = config.get_setting(channel_name + "password", channel_name) except: pass
Mensaje por identidad_oculta » 21 Jul 2016, 16:48
Mensaje por SeiTaN » 21 Jul 2016, 18:13
Mensaje por identidad_oculta » 21 Jul 2016, 19:05
Gracias por tu respuesta. Lo que he conseguido que funcione se usa para lo que has dicho, que busque que canales requieren el usuario y contraseña y poder modificarlos desde ahi. Mientras lo hacia me he dado cuenta de algunas de las cosas que comentas, como el doble bucle, pero el objetivo principal era que funcionase y después pediros consejo, así que le dedicare otro rato a corregir esas cosas y afinarlo.SeiTaN escribió:Hola,
Lo que haces es mostrar los canales con user/password en el canal de configuración y permitir modificarlos desde una ventana, no?
No lo he probado y espero no meter el patazo, pero si me han ocurrido posibles mejoras, corrijeme si me equivoco
- No se porque haces dos bucles, ¿porque no recorrer una vez? ordenar la lista alfabeticamente, y primero buscar si tiene user| canaluser y password|canalpassword. Si no tiene esto haces un "continue", lo de comprobar si el canal está activo, adulto (solo lo pondría si tiene puesto que no se muestren y no estoy seguro si hay cuentas que se configuren para contenido porno) , y los idiomas.. no lo veo claro, me explico, si entras para ver tus cuentas configuradas te debería dar igual si el canal está activo o no, ¿que vas a listar 6 en vez de 4 por ejemplo? Lo que quiero es ver los canales que tienen configuración de cuenta.
Si quieres diferenciar el canal que está activo y el que no, podrías cambiarle el color al elemento, gris (inactivo), azul (activo) por ejemplo.
- Referente a buscar user y canaluser he visto que el codigo es un 80% igual, ¿por que no poner un indicador y dependiendo de si ese indicador es user haces su "set" y si es canaluser haces el otro "set"?
- Otra cosilla, si has encontrado el user y pass del canal, yo pondría un "break" en "for c in settings:", ya que no tiene sentido que lo sigas recorriendo.
Mensaje por SeiTaN » 21 Jul 2016, 19:13
Código: Seleccionar todo
# Si existe el parametro user/password guarda en un dict el valor guardado o el que tenga por defecto
if "id" in c and c["id"] == channel_name + "user":
dict_users[channel_name] = {}
if config.get_setting("needsusrandpass", channel_name) != "yes":
config.set_setting("needsusrandpass", "yes", channel_name)
logger.info("Se requiere U/P y se ha especificado")
dict_users[channel_name]["user"] = config.get_setting(channel_name +
"user", channel_name)
if "id" in c and c["id"] == channel_name + "password":
dict_users[channel_name]["password"] = config.get_setting(channel_name +
"password",
channel_name)
Código: Seleccionar todo
# Algunos canales usan "user" en vez de channel_name+"user", y igual con password
if "id" in c and c["id"] == "user":
dict_users[channel_name] = {}
if config.get_setting("needsusrandpass", channel_name) != "yes":
config.set_setting("needsusrandpass", "yes_alt", channel_name)
logger.info("Se requiere U/P y se ha especificado")
dict_users[channel_name]["user"] = config.get_setting("user", channel_name)
if "id" in c and c["id"] == "password":
dict_users[channel_name]["password"] = config.get_setting("password",
channel_name)
Mensaje por identidad_oculta » 24 Jul 2016, 16:05
Este es el foro oficial de soporte para pelisalacarta, tvalacarta y mywebtv.
También es un lugar para compartir tus experiencias con dispositivos multimedia y software media center, puede que encuentres algo interesante que ni siquiera sabías que se podía hacer.
Si estás empezando con Kodi, o si estás interesado en sacarle más partido, puedes echar un vistazo a esta colección de video-tutoriales.
Aprenderás a crear y optimizar tu biblioteca, a instalar add-ons, a buscar subtítulos...
Si tienes un problema en alguno de los plugins y quieres reportarlo, no olvides incluir el log.
Para que resulte útil tienes que activar la opción de "log completo" en el plugin, luego reiniciar Kodi y dar los pasos necesarios hasta que se produzca el problema.
Luego copia tu fichero de log, siguiendo las instrucciones que se describen en este enlace, e inclúyelo al final de la descripción de tu problema.
Si sabes programar, esta serie de tutoriales que describen paso a paso cómo desarrollar tu propio add-on para Kodi.
Y si quieres añadir tus propios canales a pelisalacarta también te contamos paso a paso cómo hacerlo en este enlace.
Usuarios navegando por este Foro: Ahrefs [Bot] y 17 invitados