Subir archivos a 'utils'

This commit is contained in:
bonobo 2024-08-21 20:50:04 +02:00
pare fcb1653ec3
commit 35ad94c732
S'han modificat 5 arxius amb 1007 adicions i 117 eliminacions

Veure arxiu

@ -0,0 +1,316 @@
<?php
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
$ferfil = $_SERVER["argv"][2];
// $pub = $_SERVER["argv"][2];
} 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."");
// fer el gràfic amb les dades recopilades
//$fer_grafic_imp = shell_exec("php -f ".$lloc."/utils/bot_plus_fergrafic_imp.php ".$lloc);
$fer_grafic_setm = exec("php -f ".$lloc."/utils/bot_plus_fergrafic_setm.php ".$lloc, $eix_grfs, $resp_grfs);
$log -> lwrite("INFO: fer grafic impulsos ".( (($resp_grfs == null))?"correcte":"ERRADA")."");
//echo $resp_grfs;
// IMPULSOS
// puja imatge a mastodont
$pub_cent = ".";
$pub_img = $lloc."/grafic/grafic_setm_imp.png";
$fitxer_tipus = mime_content_type($pub_img);
$publica_img = array(
"file" => $pub_img,
"type"=> $fitxer_tipus,
"description" => 'Gràfic dels reblocs fets durant els dies de la setmana.'
);
$publ_img = json_encode($publica_img);
$status_data = array(
"status" => $pub_cent,
"text" => $pub_cent,
"language" => $llengua,
"visibility" => $visib_com
);
$pub_img = $lloc."/grafic/grafic_setm_imp.png";
$fitxer_tipus = mime_content_type($pub_img);
$fitxer_prep = curl_file_create($pub_img, $fitxer_tipus, 'file');
$publica_img = [ 'file' => $fitxer_prep,
'description' => 'Gràfic dels reblocs fets durant els dies de la setmana.',
'text' => $pub_cent,
'status' => 'Missatge amb imatge des del bot'
];
// pujada de la imatge
$ch_status = curl_init();
curl_setopt($ch_status, CURLOPT_URL, $base_url . "/api/v2/media");
curl_setopt($ch_status, CURLOPT_POST, 1);
curl_setopt($ch_status, CURLOPT_POSTFIELDS, $publica_img);
curl_setopt($ch_status, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch_status, CURLOPT_HTTPHEADER, $headers);
$output_status = json_decode(curl_exec($ch_status),true);
curl_close ($ch_status);
echo "\n\nresposta media : \n";
print_r ($output_status);
$imat_mst = $output_status['id'];
$imat_url = $output_status['url'];
// arreplegar dades imatge pujada
sleep(1);
// PujaImatges($base_url,$imat_mst,$headers,$bot_status);
$bot_status = curl_init();
curl_setopt($bot_status, CURLOPT_URL, $base_url . "/api/v1/media/".$imat_mst."");
curl_setopt($bot_status, CURLOPT_RETURNTRANSFER, true);
curl_setopt($bot_status, CURLOPT_HTTPHEADER, $headers);
$resposta = (curl_exec($bot_status));
$resposta_json = json_decode(curl_exec($bot_status));
curl_close ($bot_status);
$resposta = json_decode($resposta,true);
// echo "\n\nresposta json_decode\n";
// print_r($resposta);
echo "obtenció dades media impulsos: \n";
print_r($resposta_json);
sleep(1);
$im_id = $resposta['id'];
$im_url = $resposta['url'];
$im_type = $resposta['type'];
$im_desc = $resposta['description'];
$img_bis = $lloc."/grafic/grafic_setm_imp.png";
$imatge_adj = array('file' => $im_url, 'type' => $im_type, 'description' => $im_desc);
$imatge_adj_json = json_encode($imatge_adj);
function http_build_query_for_curl( $arrays, &$new = array(), $prefix = null ) {
if ( is_object( $arrays ) ) {
$arrays = get_object_vars( $arrays );
}
foreach ( $arrays AS $key => $value ) {
$k = isset( $prefix ) ? $prefix . '[' . $key . ']' : $key;
if ( is_array( $value ) OR is_object( $value ) ) {
http_build_query_for_curl( $value, $new, $k );
} else {
$new[$k] = $value;
}
}
}
//$tut = $part0."".$part1."\n".$actius_gr."\n".$part2."\n";
$tut = "Reblocs fets cada dia de la setmana.\n".
"#ResumSetmanal #SocUnBot 🤖";
/**
$fitxer = $lloc."/fitxers/impulsos.json";
$json_dec = json_decode(file_get_contents($fitxer), true);
$ara = (filemtime($fitxer));
$maxim = count($json_dec);
$e = 0;
$rb = 0;
$fv = 0;
//$o = 1;
for($e=0;$e<$maxim;$e++) {
// $imp = $json_dec[$e]['mencio'];
if($json_dec[$e]['mencio'] == "reblog") {
$imp = $json_dec[$e]['mis_id'];
$quan_imp = $json_dec[$e]['quan'];
// $imp[$e] = [$json_dec[$e]['mencio'],$json_dec[$e]['qui']];
// $imp_matriu_r[] = $imp ;
$imp_matriu_r[] = $quan_imp ;
// $rb++;
}
if($json_dec[$e]['mencio'] == "favourite") {
$impf = $json_dec[$e]['mis_id'];
$quan_fav = $json_dec[$e]['quan'];
// $imp[$e] = [$json_dec[$e]['mencio'],$json_dec[$e]['qui']];
// $imp_matriu_f[] = $impf ;
$imp_matriu_f[] = $quan_fav ;
// $fv++;
}
}
**/
//echo $tut;
$tut_matriu = array(
"status" => $tut,
"text" => $tut,
"language" => $llengua,
"media_ids[]" => $im_id,
"visibility" => $visib_cent,
"sensitive" => null,
"spoiler_text" => null,
"in_reply_to_id" => $ferfil
);
http_build_query_for_curl( $tut_matriu, $tut_dades );
// PublicaMissatge($headers,$base_url,$tut_dades);
$pub_text_imat = curl_init();
curl_setopt($pub_text_imat, CURLOPT_URL, $base_url . "/api/v1/statuses");
curl_setopt($pub_text_imat, CURLOPT_POST, 1);
curl_setopt($pub_text_imat, CURLOPT_POSTFIELDS, $tut_matriu);
curl_setopt($pub_text_imat, CURLOPT_RETURNTRANSFER, true);
curl_setopt($pub_text_imat, CURLOPT_HTTPHEADER, $headers);
$resposta_img_txt = json_decode(curl_exec($pub_text_imat),true);
curl_close ($pub_text_imat);
// PublicaMissatge($base_url,$headers,$tut_dades);
//print_r($resposta_img_txt);
// final publicar
//}
$ferfil = $resposta_img_txt['id'];
// FAVORITS
// puja imatge a mastodont
$pub_cent = ".";
$pub_imgf = $lloc."/grafic/grafic_setm_fav.png";
$fitxer_tipus = mime_content_type($pub_imgf);
$publica_img = array(
"file" => $pub_img,
"type"=> $fitxer_tipus,
"description" => 'Gràfic dels favorits durant els dies de la setmana.'
);
$publ_img = json_encode($publica_img);
$status_data = array(
"status" => $pub_cent,
"text" => $pub_cent,
"language" => $llengua,
"visibility" => $visib_com
);
$pub_img = $lloc."/grafic/grafic_setm_fav.png";
$fitxer_tipus = mime_content_type($pub_img);
$fitxer_prep = curl_file_create($pub_img, $fitxer_tipus, 'file');
$publica_img = [ 'file' => $fitxer_prep,
'description' => 'Gràfic dels favorits durant els dies de la setmana.',
'text' => $pub_cent,
'status' => 'Missatge amb imatge des del bot'
];
// pujada de la imatge
$ch_status = curl_init();
curl_setopt($ch_status, CURLOPT_URL, $base_url . "/api/v2/media");
curl_setopt($ch_status, CURLOPT_POST, 1);
curl_setopt($ch_status, CURLOPT_POSTFIELDS, $publica_img);
curl_setopt($ch_status, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch_status, CURLOPT_HTTPHEADER, $headers);
$output_status = json_decode(curl_exec($ch_status),true);
curl_close ($ch_status);
echo "\n\nresposta media : \n";
print_r ($output_status);
$imat_mst = $output_status['id'];
$imat_url = $output_status['url'];
// arreplegar dades imatge pujada
sleep(1);
// PujaImatges($base_url,$imat_mst,$headers,$bot_status);
$bot_status = curl_init();
curl_setopt($bot_status, CURLOPT_URL, $base_url . "/api/v1/media/".$imat_mst."");
curl_setopt($bot_status, CURLOPT_RETURNTRANSFER, true);
curl_setopt($bot_status, CURLOPT_HTTPHEADER, $headers);
$resposta = (curl_exec($bot_status));
$resposta_json = json_decode(curl_exec($bot_status));
curl_close ($bot_status);
// var_dump($resposta);
// echo "resposta\n";
// print_r($resposta);
$resposta = json_decode($resposta,true);
// echo "\n\nresposta json_decode\n";
// print_r($resposta);
echo "obtenció dades media favorits: \n";
print_r($resposta_json);
sleep(1);
$im_id = $resposta['id'];
$im_url = $resposta['url'];
$im_type = $resposta['type'];
$im_desc = $resposta['description'];
$img_bis = $lloc."/grafic/grafic_setm_fav.png";
$imatge_adj = array('file' => $im_url, 'type' => $im_type, 'description' => $im_desc);
$imatge_adj_json = json_encode($imatge_adj);
/**
function http_build_query_for_curl( $arrays, &$new = array(), $prefix = null ) {
if ( is_object( $arrays ) ) {
$arrays = get_object_vars( $arrays );
}
foreach ( $arrays AS $key => $value ) {
$k = isset( $prefix ) ? $prefix . '[' . $key . ']' : $key;
if ( is_array( $value ) OR is_object( $value ) ) {
http_build_query_for_curl( $value, $new, $k );
} else {
$new[$k] = $value;
}
}
}
**/
// final fer grafic per publicar
//}
//$tut = $part0."".$part1."\n".$actius_gr."\n".$part2."\n";
$tut = "Favorits fets cada dia de la setmana.\n".
"#ResumSetmanal #SocUnBot 🤖";
//echo $tut;
$tut_matriu = array(
"status" => $tut,
"text" => $tut,
"language" => $llengua,
"media_ids[]" => $im_id,
"visibility" => $visib_cent,
"sensitive" => null,
"spoiler_text" => null,
"in_reply_to_id" => $ferfil
);
http_build_query_for_curl( $tut_matriu, $tut_dades );
// PublicaMissatge($headers,$base_url,$tut_dades);
$pub_text_imat = curl_init();
curl_setopt($pub_text_imat, CURLOPT_URL, $base_url . "/api/v1/statuses");
curl_setopt($pub_text_imat, CURLOPT_POST, 1);
curl_setopt($pub_text_imat, CURLOPT_POSTFIELDS, $tut_matriu);
curl_setopt($pub_text_imat, CURLOPT_RETURNTRANSFER, true);
curl_setopt($pub_text_imat, CURLOPT_HTTPHEADER, $headers);
$resposta_img_txt = json_decode(curl_exec($pub_text_imat),true);
curl_close ($pub_text_imat);
//$graf_fav_setm = shell_exec("/usr/bin/php -f ".$lloc."/proves/bot_plus_favoritsxdies.php ".$lloc." ".$ferfil."");
//$log -> lwrite("INFO: fer tut gràfic de favorits per dies: ".( (($graf_fav_setm != null)||($graf_fav_setm != false))?"correcte":"ERRADA")."");
?>

Veure arxiu

@ -19,6 +19,13 @@ $log = new Logging();
$log->lfile(''.$log_fitxer.'');
$log->lwrite("Estàn activades les estadistiques dels impulsos.");
if($control_memoria_utils == 1) {
$log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria() );
}
$a = 0;
$b = 0;
$c = 0;
$d = 0;
// preparatius i variables comunes
$resposta = ConsultaNotificacions($token,$base_url,$limit_i,$headers);
@ -32,7 +39,7 @@ $espera_ll = fread($espera_ob,filesize($lloc . "/fitxers/impulsos_temps.txt"));
$espera_imp = $espera_ll;
fclose($espera_ob);
// prova
// prova
//$espera_imp = strtotime("now");
$temps_ini = $espera_imp - 604800;
@ -90,7 +97,8 @@ for ($e = 0; $e < $nrm; $e++) {
$escriu_impulsos = fopen($lloc."/fitxers/impulsos.txt", "a") or die("No puc escriure al registre!");
fwrite($escriu_impulsos, $m_id." ".$usuari." ".$impuls_t." ".$miss_id." ".$quan_m."\n");
fclose($escriu_impulsos);
$log->lwrite("NOU IMPULS: ".$m_id." ".$usuari." ".$impuls_t." ".$miss_id." ".$quan_m."");
// $log->lwrite("NOU IMPULS : ".$m_id." ".$usuari." ".$impuls_t." ".$miss_id." ".$quan_m."");
$log->lwrite("NOU IMPULS ".$impuls_t." : ".$m_id." ".$usuari." ".$miss_id." ".$quan_m."");
$imp_mat[] = array ( 'id' => (int)$m_id, 'mis_id' => (int)$miss_id, 'qui' => $usuari, 'impuls' => $impuls_t, 'quan' => $quan_m );
$nm++;
}
@ -102,12 +110,13 @@ if($nm > 0) {
// fer la matriu de les dades existents al json
//$usa_json = exec("php ".$lloc."/proves/proves_impulsos_json.php ".$lloc , $eix_usa_json, $resp_usa_json);
$usa_json = shell_exec("php ".$lloc."/proves/proves_impulsos_json.php ".$lloc);
$usa_json = exec("php ".$lloc."/utils/bot_plus_impulsos_json.php ".$lloc, $eix_ujson, $resp_ujson);
if ( $resp_ujson !=0 ) {
$log -> lwrite("INFO: fer fitxer impulsos json: ".(($resp_ujson == 0)?"correcte":"ERRADA")." - ".__LINE__);
}
// incloure les novetats a la matriu
/**
// actualitza el fitxer json
$fes_json = json_encode($json_dec, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_OBJECT_AS_ARRAY);
@ -126,6 +135,9 @@ $favp = 0;
// aqui if de temps
if($temps_imp >= $espera_imp) {
$act_segs = exec("php -f ".$lloc."/utils/bot_plus_benvinguda_fitx.php ".$lloc, $eix_asegs, $resp_asegs);
$log -> lwrite( "resp_asegs: ".$resp_asegs."" );
//recupera còpia de seguretat, si escau
if( (filesize($lloc."/fitxers/impulsos.txt")) == 0 ) {
$fil_seg = shell_exec("cat ".$lloc."/fitxers/impulsos.bak > ".$lloc."/fitxers/impulsos.txt");
@ -137,7 +149,11 @@ $nseg_ant = fread($nseg_lle,filesize($lloc."/fitxers/seg_cont.txt"));
fclose($nseg_lle);
// fer el gràfic amb les dades recopilades
$fer_grafic_imp = shell_exec($lloc."/utils/bot_plus_fergrafic_imp.php ".$lloc);
//$fer_grafic_imp = shell_exec("php -f ".$lloc."/utils/bot_plus_fergrafic_imp.php ".$lloc);
$fer_grafic_imp = exec("php -f ".$lloc."/utils/bot_plus_fergrafic_imp.php ".$lloc, $eix_grfi, $resp_grfi);
//$log -> lwrite("INFO: fer grafic impulsos: ".( (($fer_grafic != null)||($fer_grafic_imp != false))?"correcte":"ERRADA")."");
$log -> lwrite("INFO: fer grafic impulsos: ".( ($resp_grfi == null)?"correcte":"ERRADA")." - ".__LINE__);
// pujar gràfic
@ -165,7 +181,7 @@ $pub_img = $lloc."/grafic/grafic_imp.png";
$fitxer_tipus = mime_content_type($pub_img);
$fitxer_prep = curl_file_create($pub_img, $fitxer_tipus, 'file');
$publica_img = [ 'file' => $fitxer_prep,
$publica_img = ['file' => $fitxer_prep,
'description' => 'Gràfic impulsos dels '.($nseg_ant).' seguidors.',
'text' => $pub_cent,
'status' => 'missatge amb imatge des del bot'
@ -181,8 +197,8 @@ curl_setopt($ch_status, CURLOPT_HTTPHEADER, $headers);
$output_status = json_decode(curl_exec($ch_status),true);
curl_close ($ch_status);
echo "\n\nresposta media : \n";
print_r ($output_status);
//echo "\n\nresposta media : \n";
//print_r ($output_status);
$imat_mst = $output_status['id'];
$imat_url = $output_status['url'];
@ -212,11 +228,12 @@ $im_url = $resposta['url'];
$im_type = $resposta['type'];
$im_desc = $resposta['description'];
$img_bis = $lloc."/grafic/grafic_imp.png";
//$img_bis = $lloc."/grafic/grafic_imp.png";
$imatge_adj = array('file' => $im_url, 'type' => $im_type, 'description' => $im_desc);
$imatge_adj_json = json_encode($imatge_adj);
//$imatge_adj = array('file' => $im_url, 'type' => $im_type, 'description' => $im_desc);
//$imatge_adj_json = json_encode($imatge_adj);
/**
function http_build_query_for_curl( $arrays, &$new = array(), $prefix = null ) {
if ( is_object( $arrays ) ) {
$arrays = get_object_vars( $arrays );
@ -230,10 +247,9 @@ function http_build_query_for_curl( $arrays, &$new = array(), $prefix = null ) {
}
}
}
**/
//arsort($act_mat_ord);
// reblogs
//$impuls_resum = exec("cat ".$lloc."/fitxers/impulsos.txt | awk '{print $2}'", $eix_ir, $resp_ir );
$impuls_resum = exec("cat ".$lloc."/fitxers/impulsos.txt | grep 'reblog' | awk '{print $2}'", $eix_ir, $resp_ir );
@ -246,14 +262,14 @@ foreach ($mat_reb as $clau => $valor) {
$a++;
}
$us_imp = array_values($mat_reb_f)[0]['nom'];
$nu_imp = array_values($mat_reb_f)[0]['nombre'];
$us_imp0 = array_values($mat_reb_f)[0]['nom'];
$nu_imp0 = array_values($mat_reb_f)[0]['nombre'];
// quants tenen els mateix nombre que el primer?
$acabaa = count($mat_reb_f);
for($i=0;$i<$acabaa;$i++) {
if($mat_reb_f[$i]['nombre'] == $nu_imp) {
$mat_reb_fp[] = array('article' => $clau, 'nombre' => $valor);
if($mat_reb_f[$i]['nombre'] == $nu_imp0) {
$mat_reb_fp[] = array('article' => $mat_reb_f[$i]["nom"], 'nombre' => $mat_reb_f[$i]["nombre"]);
}
}
$tuts_imp_primers = count($mat_reb_fp);
@ -271,14 +287,14 @@ foreach ($mat_fav as $clau => $valor) {
$b++;
}
$us_fav = array_values($mat_fav_f)[0]['nom'];
$nu_fav = array_values($mat_fav_f)[0]['nombre'];
$us_fav0 = array_values($mat_fav_f)[0]['nom'];
$nu_fav0 = array_values($mat_fav_f)[0]['nombre'];
// quants tenen els mateix nombre que el primer?
// quants tuts tenen els mateix nombre que el primer?
$acabaf = count($mat_fav_f);
for($i=0;$i<$acabaf;$i++) {
if($mat_fav_f[$i]['nombre'] == $nu_fav) {
$mat_fav_fp[] = array('article' => $clau, 'nombre' => $valor);
if($mat_fav_f[$i]['nombre'] == $nu_fav0) {
$mat_fav_fp[] = array('article' => $mat_fav_f[$i]["nom"], 'nombre' => $mat_fav_f[$i]["nombre"]);
}
}
$tuts_fav_primers = count($mat_fav_fp);
@ -286,7 +302,7 @@ $tuts_fav_primers = count($mat_fav_fp);
//està activat missatges als usuaris?
if($act_impuls_usu == 1) {
$nrmr = rand(2,3);
$nrmr = rand($min_us,$max_us);
// impulsos
for($f = 0; $f<$nrmr; $f++) {
@ -296,7 +312,6 @@ $nrmr = rand(2,3);
$log -> lwrite ($imp_resp);
// publicar
$imp_dades = array(
"status" => $imp_resp,
"language" => $llengua,
@ -323,7 +338,7 @@ $nrmr = rand(2,3);
"visibility" => $visib_imp_usu
);
PublicaMissatge($base_url,$headers,$imp_dades);
PublicaMissatge($base_url,$headers,$fav_dades);
$favp++;
}
@ -363,44 +378,55 @@ foreach ($mat_res_f as $clau => $valor) {
$d++;
}
//print_r($mes_res_fa);
$mes_fav_id = array_values($mat_res_fa)[0]['article'];
$mes_fav_vl = array_values($mat_res_fa)[0]['nombre'];
//echo $mes_fav_id ."-" $mes_fav_vl;
//exit;
// llegeix el nombre de seguidors
$nseg_lle = fopen($lloc."/fitxers/seg_cont.txt", "r") or die("No puc obrir el nombre seguidors!");
$nseg_ant = fread($nseg_lle,filesize($lloc."/fitxers/seg_cont.txt"));
fclose($nseg_lle);
$n_pub = shell_exec("cat ".$lloc."/fitxers/compte_pub.txt");
$s_pub = shell_exec("cat ".$lloc."/fitxers/compte_setm.txt");
$tuts_setm = ($n_pub - $s_pub);
if($tuts_imp_primers == 1) {
$comp_miss = "Este és el tut ⬆️ que mes heu compartit, ".$mes_comp_vl." ".(($mes_comp_vl<>1)?"voltes":"volta").", des del ".date('d/m/Y',$temps_ini).".\n".
"Moltes gràcies!\n\n".
"Estadístiques 📈 \n".
"Tuts favorits -> ".$d." tuts\n".
"Els han marcat -> ".$b." persones.\n".
"🎖️ Qui més favorits n'ha fet ".$nu_fav."\n".
"Tuts publicats -> ".$tuts_setm."\n".
"Tuts favorits -> ".($d-1)."\n".
"Els han marcat -> ".($b-1)." persones.\n".
"🎖️ Qui més favorits n'ha fet ".$nu_fav0."\n".
"El tut que més n'ha rebut ".$mes_fav_vl."\n".
"Ha participat un ".round( (($b/$nseg_ant)*100), 2 )."% sobre el total dels seguidors.\n".
"Tuts impulsats -> ".$c." tuts\n".
"Els han impulsat -> ".$a." persones.\n".
"🥇 Qui més ha impulsat n'ha fet ".$nu_imp." impulsos.\n".
"Tuts impulsats -> ".($c-1)."\n".
"Els han impulsat -> ".($a-1)." persones.\n".
"🥇 Qui més ha impulsat n'ha fet ".$nu_imp0."\n".
"Ha participat un ".round( (($a/$nseg_ant)*100), 2 )."% sobre el total dels seguidors.\n".
"#ResumSetmanal #SocUnBot \n".$bot_nom." v".$bot_versio."";
} else {
$comp_miss = "Este és un dels ".$tuts_imp_primers ." tuts ⬆️ que mes heu compartit, ".$mes_comp_vl." ".(($mes_comp_vl<>1)?"voltes":"volta").", des del ".date('d/m/Y',$temps_ini).".\n".
"Moltes gràcies!\n\n".
"Estadístiques 📈 \n".
"Tuts favorits -> ".$d." tuts\n".
"Els han marcat -> ".$b." persones.\n".
"🎖️ Qui més favorits n'ha fet ".$nu_fav."\n".
"Tuts publicats -> ".$tuts_setm."\n".
"Tuts favorits -> ".($d-1)."\n".
"Els han marcat -> ".($b-1)." persones.\n".
"🎖️ Qui més favorits n'ha fet ".$nu_fav0."\n".
"El tut que més n'ha rebut ".$mes_fav_vl."\n".
"Ha participat un ".round( (($b/$nseg_ant)*100), 2 )."% sobre el total dels seguidors.\n".
"Tuts impulsats -> ".$c." tuts\n".
"Els han impulsat -> ".$a." persones.\n".
"🥇 Qui més ha impulsat n'ha fet ".$nu_imp." impulsos.\n".
"Tuts impulsats -> ".($c-1)."\n".
"Els han impulsat -> ".($a-1)." persones.\n".
"🥇 Qui més ha impulsat n'ha fet ".$nu_imp0."\n".
"Ha participat un ".round( (($a/$nseg_ant)*100), 2 )."% sobre el total dels seguidors.\n".
"#ResumSetmanal #SocUnBot \n".$bot_nom." v".$bot_versio."";
}
$tut = $comp_miss;
@ -426,24 +452,38 @@ $tut_matriu = array(
"in_reply_to_id" => $mes_comp_id
);
http_build_query_for_curl( $tut_matriu, $tut_dades );
//http_build_query_for_curl( $tut_matriu, $tut_dades );
// PublicaMissatge($headers,$base_url,$tut_dades);
$pub_text_imat = curl_init();
curl_setopt($pub_text_imat, CURLOPT_URL, $base_url . "/api/v1/statuses");
curl_setopt($pub_text_imat, CURLOPT_POST, 1);
curl_setopt($pub_text_imat, CURLOPT_POSTFIELDS, $tut_dades);
curl_setopt($pub_text_imat, CURLOPT_POSTFIELDS, $tut_matriu);
curl_setopt($pub_text_imat, CURLOPT_RETURNTRANSFER, true);
curl_setopt($pub_text_imat, CURLOPT_HTTPHEADER, $headers);
$resposta_img_txt = json_decode(curl_exec($pub_text_imat),true);
curl_close ($pub_text_imat);
//exit;
$mr++;
$ferfil = $resposta_img_txt['id'];
/**
// fer tuts de impulsos i favorits per dies de la setmana
// $graf_imp_setm = shell_exec("/usr/bin/php -f ".$lloc."/proves/bot_plus_estadistiques_inst_impulsos.php ".$lloc." ".$ferfil." 1" );
// $graf_imp_setm = shell_exec("/usr/bin/php -f ".$lloc."/proves/bot_plus_impulsosxdies.php ".$lloc."" );
$log -> lwrite("INFO: fer tut gràfic d'impulsos per dies: ".( (($graf_imp_setm != null)||($graf_imp_setm != false))?"correcte":"ERRADA")."");
// $graf_fav_setm = shell_exec("/usr/bin/php -f ".$lloc."/proves/bot_plus_estadistiques_inst_impulsos.php ".$lloc." ".$ferfil." 1" );
// $graf_fav_setm = shell_exec("/usr/bin/php -f ".$lloc."/proves/bot_plus_favoritsxdies.php ".$lloc." " );
$log -> lwrite("INFO: fer tut gràfic de favorits per dies: ".( (($graf_fav_setm != null)||($graf_fav_setm != false))?"correcte":"ERRADA")."");
**/
// executa tut de persones i instàncies dels impulsos
$activitat_inst = shell_exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_estadistiques_inst_impulsos.php ".$lloc." ".$ferfil." 1" );
// $log -> lwrite("INFO: fer tut instàncies d'impulsos: ".( (($activitat_inst != null)||($activitat_inst != false))?"correcte":"ERRADA")."");
// executa activitat dels seguidors
$activitat_seguidors = shell_exec("/usr/bin/php -f ".$lloc."/proves/proves_activitat_seguidors.php ".$lloc."");
$activitat_seguidors = shell_exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_activitat_seguidors.php ".$lloc."");
$log -> lwrite("INFO: fer tut activitat: ".( (($activitat_seguidors != null)||($activitat_seguidors != false))?"correcte":"ERRADA")." - ".__LINE__);
// final si estadistiques està encés
}
@ -457,7 +497,7 @@ $temps_cal = ($espera_imp - $temps_imp);
$log -> lwrite("Manquen per publicar ".gmdate("d",$temps_cal)." dies i ".gmdate("H:i:s",$temps_cal)." hores");
}
if(($espera_imp - $temps_imp)<= 86400) {
$log->lwrite("".( gmdate("d",$temps_cal)<>1 ? "Manquen ".gmdate('d',$temps_cal)." dies i ".gmdate('H:i:s',$temps_cal)." hores.":"No manca cap dia i ".gmdate('H:i:s',$temps_cal)." hores.")."");
$log->lwrite("".( gmdate("d",$temps_cal)<>1 ? "Manquen ".gmdate('d',$temps_cal)." dies i ".gmdate('H:i:s',$temps_cal)." hores.":"No manca cap dia i només ".gmdate('H:i:s',$temps_cal)." hores.")."");
}
}
@ -471,20 +511,43 @@ $buida_imp = shell_exec(": > ".$lloc."/fitxers/impulsos.txt");
$buida_imp_cp = shell_exec(": > ".$lloc."/fitxers/impulsos.bak");
$buida_json = file_put_contents($lloc."/fitxers/impulsos.json", json_encode([]));
// copia el nombre de tut publicats fins el moment
$copia_ntuts = shell_exec("cat ".$lloc."/fitxers/compte_pub.txt > ".$lloc."/fitxers/compte_setm.txt");
// crea el fitxer per fer el compte de temps
$data_ara = strtotime("now");
$data_conv = strtotime("1 week");
$data_dif = $data_ara - $data_conv;
$data_cal = $data_ara + $data_dif;
$data_conv = ($data_conv + rand(-300,300));
// canviar a aleatori quan ja estiga a l'hora desitjada
$data_conv = ($data_conv - rand(180,300));
//$data_conv = ($data_conv - 720);
// escriu el fitxer per saber quan publicar
$escriu_imp_t = fopen($lloc."/fitxers/impulsos_temps.txt", "w") or die("No puc escriure al registre!");
fwrite($escriu_imp_t, $data_conv);
fclose($escriu_imp_t);
// reinicia el contador d'errades tècniques
$escriu_err_tec = fopen($lloc."/fitxers/errada_cont.txt", "w") or die("No puc escriure al registre!");
fwrite($escriu_err_tec, 1);
fclose($escriu_err_tec);
}
$tcf = microtime(true);
$dc = $tcf - $tc;
$log->lwrite("Temps impulsos: ".round($dc,4)."");
$log->lwrite("Temps impulsos: ".round($dc,4)." segons");
//if($control_memoria == 1) {
//$log -> lwrite ( mostra_us_memoria() );
//$log -> lwrite ( mostra_pic_memoria() );
//}
if($mem_net == 1) {
$resposta = null; $menc_mat = null; $mat_reb_f = null; $mat_reb_fp = null; $mat_fav_f = null; $mat_fav_fp = null; $mat_res_f = null; $mat_res_fa = null;
unset($resposta,$menc_mat,$mat_reb_f,$mat_reb_fp,$mat_fav_f,$mat_fav_fp,$mat_res_f,$mat_res_fa);
}
if($control_memoria_utils == 1) {
$log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria() );
}
?>

Veure arxiu

@ -0,0 +1,183 @@
<?php
$crmn = microtime(true);
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
} 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 pot 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");
//echo $lloc;
//$fitxer = $lloc."/fitxers/mencions.json";
$fitxer = $lloc."/fitxers/impulsos.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_deci = json_decode(file_get_contents($fitxer), true);
//echo "matriu fitxer\n";
//print_r($json_deci);
//echo is_array($json_deci)."\n";
//sleep(2);
$reg_arx = count($json_deci);
echo "L'arxiu té ".$reg_arx." ".(($reg_arx<>1)?"registres":"registre")."\n";
$dades_url = ["mention"];
//http_build_query_for_curl($dades_url, $limita_enq);
// consulta els existents per afegir-los a la matriu existent si no hi son
//$menc_mat_nova = ConsultaNotificacions($token,$base_url,$limit_m,$headers);
$limit_m = 80;
$imp_mat_nova = ConsultaNotificacions($token,$base_url,$limit_m,$headers);
//print_r($imp_mat_nova);
//exit;
$nom_mat = count($imp_mat_nova);
echo "A la instància he repassat les darreres ".$nom_mat." ".(($nom_mat<>1)?"notificacions":"notificació")."\n";
// fer matriu de mencions noves
$imp_mat = array();
if($nom_mat>=1) {
// llegir fitxer de temps
$temps_imp = strtotime("now");
$espera_ob = fopen($lloc . "/fitxers/impulsos_temps.txt", "r") or die("No puc obrir la darrera data!");
$espera_ll = fread($espera_ob,filesize($lloc . "/fitxers/impulsos_temps.txt"));
$espera_imp = $espera_ll;
fclose($espera_ob);
$temps_ini = $espera_imp - 604800;
$mc = 0;
for($f=0;$f<$nom_mat;$f++) {
$men_id = $imp_mat_nova[$f]['id'];
$men_tip = $imp_mat_nova[$f]['type'];
$men_qui = $imp_mat_nova[$f]['account']['acct'];
$men_qua = $imp_mat_nova[$f]['created_at'];
// $men_mid = $imp_mat_nova[$f]['status']['id'];
if( ($men_tip == "reblog")||($men_tip == "favourite") ){
if ( strtotime($men_qua) >= $temps_ini ) {
$men_mid = $imp_mat_nova[$f]['status']['id'];
$imp_mat[] = array ( 'id' => (int)$men_id, 'mis_id' => (int)$men_mid, 'qui' => $men_qui, 'mencio' => $men_tip, 'quan' => $men_qua );
$mc++;
}
// sleep(2);
}
/** else {
// $imp_mat[] = array ( );
$imp_mat[] = array ( 'id' => (int)0, 'mis_id' => (int)0, 'qui' => null, 'mencio' => null, 'quan' => null );
}
**/
}
//print_r($imp_mat);
//exit;
$comprova_mat = is_array($imp_mat);
echo "comprova: ".$comprova_mat."\n";
//echo "menc_mat_f\n";
//print_r($imp_mat);
//sleep(2);
//exit;
// evita repetir
$fins = count($imp_mat);
//if( ($mc<0) ){
echo "De les ".$nom_mat." notificacions, ".$mc." ".(($mc<>1)?"són":"és")." un impuls.\n";
$cont_fit = 0;
//echo $fins."\n";
for($g=0;$g<$fins;$g++) {
$id_busc = $imp_mat[$g]['id'];
$qu_busc = $imp_mat[$g]['qui'];
$tp_busc = $imp_mat[$g]['mencio'];
// echo "id_busc: ".$id_busc."\n";
$troba = array_search($id_busc, array_column($json_deci, 'id'));
// echo "troba: ".$troba."\n";
if( ($troba !== false ) ) {
// echo "El ".$tp_busc." ".$id_busc." de ".$qu_busc." ja està al registre\n";
} else {
if($id_busc<>0) {
echo "NOU IMPULS: ".$tp_busc." ".$id_busc." de ".$qu_busc."\n";
array_push($json_deci,
['id' => (int)$imp_mat[$g]['id'], 'mis_id' => (int)$imp_mat[$g]['mis_id'],
'qui' => $imp_mat[$g]['qui'], 'mencio' => $imp_mat[$g]['mencio'],
'quan' => $imp_mat[$g]['quan']
]);
}
$cont_fit++;
}
}
//echo "matriu després de push\n";
//print_r($json_deci);
if($cont_fit >= 1) {
// actualitza el fitxer json
// $fes_json = json_encode($json_deci, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_OBJECT_AS_ARRAY|JSON_PRETTY_PRINT);
$fes_json = json_encode($json_deci, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$escriu_f_json = fopen($lloc."/fitxers/impulsos.json", "w") or die("No puc escriure al registre!");
fwrite($escriu_f_json, $fes_json);
fclose($escriu_f_json);
}
//fin if matriu de notificacions té registres
}
else {
echo "No hi han mencions noves.\n";
}
// per a fer els repas linia a linia
$maxim = count($json_deci);
$e=0;
/**
//$ara = strtotime("today");
//$ara = strtotime(filemtime($fitxer));
$ara = (filemtime($fitxer));
//echo $ara."\n";
echo "REPASE ".(($maxim<>1)?"ELS ".$maxim." REGISTRES":"EL REGISTRE").".\n";
for($e=0;$e<$maxim;$e++) {
$men_id = $json_deci[$e]['id'];
$men_mi = $json_deci[$e]['mis_id'];
$men_qi = $json_deci[$e]['qui'];
$men_qa = $json_deci[$e]['quan'];
$men_tp = $json_deci[$e]['mencio'];
echo "".$e." -> ".$men_id." | ".$men_mi. " -> ".$men_tp." \t- ".utf8_decode($men_qi)." \t-> ".$men_qa."\n";
// pausa d'un segon
//sleep(1);
//pausa de mig segon (amb microsegons => unitat més sis ceros == segons );
//usleep(200000);
}
**/
if($maxim > $max_linies) {
$json_deci = array_splice($json_deci,($maxim-$max_linies),$maxim);
//print_r($json_deci);
// actualitza el fitxer json
//$fes_json = json_encode($json_deci, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_OBJECT_AS_ARRAY|JSON_PRETTY_PRINT);
$fes_json = json_encode($json_deci, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$escriu_f_json = fopen($lloc."/fitxers/impulsos.json", "w") or die("No puc escriure al registre!");
fwrite($escriu_f_json, $fes_json);
fclose($escriu_f_json);
}
$crmnf = microtime(true);
$tmf = $crmnf - $crmn;
echo "Temps impulsos json: ".round($tmf,4)."";
//$log->lwrite("Temps mencions: ".round($tmf,4)."");
?>

Veure arxiu

@ -3,6 +3,7 @@ $tm = microtime(true);
// Comprova els arguments, en cas de no existir presenta l'ajuda.
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
// $mstg = $_SERVER["argv"][2];
} else {
// Presenta l'ajuda
echo "NO HE REBUT la variable";
@ -19,6 +20,9 @@ $log = new Logging();
$log->lfile(''.$log_fitxer.'');
$log->lwrite("Estàn activades les respostes a les mencions.");
if($control_memoria_utils == 1) {
$log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ );
}
// preparatius i variables comunes
$resposta = ConsultaNotificacions($token,$base_url,$limit_m,$headers);
@ -26,8 +30,9 @@ $resposta = ConsultaNotificacions($token,$base_url,$limit_m,$headers);
$tmc = microtime(true);
$dcon = $tmc - $tm;
//print_r($resposta);
//exit;
$nr = count($resposta);
$menc_mat = array();
$d = 0;
for ($d = 0; $d < $nr; $d++) {
@ -39,19 +44,33 @@ for ($d = 0; $d < $nr; $d++) {
$usu_ac = $resposta[$d]['account']['acct'];
// $usu_no = $resposta[$d]['account']['username'];
// $usu_dp = $resposta[$d]['account']['display_name'];
if ($mencio == "mention") {
$mis_id = $resposta[$d]['status']['id'];
} else { $mis_id = 0; }
$menc_mat[] = array ( 'id' => (int)$men_id, 'mis_id' => (int)$mis_id, 'qui' => $usu_ac, 'mencio' => $mencio, 'quan' => $men_tp );
// }
// echo "tipus de menció ".$d.": ".$mencio." i nº ".$men_id." - qui: ".$qui."\n";
// sleep(1);
$mis_vis = $resposta[$d]['status']['visibility'];
$mstg = html_entity_decode(strip_tags($resposta[$d]['status']['content']));
} else { $mis_id = 0; $mstg = null; $mis_vis = 'direct'; }
// echo "".$mis_vis."-".$d."\n";
$menc_mat[] = array ( 'id' => (int)$men_id, 'mis_id' => (int)$mis_id, 'qui' => $usu_ac, 'mencio' => $mencio, 'quan' => $men_tp, 'que' => $mstg, 'visib' => $mis_vis );
}
//print_r($menc_mat);
//exit;
$nombre_matriu = count($menc_mat);
$men_resp = null;
//if($nombre_matriu >= 1) {
$reg_tam = filesize("".$lloc."/fitxers/mencions_r.txt");
$reg_lin = count(file("".$lloc."/fitxers/mencions_r.txt"));
$reg_lin_bak = count(file("".$lloc."/fitxers/mencions_r.bak"));
if ( ($reg_tam == 0) || ($reg_lin < ($reg_lin_bak)) ) {
$log -> lwrite ("ALERTA! El fitxer mencions_r te ".$reg_lin." linies. Cal posar-ne més.");
$recuperar = 1;
$copia_seguretat_rec = shell_exec("cat ".$lloc."/fitxers/mencions_r.bak > ".$lloc."/fitxers/mencions_r.txt");
} else {
$recuperar = 0;
}
// llegir fitxer per evitar repeticions
$mencio_arx = shell_exec("cat ".$lloc."/fitxers/mencions_r.txt");
@ -67,6 +86,8 @@ for ($e = 0; $e < $nombre_matriu; $e++) {
$usuari= $menc_mat[$e]['qui'];
$mencio_t= $menc_mat[$e]['mencio'];
$temps = $menc_mat[$e]['quan'];
$mstg = $menc_mat[$e]['que'];
$mis_vis = $menc_mat[$e]['visib'];
$mencio_arx = shell_exec("cat ".$lloc."/fitxers/mencions_r.txt");
$no_repetir = strpos($mencio_arx,$miss_id);
if ($mencio_t == "mention") {
@ -77,53 +98,83 @@ for ($e = 0; $e < $nombre_matriu; $e++) {
// sleep(2);
if( ($no_repetir === false) ) {
// echo "menció de : ".$usuari." - ".$mencio_t." - ".$miss_id."\n";
if (is_int($miss_id/7)) {
$men_resp = "Ja em disculparàs, @".$usuari." soc un bot :cli_user: amb la versió ".$bot_versio." i encara no converse. \nDe tota manera, moltes gràcies per la teua menció.\n🤖 #SocUnBot";
} elseif (is_int($miss_id/5)) {
$men_resp = "Moltes gràcies per la menció, @".$usuari.".:cli_user:\n Soc ".$bot_nom." v".$bot_versio." :cli_user:\n🤖 #SocUnBot";
} elseif (is_int($miss_id/3)) {
$men_resp = "He vist que m'has mencionat, @".$usuari." i et done les gràcies.:cli_user:\n Soc ".$bot_nom." v".$bot_versio." :cli_user:\n🤖 #SocUnBot";
} elseif (is_int($miss_id/2)) {
$men_resp = "Agraït per la menció, @".$usuari.".:cli_user:\n Soc ".$bot_nom." v".$bot_versio." :cli_user:\n🤖 #SocUnBot";
} else {
$men_resp = "Gràcies per mencionar-me, @".$usuari.". Soc ".$bot_nom." i la meua versió és ".$bot_versio." :cli_user:.\n🤖 #SocUnBot";
}
if (is_int($miss_id/7)) {
$men_resp = "Ja em disculparàs, @".$usuari." soc un bot :cli_user: amb la versió ".$bot_versio." i estic aprenent a entendre els comentaris. \nDe tota manera, moltes gràcies per la teua menció.\n🤖 #SocUnBot";
} elseif (is_int($miss_id/5)) {
$men_resp = "M'agrada molt que em menciones. Així aprendré a entendre els tuts, @".$usuari.".:cli_user:\n Soc ".$bot_nom." v".$bot_versio." :cli_user:\n🤖 #SocUnBot";
} elseif (is_int($miss_id/3)) {
$men_resp = "He vist que m'has mencionat, @".$usuari." i et done les gràcies per que així aprendré.:cli_user:\n Soc ".$bot_nom." v".$bot_versio." :cli_user:\n🤖 #SocUnBot";
} elseif (is_int($miss_id/2)) {
$men_resp = "Agraït per la menció, @".$usuari.", em serveix per aprendre el vocabulari.:cli_user:\n Soc ".$bot_nom." v".$bot_versio." :cli_user:\n🤖 #SocUnBot";
} else {
$men_resp = "Gràcies per mencionar-me i ajudar-me a entendre el llenguatge natural, @".$usuari.". Soc ".$bot_nom." i la meua versió és ".$bot_versio." :cli_user:.\n🤖 #SocUnBot";
}
// $mem_rep = "Em sembla que el teu comentari @".$usuari." és ".$sentiment."\n".
$en_resposta = $miss_id;
if ( ($men_resp != null) ) {
if($act_mencio_resp == 1) {
// Publica a Mastodon
$dades_tut = array(
"status" => $men_resp,
"language" => $llengua,
"visibility" => $visib_mencs,
"in_reply_to_id" => $en_resposta
);
$conteste = rand(0,1000);
if( ($act_mencio_resp == 1)&&($conteste == 25) ){
//print_r($status_data);
//sleep(10);
PublicaMissatge($headers,$base_url,$dades_tut);
$log->lwrite("NOVA MENCIO: ".$men_resp." : ".$usuari." - id: ".$en_resposta." ");
$contestar = strpos($mstg,"comentabot");
$comp_info = strpos($mstg,"infobot");
$comp_imps = strpos($mstg,"impulsosbot");
$comp_orat = strpos($mstg,"oratgebot");
$comp_salu = strpos($mstg,"saludabot");
$comp_usu = strpos($mstg,"usuaribot");
if( ($contestar == false)&&($comp_info == false)&&
($comp_salu == false)&&($comp_orat == false)&&($comp_imps == false) &&
($comp_usu == false)
) {
// Publica a Mastodon
$dades_tut = array(
"status" => $men_resp,
"language" => $llengua,
// "visibility" => $visib_mencs,
"visibility" => $mis_vis,
"in_reply_to_id" => $en_resposta
);
//print_r($status_data);
//sleep(10);
PublicaMissatge($base_url,$headers,$dades_tut);
$log->lwrite("NOVA MENCIO: ".$men_resp." : ".$usuari." - id: ".$en_resposta." ");
// final detectar etiqueta
}
}
$contestar = strpos($mstg,"comentabot");
$comp_info = strpos($mstg,"infobot");
$comp_imps = strpos($mstg,"impulsosbot");
$comp_orat = strpos($mstg,"oratgebot");
$comp_salu = strpos($mstg,"saludabot");
$comp_usu = strpos($mstg,"usuaribot");
if( ($comp_salu == false)&&($comp_info == false)&&
($comp_imps == false)&&($comp_orat == false)&&
($comp_usu == false)
){
$decisio = TriaOpcio($en_resposta);
if( ($decisio == 1) ||
($decisio == 2) ||
($decisio == 3) ||
($decisio == 4) ||
($decisio == 5) ||
($decisio == 8) ||
($decisio == 9) ) {
($decisio == 5) ) {
//if(is_int($en_resposta/2)) {
FesRebloc($base_url,$en_resposta,$headers);
$heoptat = "he fet impuls";
//print_r($fav_output_status);
} elseif( ($decisio == 6) ||
($decisio == 7) ||
($decisio == 10) ) {
($decisio == 8) ||
($decisio == 9) ) {
FesFavorit($base_url,$en_resposta,$headers);
$heoptat = "he fet favorit";
} else {
@ -133,24 +184,108 @@ for ($e = 0; $e < $nombre_matriu; $e++) {
//print_r($reb_output_status);
}
} else { $heoptat = "Detectada etiqueta interna. Faig el tut de resposta"; }
// escriu la menció al fitxer per no repetir-la
$escriu_mencions = fopen($lloc."/fitxers/mencions_r.txt", "a") or die("No puc escriure al registre!");
fwrite($escriu_mencions, $en_resposta."\n");
fclose($escriu_mencions);
//echo "".$men_resp." - id: ".$en_resposta." ";
$mencs_tam = filesize("".$lloc."/fitxers/mencions_r.txt");
$mencs_lin = count(file("".$lloc."/fitxers/mencions_r.txt"));
$mencs_tam_b = filesize("".$lloc."/fitxers/mencions_r.bak");
$mencs_lin_b = count(file("".$lloc."/fitxers/mencions_r.bak"));
if(($mencs_tam > $mencs_tam_b)||($mencs_lin > $mencs_lin_b)) {
$copia_seguretat = exec("cat ".$lloc."/fitxers/mencions_r.txt > ".$lloc."/fitxers/mencions_r.bak", $eixida_cs, $resposta_cs);
if ($resposta_cs !=0) {
$log -> lwrite("INFO: copia de_seguretat mencions_r: ".( (($resposta_cs == 0))?"correcte":"ERRADA")."");
}
}
if( ($comp_salu == false)&&($comp_info == false)&&($comp_imps == false)&&($comp_orat == false)&&($comp_usu == false) ){
$escriu_mencions_detall = fopen($lloc."/fitxers/mencions.txt", "a") or die("No puc escriure al registre!");
fwrite($escriu_mencions_detall, $m_id."-".$en_resposta."-".$usuari."-".$mencio_t."-".$temps."\n");
fwrite($escriu_mencions_detall, $m_id.":::".$en_resposta.":::".$usuari.":::".$mencio_t.":::".$temps.":::".$mstg."\n");
fclose($escriu_mencions_detall);
$mencs_tam = filesize("".$lloc."/fitxers/mencions.txt");
$mencs_lin = count(file("".$lloc."/fitxers/mencions.txt"));
$mencs_tam_b = filesize("".$lloc."/fitxers/mencions.bak");
$mencs_lin_b = count(file("".$lloc."/fitxers/mencions.bak"));
if(($mencs_tam > $mencs_tam_b)||($mencs_lin > $mencs_lin_b)) {
$copia_seguretat = exec("cat ".$lloc."/fitxers/mencions.txt > ".$lloc."/fitxers/mencions.bak", $eixida_cs, $resposta_cs);
if ($resposta_cs !=0) {
$log -> lwrite("INFO: copia de seguretat mencions detall: ".( (($resposta_cs == 0))?"correcte":"ERRADA")."");
}
}
// echo "He escrit ". $m_id."-".$en_resposta."-".$usu_ac."-".$temps."\n";
$mr++;
}
}
$menc_mat_f[] = array( 'id' => (int)$m_id, 'mis_id' => (int)$miss_id, 'qui' => $usuari, 'mencio' => $mencio_t, 'quan' => $temps );
$menc_mat_f[] = array( 'id' => (int)$m_id, 'mis_id' => (int)$miss_id, 'qui' => $usuari, 'mencio' => $mencio_t, 'quan' => $temps, 'que' => $mstg );
$nm++;
// echo "nm: ".$nm."\n";
$log->lwrite("NOVA MENCIO: ".$usuari." - id: ".$en_resposta." ".$mencio_t." ".$heoptat);
if( ($comp_info === false)&&($comp_salu === false)&&($comp_imps === false)&&($comp_orat === false)&&($comp_usu === false) ) {
// active VaderSentiment
// primer neteje la cadena a enviar
$mstg = html_entity_decode(strip_tags($mstg));
$mstg = str_replace(["'","`","","\n"],' ', $mstg);
$mstg = str_replace(['#','&','"','“','”'],'', $mstg);
$log -> lwrite("envie: ".$mstg."-".$en_resposta."-".$usuari."-".$mis_vis);
$emocio_act = shell_exec("php -f ".$lloc."/proves/proves_conversa.php ".$lloc." '".$mstg."' ".$en_resposta." ".$usuari." ".$temps." ".$mencio_t." ".$m_id."");
$log -> lwrite("INFO: emocio_act ".( ($emocio_act != null)?"correcte":"ERRADA")."");
} else {
// $log -> lwrite("envie: ".$mstg."-".$en_resposta."-".$usuari."-".$mis_vis);
if($comp_info != false) {
$fertutinfobot = exec("php -f ".$lloc."/utils/bot_plus_tut_info.php ".$lloc." '".$mstg."' ".$en_resposta." ".$usuari." ".$mis_vis."" , $ftinfo_eix, $ftinfo_res );
// $log -> lwrite("PROVA: fertutinfobot ".$ftinfo_res);
$log -> lwrite("INFO: fertutinfobot ".( ($ftinfo_res == 0)?"correcte":"ERRADA")."");
// $log -> lwrite("INFO: ".$ftinfo_res." enviat: ".$mstg."-".$en_resposta."-".$usuari."-".$mis_vis."");
}
if($comp_salu != false) {
$fertutsaludabot = exec("php -f ".$lloc."/utils/bot_plus_tut_salutacio.php ".$lloc." '".$mstg."' ".$en_resposta." ".$usuari." ".$mis_vis."" , $ftsalu_eix, $ftsalu_res );
// if($ftsalu_res != 0) {
$log -> lwrite("INFO: fertutsaludabot ".( ($ftsalu_res == 0)?"correcte":"ERRADA")."");
// $log -> lwrite("INFO: ".$ftsalu_res." enviat: '".$mstg."'-".$en_resposta."-".$usuari."-".$mis_vis."");
// }
}
if($comp_imps != false) {
$fertutimpulsosbot = exec("php -f ".$lloc."/utils/bot_plus_tut_impulsos.php ".$lloc." '".$mstg."' ".$en_resposta." ".$usuari." ".$mis_vis."" , $ftimps_eix, $ftimps_res );
// if($ftimps_res != 0) {
$log -> lwrite("INFO: fertutimpulsosbot ".( ($ftimps_res == 0)?"correcte":"ERRADA")."");
// $log -> lwrite("INFO: ".$ftimps_res." enviat: '".$mstg."'-".$en_resposta."-".$usuari."-".$mis_vis."");
// }
}
if($comp_orat != false) {
$fertutoratgebot = exec("php -f ".$lloc."/utils/bot_plus_tut_oratge.php ".$lloc." '".$mstg."' ".$en_resposta." ".$usuari." ".$mis_vis."" , $ftorat_eix, $ftorat_res );
// if($ftorat_res != 0) {
$log -> lwrite("INFO: fertutoratgebot ".( ($ftorat_res == 0)?"correcte":"ERRADA")."");
// $log -> lwrite("INFO: ".$ftorat_res." enviat: '".$mstg."'-".$en_resposta."-".$usuari."-".$mis_vis."");
// }
}
if($comp_usu != false) {
$fertutusuaribot = exec("php -f ".$lloc."/utils/bot_plus_tut_usuari.php ".$lloc." '".$mstg."' ".$en_resposta." ".$usuari." ".$mis_vis."" , $ftusu_eix, $ftusu_res );
// if($ftorat_res != 0) {
$log -> lwrite("INFO: fertutusuaribot ".( ($ftusu_res == 0)?"correcte":"ERRADA")."");
// $log -> lwrite("INFO: ".$ftusu_res." enviat: '".$mstg."'-".$en_resposta."-".$usuari."-".$mis_vis."");
// }
}
}
// final missatge no es nul
}
@ -159,51 +294,89 @@ for ($e = 0; $e < $nombre_matriu; $e++) {
// final bucle for
}
/**
if($nm>=1) {
$fes_json = json_encode($menc_mat_f, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_OBJECT_AS_ARRAY);
$escriu_f_json = fopen($lloc."/fitxers/mencions.json", "a") or die("No puc escriure al registre!");
fwrite($escriu_f_json, $fes_json);
fclose($escriu_f_json);
}
**/
// $menc_json_actual = shell_exec("php /proves/proves_mencions_json.php.");
//print_r($output_status);
//}
//echo $nm."\n";
//final if publicat
// }
// final condicional per estalviar temps(?)
//}
//$impuls = shell_exec("php ".$lloc."/proves/proves_mencions_json.php ".$lloc);
// fer la matriu de les dades existents al json
if ($nm > 0) {
// fer la matriu de les dades existents al json amb filtrat d'etiquetes
if ( ($nm > 0)&&($comp_info == false)&&($comp_salu == false)&&($comp_orat == false)&&($comp_imps == false)&&($comp_usu == false) ) {
//$usa_json = exec("php ".$lloc."/proves/proves_impulsos_json.php ".$lloc , $eix_usa_json, $resp_usa_json);
$usa_json = shell_exec("php ".$lloc."/proves/proves_mencions_json.php ".$lloc);
$usa_json = shell_exec("php ".$lloc."/utils/bot_plus_mencions_json.php ".$lloc);
}
//retalle a un màxim de 40 linies
if($mem_net == 1) { $menc_mat = null; $menc_mat_f = null; unset($menc_mat,$menc_mat_f); }
//retalle a un màxim de XXX linies
$fit_mencions = $lloc."/fitxers/mencions_r.txt";
$lin_men = count(file($fit_mencions));
if($lin_men > 60) {
$net_men0 = shell_exec("tail -60 ".$lloc."/fitxers/mencions_r.txt | tee ".$lloc."/fitxers/mencions_r.txt");
$net_men1 = shell_exec("tail -60 ".$lloc."/fitxers/mencions.txt | tee ".$lloc."/fitxers/mencions.txt");
if( $lin_men > $max_linies ) {
// $net_men0 = shell_exec("tail -".$max_linies." ".$lloc."/fitxers/mencions_r.txt | tee ".$lloc."/fitxers/mencions_r.txt");
$fitx = new SplFileObject($lloc."/fitxers/mencions_r.txt", "r");
$fitx->seek(PHP_INT_MAX);
$last_line = $fitx->key();
$lines = new LimitIterator($fitx, $last_line - $max_linies, $last_line); //n being non-zero positive integer $max_linies
// print_r(iterator_to_array($lines));
// Iterate each element
$it = iterator_to_array($lines);
$escriu_magatzem = fopen($lloc . "/fitxers/mencions_r.txt", "w") or die("No puc escriure la data!");
foreach($it as $ele){
// echo nl2br($ele . "\n");
fwrite($escriu_magatzem, $ele);
// usleep(100000);
}
fclose($escriu_magatzem);
$net_men00= shell_exec("cat ".$lloc."/fitxers/mencions_r.txt > ".$lloc."/fitxers/mencions_r.bak");
usleep(200000);
}
$fit_mencions = $lloc."/fitxers/mencions.txt";
$lin_men = count(file($fit_mencions));
if( $lin_men > $max_linies ) {
// $net_men1 = shell_exec("tail -".$max_linies." ".$lloc."/fitxers/mencions.txt | tee ".$lloc."/fitxers/mencions.txt");
$fitxs = new SplFileObject($lloc."/fitxers/mencions.txt", "r");
$fitxs->seek(PHP_INT_MAX);
$last_lin = $fitxs->key();
$lines = new LimitIterator($fitxs, $last_lin - $max_linies, $last_lin); //n being non-zero positive integer $max_linies
// print_r(iterator_to_array($lines));
// Iterate each element
$it = iterator_to_array($lines);
$escriu_magatzem = fopen($lloc . "/fitxers/mencions.txt", "w") or die("No puc escriure la data!");
foreach($it as $ele){
// echo nl2br($ele . "\n");
fwrite($escriu_magatzem, $ele);
// usleep(100000);
}
fclose($escriu_magatzem);
$net_men1 = shell_exec("cat ".$lloc."/fitxers/mencions.txt > ".$lloc."/fitxers/mencions.bak");
//}
$men_tam = filesize("".$lloc."/fitxers/mencions.txt");
$men_lin = count(file("".$lloc."/fitxers/mencions.txt"));
$men_lin_bak = count(file("".$lloc."/fitxers/mencions.bak"));
if($men_tam == 0) {
$recupera = shell_exec("php ".$lloc."/utils_cli/bot_plus_cli_mencions_json_cli_refer.php ".$lloc);
}
if ($men_lin_bak <= $men_lin) {
$cop_men0 = shell_exec("cat ".$lloc."/fitxers/mencions_r.txt > ".$lloc."/fitxers/mencions_r.bak");
$cop_men1 = shell_exec("cat ".$lloc."/fitxers/mencions.txt > ".$lloc."/fitxers/mencions.bak");
}
}
$tmf = microtime(true);
$dm = $tmf - $tm;
//echo "Temps mencions: ".round($dm,4)."";
$log->lwrite("Temps mencions: ".round($dm,4)."");
$log->lwrite("Temps mencions: ".round($dm,4)." segons");
// afegir aqui i arrancar els impulsos?
// buidar variables
if($mem_net == 1) {
$resposta = null; $lin_men = null; $reg_lin = null; $reg_lin_bak = null; $mencs_lin = null; $mencs_lin_b = null;
unset($resposta,$lin_men,$reg_lin,$reg_lin_bak,$mencs_lin,$mencs_lin_b);
}
if($control_memoria_utils == 1) {
$log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ );
}
?>

Veure arxiu

@ -0,0 +1,155 @@
<?php
$crmn = microtime(true);
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
} 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 pot 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");
//echo $lloc;
//$fitxer = $lloc."/fitxers/mencions.json";
$fitxer = $lloc."/fitxers/mencions.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_decjm = json_decode(file_get_contents($fitxer), true);
//echo "matriu fitxer\n";
//print_r($json_dec);
//echo is_array($json_dec)."\n";
//sleep(2);
$reg_arx = count($json_decjm);
echo "L'arxiu té ".$reg_arx." ".(($reg_arx<>1)?"registres":"registre")."\n";
$dades_url = ["mention"];
//http_build_query_for_curl($dades_url, $limita_enq);
// consulta els existents per afegir-los a la matriu existent si no hi son
//$menc_mat_nova = ConsultaNotificacions($token,$base_url,$limit_m,$headers);
$limit_m = 80;
$menc_mat_nova = ConsultaNotificacions($token,$base_url,$limit_m,$headers);
//print_r($menc_mat_nova);
//exit;
$nom_mat = count($menc_mat_nova);
echo "A la instància he repassat les darreres ".$nom_mat." ".(($nom_mat<>1)?"notificacions":"notificació")."\n";
// fer matriu de mencions noves
$menc_mat = array();
if($nom_mat>=1) {
$mc = 0;
for($f=0;$f<$nom_mat;$f++) {
$men_id = $menc_mat_nova[$f]['id'];
$men_tip = $menc_mat_nova[$f]['type'];
$men_qui = $menc_mat_nova[$f]['account']['acct'];
$men_qua = $menc_mat_nova[$f]['created_at'];
if($men_tip == "mention") { $men_mid = $menc_mat_nova[$f]['status']['id']; $men_que = $menc_mat_nova[$f]['status']['content']; }
else { $men_mid = 0; $men_que = null; }
if($men_tip == "mention") {
$men_mid = $menc_mat_nova[$f]['status']['id'];
// $men_que = $menc_mat_nova[$f]['status']['content'];
$men_que = html_entity_decode(strip_tags($menc_mat_nova[$f]['status']['content']));
$menc_mat[] = array ( 'id' => (int)$men_id, 'mis_id' => (int)$men_mid, 'qui' => $men_qui, 'mencio' => $men_tip, 'quan' => $men_qua, 'que' => $men_que );
$mc++;
// sleep(2);
}
/** else {
// $menc_mat[] = array ( );
$menc_mat[] = array ( 'id' => (int)0, 'mis_id' => (int)0, 'qui' => null, 'mencio' => null, 'quan' => null );
}
**/
}
$comprova_mat = is_array($menc_mat);
echo "comprova: ".$comprova_mat."\n";
//echo "menc_mat_f\n";
//print_r($menc_mat);
//sleep(2);
//exit;
// evita repetir
$fins = count($menc_mat);
//if( ($mc<0) ){
echo "De les ".$nom_mat." notificacions, ".$mc." ".(($mc<>1)?"són":"és")." una menció.\n";
$cont_fit = 0;
//echo $fins."\n";
for($g=0;$g<$fins;$g++) {
$id_busc = $menc_mat[$g]['id'];
$qu_busc = $menc_mat[$g]['qui'];
// echo "id_busc: ".$id_busc."\n";
$troba = array_search($id_busc, array_column($json_decjm, 'id'));
// echo "troba: ".$troba."\n";
if( ($troba !== false ) ) {
// echo "La menció ".$id_busc." de ".$qu_busc." ja està al registre\n";
} else {
if($id_busc<>0) {
echo "NOVA MENCIÓ ".$id_busc." de ".$qu_busc."\n";
array_push($json_decjm,
['id' => (int)$menc_mat[$g]['id'], 'mis_id' => (int)$menc_mat[$g]['mis_id'],
'qui' => $menc_mat[$g]['qui'], 'mencio' => $menc_mat[$g]['mencio'],
'quan' => $menc_mat[$g]['quan'],
'que' => $menc_mat[$g]['que']
]);
}
$cont_fit++;
}
}
//echo "matriu després de push\n";
//print_r($json_dec);
if($cont_fit >= 1) {
// actualitza el fitxer json
// $fes_json = json_encode($json_dec, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_OBJECT_AS_ARRAY|JSON_PRETTY_PRINT);
$fes_json = json_encode($json_decjm, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$escriu_f_json = fopen($lloc."/fitxers/mencions.json", "w") or die("No puc escriure al registre!");
fwrite($escriu_f_json, $fes_json);
fclose($escriu_f_json);
}
//fin if matriu de notificacions té registres
}
else {
echo "No hi han mencions noves.\n";
}
// per a conèixer el màxim de la matriu
$maximjm = count($json_decjm);
//$e=0;
$ara = (filemtime($fitxer));
//echo $ara."\n";
if($maximjm > $max_linies) {
$json_decjm = array_splice($json_decjm,($maximjm-$max_linies),$maximjm);
//print_r($json_dec);
// actualitza el fitxer json
//$fes_json = json_encode($json_dec, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_OBJECT_AS_ARRAY|JSON_PRETTY_PRINT);
$fes_json = json_encode($json_decjm, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$escriu_f_json = fopen($lloc."/fitxers/mencions.json", "w") or die("No puc escriure al registre!");
fwrite($escriu_f_json, $fes_json);
fclose($escriu_f_json);
}
$json_dec = null;
$crmnf = microtime(true);
$tmf = $crmnf - $crmn;
echo "Temps mencions: ".round($tmf,4)."";
//$log->lwrite("Temps mencions: ".round($tmf,4)."");
?>