diff --git a/utils/bot_plus_graficsxdies.php b/utils/bot_plus_graficsxdies.php new file mode 100644 index 0000000..7314431 --- /dev/null +++ b/utils/bot_plus_graficsxdies.php @@ -0,0 +1,316 @@ +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").""); +?> diff --git a/utils/bot_plus_impulsos.php b/utils/bot_plus_impulsos.php index e9396bf..7c747c1 100644 --- a/utils/bot_plus_impulsos.php +++ b/utils/bot_plus_impulsos.php @@ -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() ); +} ?> diff --git a/utils/bot_plus_impulsos_json.php b/utils/bot_plus_impulsos_json.php new file mode 100644 index 0000000..31130e0 --- /dev/null +++ b/utils/bot_plus_impulsos_json.php @@ -0,0 +1,183 @@ +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 "nº".$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).""); +?> diff --git a/utils/bot_plus_mencions.php b/utils/bot_plus_mencions.php index a45e954..05a2df2 100644 --- a/utils/bot_plus_mencions.php +++ b/utils/bot_plus_mencions.php @@ -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__ ); +} ?> diff --git a/utils/bot_plus_mencions_json.php b/utils/bot_plus_mencions_json.php new file mode 100644 index 0000000..8990cae --- /dev/null +++ b/utils/bot_plus_mencions_json.php @@ -0,0 +1,155 @@ +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).""); +?>