kralizeck / tvhstar-parche-epg

parche sobre proyecto tvhstar para procesar xml obtenido desde nueva web de guía de movistar - Agosto'18
2 stars 0 forks source link

Error al utilizar el parche #1

Closed gedas07 closed 6 years ago

gedas07 commented 6 years ago

Hola gracias de nuevo por tu paciencia He editado los archivos con mi carpeta de destino . Tambien he editado el server.js y he añadido en: // Fichero final: ficheroXMLTV: '/home/cubie/guia/guia.xml', y luego he realizado un sudo npm run build y antes de hacer el sudo npm run build me salia lo siguiente

**> gedas07@Gedas07-Server:~/tvhstar$ ./parche-epg.sh 07 date: opción inválida -- 'j' Pruebe 'date --help' para más información. date: opción inválida -- 'j' Pruebe 'date --help' para más información.

Solicitando la guía desde el al ...

Warning: Couldn't read data from file "data-test.txt", this makes an empty Warning: POST. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 stat: opción inválida -- '%' Pruebe 'stat --help' para más información. ./parche-epg.sh: línea 39: [: : se esperaba una expresión entera

Convirtiendo /home/cubie/guia/guia.xml a formato xml viejuno de exportación de movistar...

events.js:160 throw er; // Unhandled 'error' event ^

TypeError: Cannot read property 'export' of null at /home/gedas07/tvhstar/borra_duplis_y_ordena.js:49:21 at Parser. (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:489:18) at emitOne (events.js:96:13) at Parser.emit (events.js:188:7) at Parser.exports.Parser.Parser.parseString (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:499:16) at Parser.parseString (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:7:59) at exports.parseString (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:540:19) at /home/gedas07/tvhstar/borra_duplis_y_ordena.js:46:3 at tryToString (fs.js:457:3) at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:444:12)

tvhstar@1.0.0 start /home/gedas07/tvhstar node build/server.js

-- Inicio del ciclo de consulta del EPG


1 - Descarga del EPG XML Movistar => PORT http://comunicacion.movistarplus.es/guiaProgramacion/exportar => EPG 2018-08-24 -> 2018-08-30 1 - Descarga del EPG XML Movistar - OK 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml - OK 3 - Parsing de XML(movistar) a JSON(movistar) 3 - Parsing de XML(movistar) a JSON(movistar) !! ERROR !! Error en la conversion de XML (movistar) a JSON (movistar)** Y hay se queda

kralizeck commented 6 years ago

Ok.

He metido algún gazapo que era de pruebas. Lo arreglo y termino de poner la documentación de uso.

gedas07 commented 6 years ago

ok , perfecto , cuando lo tengas lo pruebo a ver si me funciona

gedas07 commented 6 years ago

Acabo de bajarmelo ahora mismo y he reemplazado he cambiado todo lo que pones por mi fichero de destino /home/cubie/guia/guia.xml y nada , me da este error , ademas me pide password en medio del script

gedas07@Gedas07-Server:~/tvhstar$ ./parche-epg.sh 07 date: opción inválida -- 'j' Pruebe 'date --help' para más información. date: opción inválida -- 'j' Pruebe 'date --help' para más información.

Solicitando la guía desde el al ...

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4171 100 75 100 4096 61 3385 0:00:01 0:00:01 --:--:-- 3387 stat: opción inválida -- '%' Pruebe 'stat --help' para más información. ./parche-epg.sh: línea 40: [: : se esperaba una expresión entera

Convirtiendo /home/cubie/guia/guia.xml a formato xml viejuno de exportación de movistar...

events.js:160 throw er; // Unhandled 'error' event ^

TypeError: Cannot read property 'length' of undefined at /home/gedas07/tvhstar/borra_duplis_y_ordena.js:49:33 at Parser. (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:489:18) at emitOne (events.js:96:13) at Parser.emit (events.js:188:7) at Object.onclosetag (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:447:26) at emit (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:640:35) at emitNode (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:645:5) at closeTag (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:905:7) at Object.write (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:1452:13) at Parser.exports.Parser.Parser.parseString (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:508:31) [sudo] password for gedas07:

tvhstar@1.0.0 start /home/gedas07/tvhstar node build/server.js

-- Inicio del ciclo de consulta del EPG


1 - Descarga del EPG XML Movistar => PORT http://comunicacion.movistarplus.es/guiaProgramacion/exportar => EPG 2018-08-24 -> 2018-08-30 1 - Descarga del EPG XML Movistar - OK 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml - OK 3 - Parsing de XML(movistar) a JSON(movistar) 3 - Parsing de XML(movistar) a JSON(movistar) !! ERROR !! Error en la conversion de XML (movistar) a JSON (movistar)

kralizeck commented 6 years ago

Ya está subida la versión corregida de parche-epg.sh y puesta mucha más documentación (espero que se entienda, aún tengo que aclararme para darle formato al README.md)

Ya me dices qué tal te funciona.

Saludos.

kralizeck commented 6 years ago

Vale. El problema de las "pequeñas diferencias" entre FreeBSD y otros sistemas.

Veo problemas con el comando "date" y el de "stat"

¿Qué sistema usas?

gedas07 commented 6 years ago

Utilizo debian Stretch en un mini pc normal, no es tipo raspberry etc

kralizeck commented 6 years ago

Vamos a probar casi "a pelo". Prueba con este script: parche-epg2.zip

He comentado varias cosas de control de errores y los dos comandos que fallan. Las fechas de petición de guía están fijadas en el script:

desde='2018-08-24'
hasta='2018-08-31'

Descomprímelo en tu carpeta de tvhstar y ejecuta: ./parche-epg2.sh

No hace falta parámetro de días. Lo va a ignorar.

gedas07 commented 6 years ago

he cambiado los permissos con sudo chmod 750 ./parche-epg2.sh porque si no no funconaba y el resultado es

gedas07@Gedas07-Server:~/tvhstar$ sudo ./parche-epg2.sh

Solicitando la guía desde el 2018-08-24 al 2018-08-31...

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4171 100 75 100 4096 64 3529 0:00:01 0:00:01 --:--:-- 3531

Convirtiendo /tmp/guia.movistar-xml-TMP.xml a formato xml viejuno de exportación de movistar...

events.js:160 throw er; // Unhandled 'error' event ^

TypeError: Cannot read property 'length' of undefined at /home/gedas07/tvhstar/borra_duplis_y_ordena.js:49:33 at Parser. (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:489:18) at emitOne (events.js:96:13) at Parser.emit (events.js:188:7) at Object.onclosetag (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:447:26) at emit (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:640:35) at emitNode (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:645:5) at closeTag (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:905:7) at Object.write (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:1452:13) at Parser.exports.Parser.Parser.parseString (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:508:31)

tvhstar@1.0.0 start /home/gedas07/tvhstar node build/server.js

-- Inicio del ciclo de consulta del EPG


1 - Descarga del EPG XML Movistar => PORT http://comunicacion.movistarplus.es/guiaProgramacion/exportar => EPG 2018-08-24 -> 2018-08-30 1 - Descarga del EPG XML Movistar - OK 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml - OK 3 - Parsing de XML(movistar) a JSON(movistar) 3 - Parsing de XML(movistar) a JSON(movistar) !! ERROR !! Error en la conversion de XML (movistar) a JSON (movistar)

kralizeck commented 6 years ago

¿Qué tamaño tiene /tmp/guia.movistar-xml-TMP.xml ? Pásamelo si no es muy pesado.

kralizeck commented 6 years ago

sudo... no hace falta que lo ejecutes como superusuario, si acaso hacerlo ejecutable y después ejecución normal:

sudo chmod +x parche-epg2.sh
./parche-epg2.sh
gedas07 commented 6 years ago

guia.movistar-xml-TMP.xml.txt te lo he renombrado quita el .txt he echo lo de hacerlo ejecutable y entonces me dice permiso denegado tvhstar.sh

kralizeck commented 6 years ago

Está (casi) vacío. No ha descargado nada de guía. Puede ser que el data.txt no esté con el formato correcto después de los primeros errores con el comando date (que no tenga nada en el export-date-from y export-date-to). Ya te digo, de control de errores, poco, poco...

Prueba a descargar de nuevo el data.txt, sustituir el que tienes ahora mismo y volver a ejectuar el parche-epg2.sh

El data.txt tiene que empezar con algo como: action=export_programation&export-date-from=2018-08-23&export-date-to=2018-08-25&export-gender

Sobre lo del sudo, vale, prueba con sudo. Supongo que te descargaste tvhstar como sudo y no tiene permisos de ejecución para usuarios normales.

gedas07 commented 6 years ago

ahora pruebo Hay otro archivo en tmp que es el guia.movistar-xml.xml que hay si que hay datos Quieres que te pase ese?

gedas07 commented 6 years ago

guia.movistar-xml.xml.txt

kralizeck commented 6 years ago

Ese es el que toma tvhstar para generar la guía. El importante ahora mismo es el guia.movistar-xml-TMP.xml que será procesado por borra_duplis_y_ordena.js para generar el archivo guia.movistar-xml.xml, que será procesado por tvhstar... un pequeño enredo.

gedas07 commented 6 years ago

descargado el data.txt y reemplazado creo que ahora OK pero me da el error final de conversion

gedas07@Gedas07-Server:~/tvhstar$ sudo ./parche-epg2.sh

Solicitando la guía desde el 2018-08-24 al 2018-08-31...

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2517k 0 2513k 100 4116 1222k 2001 0:00:02 0:00:02 --:--:-- 1222k

Convirtiendo /tmp/guia.movistar-xml-TMP.xml a formato xml viejuno de exportación de movistar...

Procesando xml /tmp/guia.movistar-xml-TMP.xml


1 - Total pases inciales: 24332 2 - Pases duplicados eliminados: 0 3 - Total pases finales: 24332 4 - Ordenando 24332 pases Total pares de pases comparados: 111138 5 - Total cadenas: 108 (pases totales: 24332 )


Escrito nuevo xml en /home/cubie/guia/guia.xml Ya se puede pasar a tvhstar para que haga su magia...

tvhstar@1.0.0 start /home/gedas07/tvhstar node build/server.js

-- Inicio del ciclo de consulta del EPG


1 - Descarga del EPG XML Movistar => PORT http://comunicacion.movistarplus.es/guiaProgramacion/exportar => EPG 2018-08-24 -> 2018-08-30 1 - Descarga del EPG XML Movistar - OK 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml !! ERROR !! Error en la conversion de XML (movistar) a JSON (movistar)

kralizeck commented 6 years ago

Creo que te has equivocado al editar el fichero borra_duplis_y_ordena.js, has puesto la ruta del guia.xml final (de ese se ocupa tvhstar), tienes que poner este valor en la línea 13: const ficheroXML = '/tmp/guia.movistar-xml.xml'; // fichero de salida

Posiblemente ahora lo tienes con: const ficheroXML = '/home/cubie/guia/guia.xml' // fichero de salida

kralizeck commented 6 years ago

Me corrijo, el valor tiene que ser el mismo que tengas en src/server.js para el fichero temporal que usará tvhstar... allá por la línea 85:

  // Ficheros temporales
  ficheroXML: '/tmp/guia.movistar-xml.xml',

Error mío en la documentación. Ya está corregido.

gedas07 commented 6 years ago

correcto lo tenia asi , pero una vez realizado los cambios peor gedas07@Gedas07-Server:~/tvhstar$ sudo ./parche-epg2.sh

Solicitando la guía desde el 2018-08-24 al 2018-08-31...

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4171 100 75 100 4096 34 1882 0:00:02 0:00:02 --:--:-- 1883

Convirtiendo /tmp/guia.movistar-xml-TMP.xml a formato xml viejuno de exportación de movistar...

events.js:160 throw er; // Unhandled 'error' event ^

TypeError: Cannot read property 'length' of undefined at /home/gedas07/tvhstar/borra_duplis_y_ordena.js:49:33 at Parser. (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:489:18) at emitOne (events.js:96:13) at Parser.emit (events.js:188:7) at Object.onclosetag (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:447:26) at emit (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:640:35) at emitNode (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:645:5) at closeTag (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:905:7) at Object.write (/home/gedas07/tvhstar/node_modules/sax/lib/sax.js:1452:13) at Parser.exports.Parser.Parser.parseString (/home/gedas07/tvhstar/node_modules/xml2js/lib/xml2js.js:508:31)

tvhstar@1.0.0 start /home/gedas07/tvhstar node build/server.js

-- Inicio del ciclo de consulta del EPG


1 - Descarga del EPG XML Movistar => PORT http://comunicacion.movistarplus.es/guiaProgramacion/exportar => EPG 2018-08-24 -> 2018-08-30 1 - Descarga del EPG XML Movistar - OK 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml !! ERROR !! Error en la conversion de XML (movistar) a JSON (movistar)

kralizeck commented 6 years ago

Pásame tu data.txt, borra_duplis_y_ordena.js y src/server.js

gedas07 commented 6 years ago

data.txt borra_duplis_y_ordena.js.txt server.js.txt todos renombrados a txt para poder subirlos

kralizeck commented 6 years ago

Vale, el data.txt está "fastidiao"... no tiene nada en fechas y por eso falla el curl en la descarga.

Vuelve a pisarlo con el del proyecto (y ten una copia descargada para poder copiarlo más rápido)

Los otros dos los veo bien.

kralizeck commented 6 years ago

Y, cuando puedas, pásame la salida de estos dos comandos:

date --help
state --help
gedas07 commented 6 years ago

ahora ha funcionado perfectamente. Ahora como lo hago para que tvheadend lo haga en automatico ? en state --help bash: state: no se encontro la orden

en date --help sale un texto super largo te lo copio?

kralizeck commented 6 years ago

Me alegro que haya funcionado... pero está lejos de estar listo para ponerlo programado.

En realidad tvheadend no pinta mucho en esta parte, él seguirá ejecutando el grabber de luis según lo tengas configurado.

El asunto es programar el script para ejecutarse en tu sistema cada cierto tiempo y que vaya generando un nuevo guia.xml para tvheadend. Yo tengo pensado hacerlo vía cron. Tendrás que investigar tu linux a ver cómo hacerlo.

Pero antes de eso está por solucionar lo de las fechas en formato YYYY-MM-DD, el parche-epg2 tiene las fechas fijadas a mano, para usarlo tendrías que editarlo cada vez para cambiar las variables "desde" y "hasta"

Y sí, pásame la salida del "date --help" en un txt a ver si veo cómo hacerlo compatible para los dos sistemas... o lo hago todo con node.js, tengo que pensarlo y mirarlo.

Saludos.

gedas07 commented 6 years ago

gracias de nuevo por toda tu ayuda vale ya ire utlizandolo a mano y cambiando las fechas .

Has probado este otro archivo grab https://github.com/MovistarTV/tv_grab_es_movistartv https://www.adslzone.net/foro/movistar-tv-imagenio.38/obtener-lista-canales-programacion-movistar-tv.359916/page-11 dicen que va muy bien pero a mi no me funciona del todo , Soy muy novato en linux y me quedo estancado en cuanto sale algun problema

te envio el date help

date--help.txt

kralizeck commented 6 years ago

Hola @gedas07

He hecho varios cambios en parche-epg.sh para que sea compatible con linux (usando perl, que ya hemos comprobado que te funciona) y también que el script sea menos "sensible" a errores de fecha en data.txt

Ya puedes ejecutarlo con un número de días: ./parche-epg.sh 7

Así es más fácil que lo puedas añadir a una tarea programada.

Ya me cuentas.

Saludos.

Ah... se me olvidaba. Sobre el grab que indicas lo miré hace tiempo y, como lo mío es de satélite, pues no me servía para mucho.

gedas07 commented 6 years ago

Muchisimas gracias de nuevo , probado y funciona perfectamente , eso si con sudo delante. si no no hay manera. Tambien me sale esto al finalizar , pero los canales que yo quiero que tvheadend tenga epg salen correctamente ATENCIÓN NO PUEDO CONVERTIR EL SIGUIENTE CANAL PORQUE NO LO TENGO DADO DE ALTA EN cadenasHOME movistar_nombre: M. Disney index: -1

Supongo que si quiero dar de alta algun canal mas con darlo de alta en cadenasHome y luego realizar un npm run build seria suficiente no?

Sockolet commented 6 years ago

Funciona perfectamente. ¡Qué alegría tener la guía de vuelta!

Muchísimas gracias @kralizeck, eres el puto amo :D

kralizeck commented 6 years ago

@gedas07

Supongo que si quiero dar de alta algun canal mas con darlo de alta en cadenasHome y luego realizar un npm run build seria suficiente no?

Con darlo de alta en cadenasHome es suficiente, el npm run build se ejecuta siempre en tvhstar.sh, no hace falta que lo hagas aparte.

@Meiden-fc

Funciona perfectamente. ¡Qué alegría tener la guía de vuelta!

Sí, yo también la echaba muuuchooo de menos... ;-)

Hala, a disfrutarla. Saludos.

gedas07 commented 6 years ago

muchisimas gracias por toda tu ayuda. Saludos