Bot para llevar a social feed de RSS

Hasta la fecha veníamos usando gnurss un bot escrito en python la cual podéis clonar aquí https://git.daemons.it/drymer/gnusrss para ‘quipear’ nuestro RSS de este blog en gnusocial.

Ya hacía tiempo que había hecho un intento de crear un plugin para integrarlo con nuestro blog, por cierto actualmente es funcional (tras resolver una “disputa con codex”) y puedes clonarlo desde aqui https://elbinario.net/2016/10/17/plugin-de-wordpress-que-publica-en-gnu-social/ permite publicar automáticamente los post de wordpress en gnusocial pero… Sí por lo visto bloquea el RSS de wordpress, tampoco sabemos porque un plugin puede bloquear una funcionalidad de nuestro wordpress. Así que me propuse reutilizar código para crear un bot genérico en php que recoga el último post de cualquier feed de RSS y lo publique en social. El código también lo puedes clonar desde aquí: http://git.elbinario.net:8000/foo/rssbot.php Ventajas: Ligereza, sencillez, no necesita librerías/interpretes excepto php-xml (normalmente ya está instalador) y como está pensado para nuestro blog en wordpress lógicamente el servidor tiene PHP. Creo que sirve para cualquier servidor que use PHP y tenga un feed de RSS

Inconvenientes: hay que meterlo en el crontab, hay que instalar php-xml, no esta probado con todos los feed XML que devuelven los RSS.

Si todo a ido bien este bot habrá publicado este post en la cuenta de https://gnusocial.net/elbinario

Happy autosocial.

foo bar Written by:

echo "$foo" > bar

9 Comments

  1. puppetmaster
    puppetmaster
    febrero 22
    Reply

    Gracias por el curro foo, va genial ;)

  2. Antonio
    febrero 22
    Reply

    Buenas!
    Gracias por el trabajo. Usamos gnusrss para diferentes webs y cuentas en GNUSocial, pero alguna en concreto daba problemas.
    Descargué el script, instalé dependencias, e hice una prueba. Funcionó, sin problema.
    Sin embargo, al dejarlo configurado con cron, aparece este mensaje de error:
    PHP Parse error: syntax error, unexpected ‘https’ (T_STRING) in /home/xxxx/scripts/rssbot.php/rssbot.php on line 48
    ¿Sabes a qué se refiere el error?
    Asumo que la ejecución es simplemente “php rssbot.php”; los datos que introduje deben estar bien, puesto que funcionó la primera vez…

    • puppetmaster
      puppetmaster
      febrero 23
      Reply

      Seguro que @foo puede guiarte mejor, pero me parece raro, ese error ya que la linea que mencionas es la que hace referencia a el envio de datos a traves de curl sobre la api del nodo, y si te ha funcionado manualmente, te debería de funcionar. Si la forma de invocarlo es la correcta, usando php

    • foo bar
      febrero 23
      Reply

      linea 48 $curl_url = “https://”.$node.”/api/statuses/update.xml”; solo se me ocurre que el nodo use http y no https, asegúrate de tener instalado php-xml y reincia apache o nginx. y si sigue dando problemas puedes pegar la traza en nuestro pad y le echo un ojo.

  3. Antonio
    febrero 24
    Reply

    Pues… a ver, instalé php-xml-parser y php-xml-rss, y reinicié apache. El nodo es quitter.no, que funciona con https.

    Y aquí me pillas… ¿qué traza tendría que copiar?

    • foo bar
      foo bar
      febrero 24
      Reply

      En debian el paquete se llama php-xml a secas. php-xml – DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default]

  4. Antonio
    febrero 24
    Reply

    Aaaah, claro, ahí está el tema. Por lo que veo php-xml está a partir de Stretch; este es un servidor con Jessie (aunque ya le queda poco). Lo dejo aparcado para cuando actualicemos. Gracias!

  5. febrero 26
    Reply

    coñe!!
    funciona muy bien!
    muchas gracias!!!! :)

  6. Antonio
    marzo 5
    Reply

    Por fin, probado en una debian stretch; funciona correctamente. Gracias!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax