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.

9 Comments

  1. 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…

    1. 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

    2. 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.

  2. 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?

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

  3. 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!

Leave a Reply

Your email address will not be published. Required fields are marked *

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