Bilbaobot

From HSS
Revision as of 19:46, 18 May 2024 by C0 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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);

?>