Bot posteador de reglas en el grupo de telegram

En estos días en 4libertades estamos definiendo las reglas que queremos que nos guíen como comunidad. La idea partió por la propuesta que se hizo en el canal gnu propaganda y tras una votación en el grupo se decidió revisar una por una para discutir si se adoptan para el grupo o no.

La discusión de las reglas estaba haciéndose a partir de un mensaje que yo enviaba diariamente, que abría la conversación respecto a si se tomaba tal cual o se modificaba. No todos los días he podido cumplir con postear una regla a la misma hora, así que decidí usar el bot para que lo haga.

Antes de dejar el código, comento: – creé un archivo de texto plano (reglas4lib) en el que están las reglas, una por línea. Al comienzo de cada una está el número de la regla a revisar; en los números inferiores a 10 agregué un cero, para que quedara de dos dígitos (para efectos de la generación del hashtag). – con cron hice que el archivo expuesto a continuación se ejecute una vez al día.

<?php
# datos del bot y canal de 4lib
$token = "token-del-bot"; 
$channel = "-1001087935936";

function sendMethod($token, $method, $params = array()) {
	$ch = curl_init("https://api.telegram.org/bot$token/$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);
}

# lee reglas, guarda la primera
$reg0 = file('reglas4lib');
$reg1 = $reg0[0];

# escribe archivo de reglas, borrando la primera
$file = fopen('reglas4lib', "w+");

for($i = 0; $i <= (count($reg0)-1); $i++){
    if($i != 0){
        fwrite($file, $reg0[$i]);
    }
}
fclose($file);

$msj= 'Estamos creando las normas de la comunidad 4lib. Por <a href="https://t.me/c/1087935936/74507">votación de los participantes</a> de este grupo se decidió discutir diariamente una por una las <a href="https://t.me/GNUKCG">reglas de comunidad</a> creadas por Richard Stallman y modificadas por Brett Gilio para adaptarlas como nuestras.'.PHP_EOL.'La regla en discusión hoy es la siguiente:'.PHP_EOL.PHP_EOL.'<b>'.$reg1.'</b>'.PHP_EOL.PHP_EOL.'Los comentarios sobre esta regla, por favor, acompáñalos del hashtag #regla'.substr($reg1,0,2).'. Las reglas definitivas serán publicadas en la <a href="https://wiki.cuatrolibertades.org/reglas_de_la_comunidad">wiki de 4libertades</a>.';

# array para enviar por telegram con sendmethod
$params = array(
    "chat_id" => $channel,
    "parse_mode" => "HTML",
    "text" => $msj
);

// manda mensaje
sendMethod($token, "sendMessage", $params);