Pleroma Social

Hola, este post va de Pleroma, una plataforma que federa con GNUSocial y redes sociales con la implementación de OStatus, escrita en mix y que ha sido creada por @lain@pleroma.soykaf.com bajo licencia AGPLv3.

Aquí no vamos a explicaros como instalar vuestra instancia, eso podéis hacerlo hasta en una RaspberryPi, pero si lo hacéis en debian hay que tener el repositorio de erlang para instalar mix

deb https://packages.erlang-solutions.com/debian stretch contrib

instalamos mix y las dependencias necesarias para pleroma como se indica en:

https://git.pleroma.social/pleroma/pleroma/wikis/Installing%20on%20debian%20based%20distributions

Una vez tengamos la instancia de Pleroma funcionando podremos depurar las conexiones que hace cuando envía un post a la plataforma y de esta forma hacer un bot que publique automáticamente, en el siguiente ejemplo vemos un bot de Pleroma que publica una imagen escrito en NodeJS

El bot usa Tor para conectar a Pleroma así nos sentiremos más anonymous, necesitaremos los módulos request, socks5-https-client y fast-xml-parser de NodeJS:

npm install request socks5-https-client fast-xml-parser

bot-pleroma.js

const request = require('request'),
  Agent = require('socks5-https-client/lib/Agent'),
  fastXmlParser = require('fast-xml-parser'),
  fs = require('fs'),
  pleroma = function() {
    request({
      method: 'POST',
      url: 'https://bash-street-boys-and-girls.com/api/statusnet/media/upload',
      strictSSL: false,
      auth: {
        user: 'username',
        pass: 'password'
      },
      agentClass: Agent,
      agentOptions: {
        socksPort: 9050
      },
      formData: {
        media: {
          value: fs.readFileSync(__dirname + '/archivo.jpg'),
          options: {
            name: 'media',
            filename: 'imagen.jpg',
            contentType: 'image/jpg'
          }
        }
      }
    }, function(err, response, body) {
      if(err) return console.log(err)
      else request({
        method: 'POST',
        url: 'https://bash-street-boys-and-girls.com/api/statuses/update.json',
        strictSSL: false,
        auth: {
          user: 'username',
          pass: 'password'
        },
        agentClass: Agent,
        agentOptions: {
          socksPort: 9050
        },
        formData: {
          status: 'Happy Day!!',
          source: 'MyB0t',
          media_ids: fastXmlParser.parse(body).rsp.media_id_string
        }
      }, function(err, response, body) {
        if(err) return console.log(err)
        else console.log(body)
      })
    })
  }
pleroma()

Como podéis ver el bot es muy simple, hace primero un request con Pleroma para enviar la imagen y luego hace otro para publicar el estado con la imagen asociada. En GNUSocial la imagen se puede enviar en la misma petición. Diferencias en las distintas implementaciones que dan la posibilidad del software libre.

Esperemos que sigáis usando OStatus y las redes federadas que dan la libertad de expresión e información libre al mundo.

Hasta la próxima :-)

Compartir

1 Comentario

Deja una respuesta

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