QVIART > QVIART UNDRO 2

Actualizar servidores (card_server.cfg) vía script

(1/2) > >>

unavailable:
A raíz de haber publicado "card_server.cfg desde el terminal de macos" me ha parecido que el siguiente paso era crear un script para automatizarlo.

En principio está desarrollado para macOS y el deco Qviart Undro 2 pero es adaptable para otros S.O. y otros receptores.

El script tiene REMs que lo hacen sencillo de entender, resumiré a continuación lo vital:

- Introducir la IP de nuestro deco en la línea 24 (variable 'ip')
- Introducir el puerto de nuestro deco en la línea 27 (variable 'puerto' por defecto '5555' en el Undro 2)
- Habilitar o inhabilitar Prometheus en la línea 33 (por defecto está en '0' o sea que lo inhabilita)

No se indica de donde sacar las líneas CCcam, cualquier consulta en un buscador arrojará muchas URLs, pero el REM de la línea 18 apunta a un clásico de este foro. Las líneas pueden copiarse y pegarse en un archivo "txt" ('fuente.txt' si no se cambia) sin que sea necesario eliminar la "basura" ya que el código debería depurar lo copiado antes de generar el "card_server.cfg" final. Obviamente puede fallar pero en las pruebas que he realizado desde distintas fuentes ha funcionado correctamente.

Adjunto el código por si alguien prefiere verlo/copiarlo y el script "deco-update.sh" para ser descargado e ir más rápido. Como no se puede subir un archivo con extensión 'sh' lo subo como 'txt' "deco-update.sh.txt" y lo renombráis trás descargarlo.

Espero que le sea útil a alguien.


--- Código: [nofollow] ---#!/bin/bash
# Autor: unavailable (https://www.forokeys.com/foro//pm/?sa=send;u=677846)
# Nombre del script: deco-update.sh
# O.S./deco: script ejecutable desde macOS para el deco: Qviart Undro 2 (no olvidar darle permisos de ejecución: chmod +x)
# Propósito: subir líneas directamente al deco sin hacerlo manualmente desde el mando a distancia.
# Requiere: adb (https://dl.google.com/android/repository/platform-tools-latest-darwin.zip)
# Nota: si mejoras este código, compártelo ;-)

# AVISO IMPORTANTE:
# =================
# Para que el deco admita comandos es necesario haber activado PREVIAMENTE la "depuración USB" en las opciones de desarrolladores.
# Lo más sencillo es hacerlo a través de una APK, por ejemplo:
# "Settings" (https://apkpure.com/es/settings-shortcut/com.MirusApplications.settingsshortcut).

# Instrucciones:
# ==============
# Ir donde se publiquen las líneas para elegir las que queramos
# (algunos lugares ya son clásicos, ver http://bit.ly/2LmEB3g)
# copiarlas y pegarlas en un archivo que se grabará con el nombre
# "fuente.txt" (como texto sin formato).

# Introducir la IP del deco "xxx.xxx.xxx.xxx"
# (la IP puede consultarse en el deco: Ajustes > Red > Seleccionamos LAN/WiFi... > Info)
ip="192.168.1.34"

# Introducir el puerto (por defecto: 5555 para Qviart Undro 2)
puerto="5555"

# Sufijo hora + fecha para la copia de seguridad del card_server.cfg del deco
ahora="$(date +"%d-%m-%Y-%Hh%Mm%Ss")"

# Habilita / inhabilita Prometheus
echo DEFAULT:0 > card_server.cfg # 0 = inhabilita Prometheus / 1 = habilita Prometheus

# Limpieza de la fuente y grabación de la lista de servidores
cat fuente.txt | grep "C: "| # Busca las líneas que empiezan por "C: "
sed 's/C: /C:/g'| # Reemplaza "C: " por "C:"
sed 's/ off/ /'| # Elimina los "off" si los hubiera
sed 's/[[:space:]]/|/g' | # Reemplaza cualquier espacio, tabulador, etc. por un pipe [|]
sed 's/||/|/g' | # Reemplaza repeticiones de pipes [|] si los hubiera por un único pipe [|]
sed 's/|$//' | # Elimina pipe [|] si está al final de una línea
sed 's/$/|1|0/' >> card_server.cfg  # Añade los atributos al final de cada línea y grabao el archivo resultante

# Borra la pantalla del terminal
clear

# Conecta con el deco
./adb connect $ip:$puerto
 
# Baja copia de seguridad de la actual lista de servidores del deco al ordenador
./adb pull /data/data/com.dvb.colors.home/files/card_server.cfg card_server.$ahora.cfg

# Actualiza la lista nueva de servidores subiéndola al deco
./adb push card_server.cfg /data/data/com.dvb.colors.home/app_tmp

# Desconecta del deco
./adb disconnect $ip:$puerto

echo -e "\n"
echo "======================================"
echo "Salvo error en la comunicación hay que"
echo "validar/rechazar la actualización en"
echo "la pantalla conectada al deco."
echo "======================================"
echo -e "\n"

--- Fin del código ---

unavailable:
A continuación una nueva versión del script que ahora saca las líneas CCcam que publica raul7 y las sube al deco mediante el archivo "card_server.cfg" que crea al ser ejecutado. Todo el procedimiento es automático.

