bot_plus/utils/bot_plus_tut_salutacio.php
2024-08-21 20:49:20 +02:00

155 líneas
4,8 KiB
PHP

<?php
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
$input = $_SERVER["argv"][2];
$en_resposta = $_SERVER["argv"][3];
$usuari = $_SERVER["argv"][4];
$mis_vis = $_SERVER["argv"][5];
} else {
// Presenta l'ajuda
echo "NO HE REBUT la variable\n";
echo "Cal el directori on s'executa el bot_plus.\n";
exit;
}
$lloc = $argument;
// ara podrá carregar la configuració i el logger
include("".$lloc."/configuracio/bot_plus_cfg.php");
include("".$lloc."/utils/bot_plus_funcions.php");
require_once("".$lloc."/lib/logger.php");
// inicia el log
$log = new Logging();
$log->lfile("".$log_fitxer."");
$log -> lwrite("rebut: ".$input."-".$en_resposta."-".$usuari."-".$mis_vis);
$comp_info = strpos($input,"saludabot");
if($comp_info === false) {
$log -> lwrite("Comentari sense etiqueta #saludabot");
} else {
// INFORME
$titol = "Benvingut @".$usuari." \n".
"Soc un bot que publica l'actualitat. Faig un #ResumSetmanal estadístic.\n".
"Estes son les opcions que pots utilitzar:\n".
" #infobot: dades del funcionament intern.\n".
" #usuaribot: resum de la teua activitat setmanal.\n".
" #impulsosbot: resum dels impulsos rebuts.\n".
" #oratgebot: previsió meteorològica on està el servidor.\n".
" #comentabot: afegeix-lo al teu comentari i et faré un tut del que em sembla (en elaboració).\n".
" #saludabot: este missatge.\n".
"Les respostes tenen la visibilitat en que has fet el teu tut.";
//versió
$entra = "Espere que et siguen útils @".$usuari."\n".
$bot_nom." versió: ".$bot_versio."\n";
$com_tut = "#SocUnBot 📝";
$tut = $titol."\n".$entra."\n".$com_tut;
echo $tut."\n";
echo strlen($tut);
$lletres = strlen($tut);
echo $lletres." caracters \n";
$linies_tut = substr_count($tut, "\n");
$nlin = 6;
if ($lletres >= 480) {
//if($linies_tut>=$nlin) {
$pasada = ceil($linies_tut/$nlin);
for($r=1;$r<=$pasada;$r++) {
$tut_complet = $tut;
$linies = explode("\n", $tut_complet);
if($r==1) {
$linies = array_slice($linies, 0, $nlin*$r); //18 is how many lines you want to keep
} else {
$linies = array_slice($linies, $nlin*($r-1), $nlin); //18 is how many lines you want to keep
}
$tut_frag = implode("\n", $linies);
// echo "linies: ".$nlin*$r."\n";
// echo "Tut nº".$r."\n".$tut_frag."\n";
// echo strlen($tut_frag)." caracters \n";
// echo substr_count($tut_frag,"\n")." linies \n";
// echo $linies_tut." linies \n";
// sleep(1);
if($r==1) {
// Publica a Mastodon
$dades_tut = array(
"status" => $tut_frag,
"language" => $llengua,
"visibility" => $mis_vis,
"in_reply_to_id" => $en_resposta
);
} else {
// Publica a Mastodon
$dades_tut = array(
"status" => $tut_frag,
"language" => $llengua,
"visibility" => $mis_vis,
"in_reply_to_id" => $mes_comp_id
);
}
// no es pot aplicar la funció. no retrona el id per fer la resposta o fil.
// PublicaMissatge($base_url,$headers,$tut_data);
$bot_conn = curl_init();
curl_setopt($bot_conn, CURLOPT_URL, $base_url . "/api/v1/statuses");
curl_setopt($bot_conn, CURLOPT_POST, 1);
curl_setopt($bot_conn, CURLOPT_POSTFIELDS, $dades_tut);
curl_setopt($bot_conn, CURLOPT_HTTPHEADER, $headers);
curl_setopt($bot_conn, CURLOPT_RETURNTRANSFER, true);
// $resposta_in = curl_exec($bot_conn);
// $resposta_conn = json_decode($resposta_in,true);
$resposta_conn = json_decode(curl_exec($bot_conn),true);
curl_close ($bot_conn);
// print_r($resposta_conn);
$mes_comp_id = $resposta_conn['id'];
sleep(1);
}
} else {
// publica només un tut
echo $men_resp;
//echo strlen($tut)." caracters \n";
//echo "linies_tut: ".$linies_tut."\n";
// Publica a Mastodon
$dades_tut = array(
"status" => $men_resp,
"language" => $llengua,
"visibility" => $mis_vis,
"in_reply_to_id" => $en_resposta
);
// PublicaMissatge($base_url,$headers,$tut_data);
$bot_conn = curl_init();
curl_setopt($bot_conn, CURLOPT_URL, $base_url . "/api/v1/statuses");
curl_setopt($bot_conn, CURLOPT_POST, 1);
curl_setopt($bot_conn, CURLOPT_POSTFIELDS, $dades_tut);
curl_setopt($bot_conn, CURLOPT_HTTPHEADER, $headers);
curl_setopt($bot_conn, CURLOPT_RETURNTRANSFER, true);
// $resposta_in = curl_exec($bot_conn);
// $resposta_conn = json_decode($resposta_in,true);
$resposta_conn = json_decode(curl_exec($bot_conn),true);
curl_close ($bot_conn);
// echo "resposta del servidor\n";
// print_r($resposta_conn);
// $mes_comp_id = $resposta_conn['id'];
}
//print_r($resposta_conn);
// PublicaMissatge($base_url,$headers,$dades_tut);
//print_r($resposta_conn);
}
?>