Bilbaobot

From HSS

Proyecto

En mayo de 2024 en HSS realizamos una experiencia de apreciación de fragmentos encontrados en la obra de Francisco Bilbao. El resultado fue un set de frases o párrafos con ideas llamativas e incendiarias para el siglo XIX ¿Y para el siglo XXI? No lo sabemos.

Puedes acceder y seguir al Bilbao Mecánico en las siguientes plataformas.

  • ActivityPub (Mastodon, Pixelfed, Friendica, etc.)

https://botsin.space/@bilbaobot

  • Telegram

https://t.me/hs_bilbao_bot


Código

En cuanto a programación, en bilbaobot está escrito en php. El siguiente código se ejecuta diariamente a las 00hrs de Chile en el servidor anfibio del HSS.

<?php
/*

 BILBAOBOT: el Bilbao Mecánico
    https://hackerspace.cl

*/

//
// escoge frase al azar
//
$archivotoots = file(__DIR__.'/bilbaotoots.txt');
shuffle($archivotoots);
$bilbaodijo = $archivotoots[0];

//
// datos para autenticación
//
$instMastodon  = "zzzz.yy";
$tokenMastodon = "a1a4a7";
$tokenBotTg    = "e2e5e8";
$idChannelTg   = "i3i6i9";

//
// función que postea en mastodon
//
function postToMastodon($data=array(), $tokenMastodon) {
  $accessToken = $tokenMastodon;
  $url = 'https://'.$instMastodon.'/api/v1/statuses';
  $fields['status'] = $data['status'];
  $headers = array(
    "Authorization: Bearer ".$accessToken,
    "Content-Type: application/json",
    "Accept: application/json",
    "Accept-Charset: utf-8"
  );
  $options = array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_POST => TRUE,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_POSTFIELDS => json_encode($fields),
    CURLOPT_TIMEOUT => 20
  );
  $curl = curl_init();
  curl_setopt_array($curl, $options);
  $response = curl_exec($curl);
  curl_close($curl);
  return json_decode($response, true);
}

//
// función que envía msje en telegram
//
function sendMethod($tokenBotTg, $method, $params = array()) {
  $ch = curl_init("https://api.telegram.org/bot$tokenBotTg/$method");
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, ($params));
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux i686; rv:32.0) Gecko/20100101 Firefox/40.0');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5000);
  curl_setopt($ch, CURLOPT_TIMEOUT, 5000);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  return curl_exec($ch);
}
//
// arreglo con msje en telegram
//
$params = array(
  "chat_id" => $idChannelTg,
  "parse_mode" => "Markdown",
  "text" => $bilbaodijo
);


//
// envía frase :-)
//
echo 'enviando: '.$bilbaodijo;
echo postToMastodon(array('status'=>$bilbaodijo),$tokenMastodon);
echo '<hr>';
echo sendMethod($tokenBotTg,"sendMessage",$params);

?>