gnusrss – Publicando feeds en GNU Social

Esta es una pequeña libreria en python 3, muy mejorable, hecha para usar un script que la use en el crontab o tenerlo en un bot que esté activo todo el tiempo. No lo he probado con otros feeds más que los de elbinario, por lo que cualquier crítica constructiva es bien recibida.

La primera vez que ejecutemos este script no posteará nada en GNU Social, para evitar spam y esas cosas. Será la segunda vez que se ejecute, y que detect algunos cambios, cuando posteará. El funcionamiento es el siguiente: descarga feed con urllib, lo procesa con xml.mindom y lo guarda en un archivo, lo compara con el archivo descargado previamente y si hay alguna diferencia lo postea. Todo con soporte de Tor.

Las instrucciones son las siguientes:

su -c "apt-get install python3-pip" 
su -c "pip-3.2 install pycurl PySocks" #en debian jessie puede salir cómo pip3 
git clone https://gitlab.com/drymer_/gnusrss.git
cd gnusrss

En este directorio veremos example.py, en el que rellenando las variables:

  • feedurl: https://elbinario.net/feed, por ejemplo.
  • username
  • password
  • api_url: una url como http://gnusocial.net/api/statuses/update.xml, sustituyendo gnusocial.net por la de vuestro nodo.

Hecho esto, lo ejecutamos una vez y cuando termine habrá un archivo llamado feed.txt, en el que saldrán los feeds con el formato títulourl acortada.

Hecho esto, sólo queda ponerlo en el crontab con un tiempo de, pongamos, media hora y ya tendremos nuestro publicador de feeds automático. Tal que así:

*/30 * * * * cd ~/Instalados/Proyectos/gnusrss && python3 example.py

Algo a tener en cuenta, el script puede tardar muchos minutos en ejecutarse no por que tarde en descargar sinó por que espera un minuto entre acortar urls, ya que http://pili.la no reacciona bien a hacerlo con menos tiempo.

Compartir

4 Comentarios

Deja una respuesta

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