Como en la versión anterior, este script tiene REMs que lo hacen sencillo de entender, solo es necesario:

- Introducir la IP de nuestro deco en la línea 22 (variable 'ip')
- Introducir el puerto de nuestro deco en la línea 25 (variable 'puerto' por defecto '5555' en el Undro 2)
- Habilitar o inhabilitar Prometheus en la línea 31 (por defecto está en '0' o sea que lo inhabilita)

Nota: este script ha obtenido el consentimiento de raul7 para ser publicado exclusivamente en forokeys.

Ni que decir tiene que si raul7 cambiase la actual estructura de su archivo, este script podría dejar de funcionar.

Adjunto el código por si alguien prefiere verlo/copiarlo y el script "deco-update-r7.sh" para ser descargado e ir más rápido. Como no se puede subir un archivo con extensión 'sh' lo subo como 'txt' "deco-update-r7.sh.txt" y lo renombráis trás descargarlo.


--- Código: [nofollow] ---#!/bin/bash
# Autor: unavailable (https://www.forokeys.com/foro//pm/?sa=send;u=677846)
# Nombre del script: deco-update-r7.sh
# O.S./deco: script ejecutable desde macOS para el deco: Qviart Undro 2 (no olvidar darle permisos de ejecución: chmod +x)
# Propósito: subir líneas directamente al deco sin hacerlo manualmente desde el mando a distancia.
# Requiere: adb (https://dl.google.com/android/repository/platform-tools-latest-darwin.zip)
# Nota: este script ha obtenido el consentimiento de raul7 para ser publicado exclusivamente en forokeys.

# AVISO IMPORTANTE:
# =================
# Para que el deco admita comandos es necesario haber activado PREVIAMENTE la "depuración USB" en las opciones de desarrolladores.
# Lo más sencillo es hacerlo a través de una APK, por ejemplo:
# "Settings" (https://apkpure.com/es/settings-shortcut/com.MirusApplications.settingsshortcut).

# Instrucciones:
# ==============
# Ejecutar el script y validar la actualización en la pantalla conectada al deco.
# Si raul7 cambiase la actual estructura de su archivo, este script podría dejar de funcionar.

# Introducir la IP del deco "xxx.xxx.xxx.xxx"
# (la IP puede consultarse en el deco: Ajustes > Red > Seleccionamos LAN/WiFi... > Info)
ip="192.168.1.34"

# Introducir el puerto (por defecto: 5555 para Qviart Undro 2)
puerto="5555"

# Sufijo hora + fecha para la copia de seguridad del card_server.cfg del deco
ahora="$(date +"%d-%m-%Y-%Hh%Mm%Ss")"

# Habilita / inhabilita Prometheus
echo DEFAULT:0 > card_server.cfg # 0 = inhabilita Prometheus / 1 = habilita Prometheus

# Acceso a la fuente, limpieza y grabación de la lista de servidores de raul7 en: card_server.cfg (archivo por defecto)
curl -s https://docs.google.com/document/d/1qauC6ynPnINY1ymAIq5RGAuYb31SE1AZT6qei_hCylk/export?format=txt | head -35  | grep "C: " | # Busca solo las SERVER CCCAM MULTIUSER de raul7
sed 's/C: /C:/g'| # Reemplaza "C: " por "C:"
sed 's/ off/ /'| # Elimina los "off" si los hubiera
sed 's/[[:space:]]/|/g' | # Reemplaza cualquier espacio, tabulador, etc. por un pipe [|]
sed 's/||/|/g' | # Reemplaza repeticiones de pipes [|] si los hubiera por un único pipe [|]
sed 's/|$//' | # Elimina pipe [|] si está al final de una línea
sed 's/$/|1|0/' >> card_server.cfg  # Añade los atributos al final de cada línea y grabao el archivo resultante

# Borra la pantalla del terminal
clear

# Conecta con el deco
./adb connect $ip:$puerto
 
# Baja copia de seguridad de la actual lista de servidores del deco al ordenador
./adb pull /data/data/com.dvb.colors.home/files/card_server.cfg card_server.$ahora.cfg

# Actualiza la lista nueva de servidores subiéndola al deco
./adb push card_server.cfg /data/data/com.dvb.colors.home/app_tmp

# Desconecta del deco
./adb disconnect $ip:$puerto

echo "¡finalizado!"

echo -e "\n"
echo "======================================"
echo "Salvo error en la comunicación hay que"
echo "validar/rechazar la actualización en"
echo "la pantalla conectada al deco."
echo "======================================"
echo -e "\n"

--- Fin del código ---

ayoso:
Buenas tardes,

pendón por la pregunta de novato pero...

Para que sirve esto??? Para resucitar los decos expirados???

Gracias y saludos

unavailable:
Pues no, no resucita decos que han expirados. En los REMs está la explicación:


--- Citar ---Propósito: subir líneas directamente al deco sin hacerlo manualmente desde el mando a distancia.
--- Fin de la cita ---

Si no sabes qué son las líneas CCcam no deberías utilizar este script pero hay abundante información al respecto en este foro y en internet en general.

solner:
Hola, gracias por el script, me va ha facilitar mucho la vida,  :D

El problema viene a la hora de ejecutar el script, que comandos introduzco en power shell para enviar el script? Vendría genial un tutorial.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa