bot_plus/utils/bot_plus_comentaris.php
2023-05-24 10:40:54 +02:00

174 líneas
7,4 KiB
PHP

<?php
$tc = microtime(true);
// Comprova els arguments, en cas de no existir ho avisa.
//if ( (!empty($_SERVER["argv"][1])) && (!empty($_SERVER["argv"][2])) && (!empty($_SERVER["argv"][3])) ){
if ( (!empty($_SERVER["argv"][1])) ) {
$argument = $_SERVER["argv"][1];
$data_ina = $_SERVER["argv"][2];
$data_dif = $_SERVER["argv"][3];
} else {
// Presenta l'errada
echo "NO HE REBUT les variables";
// 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.'');
// per quan trasllade aqui la decisió de fer el comentari des de bot_plus
$log->lwrite("Estan activats els comentaris.");
$arrancat = 0;
//$log->lwrite("lloc rebut: ".$lloc."");
//$log->lwrite("data_ina: ".$data_ina." - data_dif: ".$data_dif."");
if ( $data_ina >= $data_dif) {
$log -> lwrite("Arranque comentaris: ".$data_ina." (".gmdate("H:i:s", ($data_ina))." h)");
$arrancat = 1;
// obtindre els perfils dels seguidors cal curl
// GET https://mastodon.example/api/v1/accounts/:id/followers HTTP/1.1
$instancia = "mastodont.cat";
$creador = "https://mastodont.cat/@bonobo";
$inscrit = "1/12/2022";
// activar comentari (private) als seguidors d'inactivitat
// llegir data de la darrera publicació
$com_lle = fopen($lloc."/fitxers/com_pub.txt", "r") or die("No puc obrir la darrera data!");
$com_ant = fread($com_lle,filesize($lloc."/fitxers/com_pub.txt"));
fclose($com_lle);
$espera_coment2 = strtotime($espera_coment2);
$com_ara2 = strtotime("now");
$com_ara3 = ($com_ara2 + rand(-3,3));
// echo "com_ant: ".$com_ant."\n";
// echo "com_com: ".$espera_coment."\n";
// echo "com_ara: ".$com_ara."\n";
$com_dif = ($espera_coment2 - $com_ara2);
// echo "com_dif: ".$com_dif."\n";
$com_ina = ($com_ara2 - $com_ant);
// echo "Inactiu el comentari: ".$com_ina." | ".date("H:i:s",($com_ina-3600))." h | ".$com_dif." \n";
// echo "data_ina: ".$data_ina."\n";
// $inact_pub = $com_ina + 28800;
// echo "inact_pub: ".$inact_pub."\n";
if ($com_ina > $com_dif) {
// echo "Active - temps superat = ".($com_ina > $com_dif)."\n";
// publique sequencialment un missatge per inactivitat
//cal triar un nombre pel divisor. Només si la divisió dona numero sencer es publicarà. (1 tots, 2 la meitat, 3 un de cada tres, ...)
$data_ina_mod = $data_ina + (rand(-300,300));
$publicacio = null;
if ( is_int($com_ara3/7)) {
// $dic = "Soc ".$bot_nom.". Continue actiu, :cli_user: amb la versió ".$bot_versio." i vaig registrar-me el ".$inscrit.".\nAra fa ".date("H:i:s",($data_ina_mod-HoraGmt()))." hores que no hi han novetats per publicar de ".$web_of." 🖥️ .\n#SocUnBot 🤖";
$directori = $lloc."/fitxers/";
$compta_fitxers = count(glob($directori . "*"));
$fitxers = shell_exec("du -h -s ".$directori);
$fit_mat = str_split($fitxers, 4);
//echo "There were $compta_fitxers";
$dic = "Fa ".gmdate("H:i:s",$data_ina_mod)." hores que no publique tuts d'actualitat de ".$web_of.".\n".
"Als meus fitxers, ".$compta_fitxers." en tinc, guarde ".$fit_mat[0]." de dades.\n".
"#SocUnBot\n".
$bot_nom." v".$bot_versio."\n";
} elseif ( is_int($com_ara3/5)) {
$dic = ":cli_user: Continue actiu des del ".$inscrit.".\nAra fa ".gmdate("H:i:s",($data_ina_mod))." hores que no hi ha novetats per publicar. 🖥️ ".$bot_nom." v".$bot_versio." \n#SocUnBot 🤖";
} elseif ( is_int($com_ara3/3)) {
// $dic = "La darrera publicació la vaig fer fa ".date("H:i:s",($data_ina_mod-HoraGmt()))."\n".$bot_nom." ".$bot_versio." :cli_user:.\n#SocUnBot 🤖";
$sensors = shell_exec("sensors");
$faig_ma = explode("\n",$sensors);
$dic = "La darrera publicació la vaig fer fa ".gmdate("H:i:s",($data_ina_mod))."\n".
"Esta és la temperatura dels meus processadors :cli_user:.\n".
$faig_ma[3]."\n".
$faig_ma[4]."\n".
"#SocUnBot\n".
$bot_nom." v".$bot_versio."\n";
} elseif ( is_int($com_ara3/2)) {
// $dic = " ".$bot_nom." ".$bot_versio."\n".date("H:i:s",($data_ina_mod-HoraGmt()))." sense publicar novetats de ".$web_of." 🖥️ .\n#SocUnBot 🤖";
$prev_oratge = shell_exec("ansiweather_mst -a false -l Aigües,ES -H true -s true -d true");
$faig_m = explode("-",$prev_oratge);
$dic = "Fa ".gmdate("H:i:s",($data_ina_mod))." que no he publicat cap tut.\n".
"Esta és la previsió de l'oratge ara mateix a la localitat on està el meu servidor. :cli_user:\n".
$faig_m[0]."\n".
$faig_m[1]."\n".
$faig_m[2]."\n".
$faig_m[3]."\n".
$faig_m[4]."\n".
$faig_m[5]."\n".
$faig_m[6]."\n".
$faig_m[7]."\n".
// $faig_m[8]."\n".
"#SocUnBot #Oratge\n".
$bot_nom." v".$bot_versio."\n";
} else {
// $dic = "ping 🖥️ .\nTemps d'inactivitat:".date("H:i",$data_ina)."\n #SocUnBot ";
$dic = "ping 🖥️ .\n ".$bot_nom." v".$bot_versio."\n#SocUnBot";
}
$publicacio = $dic;
// echo "publicació: ".$publicacio."\n";
if ($publicacio != null) {
// echo "Entre a publicar es cert - ".($publicacio != null)."\n";
// $log->lwrite("Entre a publicar ".($publicacio != null)."");
// publicar (copiat de bot.php)
// Publica a Mastodon
// $headers = [
// 'Authorization: Bearer ' . $token
// ];
$dades_tut = array(
"status" => $publicacio,
"language" => $llengua,
"visibility" => $visib_com
);
// echo print_r($status_data);
// $log->lwrite(print_r($status_data));
PublicaMissatge($base_url,$headers,$dades_tut);
// echo "matriu resposta: \n";
// echo print_r($comentari_resposta)."\n";
// guarde la data de publicació de comentari
// actualitze strtotime del comentari publicat
$com_t = fopen("".$lloc."/fitxers/com_pub.txt", "w") or die("No puc obrir la darrera data!");
// $com_tem = fread($com_t,filesize("".$lloc."/fitxers/com_pub.txt"));
$nou_tem = strtotime("now");
// echo "nou_tem: ".$nou_tem."\n";
fwrite($com_t, $nou_tem);
fclose($com_t);
// echo "comentari (bis): ".$publicacio."";
$log->lwrite($publicacio);
} else {
// echo "No active ";
// echo "No publique per pausa interna.";
$log->lwrite("No publique per pausa interna.");
// no fer res
}
} else {
//echo "Inactiu el comentari: ".$com_ina." | ".date("H:i:s",($com_ina-3600))." h | ".$com_dif." \n";
// llegir el temps de publicació de comentari i calcular el que resta per pausa interna
if($arrancat == 1) {
$log->lwrite("Inactiu el comentari: ".$com_ina." (".gmdate("H:i:s",($com_ina))." h) | ".$com_dif." (".gmdate("H:i:s",($com_dif) ).")");
}
}
// final condició temps inactivitat
}
//if ( (($data_dif - $data_ina) <= 3900)&&(($data_dif - $data_ina) < $espera_coment2) ) {
if ( (($data_dif - $data_ina) <= 3840) ) {
// diferenciar entre pausa de publicació (externa) i el temps d'espera entre comentaris. (PER FER)
// $log->lwrite("A ".date("H:i:s",($data_dif-$data_ina)-HoraGmt())." hores d'arrancar els comentaris.");
if($arrancat == 0) {
$log->lwrite("A ".gmdate("H:i:s",($data_dif-$data_ina))." hores d'arrancar els comentaris.");
}
}
$tcf = microtime(true);
$dc = $tcf - $tc;
//echo "\nTemps comentari dins: ".round($dc,4)." ";
$log->lwrite("Temps comentari: ".round($dc,4)."");
?>