From 83212dfe3e409f67b28206c32642063ac7f92a3f Mon Sep 17 00:00:00 2001 From: bonobo Date: Wed, 21 Aug 2024 20:50:34 +0200 Subject: [PATCH] Subir archivos a 'utils' --- utils/bot_plus_consultaimpulsos.php | 84 +++++-- utils/bot_plus_erradatecnica.php | 183 +++++++++++++++ .../bot_plus_estadistiques_inst_impulsos.php | 215 +++++++++++++++++ utils/bot_plus_estadistiques_seguidors.php | 220 ++++++++++++++++++ 4 files changed, 677 insertions(+), 25 deletions(-) create mode 100644 utils/bot_plus_erradatecnica.php create mode 100644 utils/bot_plus_estadistiques_inst_impulsos.php create mode 100644 utils/bot_plus_estadistiques_seguidors.php diff --git a/utils/bot_plus_consultaimpulsos.php b/utils/bot_plus_consultaimpulsos.php index e00277c..b5455e2 100644 --- a/utils/bot_plus_consultaimpulsos.php +++ b/utils/bot_plus_consultaimpulsos.php @@ -6,7 +6,7 @@ if (!empty($_SERVER["argv"][1])){ $argument = $_SERVER["argv"][1]; } else { // Presenta l'ajuda - echo "NO HE REBUT la variable\n"; + echo "\e[0;31;40mNO HE REBUT la variable.\e[0m\n"; exit; } $lloc = $argument; @@ -24,29 +24,50 @@ $b = 0; $c = 0; $d = 0; -$arranc = filesize($lloc."/fitxers/impulsos.txt"); - -if($arranc > 0) { +$fitx_json = $lloc."/fitxers/impulsos.json"; +$json_dec = json_decode(file_get_contents($fitx_json), true); +$registres = count($json_dec); +if($registres > 0) { //$impuls_resum = exec("cat ".$lloc."/fitxers/impulsos/impulsos.txt", $eix_resu, $resp_resu); $impuls_resum = exec("cat ".$lloc."/fitxers/impulsos.txt | grep 'reblog' | awk '{print $2}'", $eix_ir, $resp_ir ); +//print_r($eix_ir); + +/** +// va be. a desenrrollar. +$criteri = "reblog"; +//$criteri = "favourite"; + +$impuls_resum = array_filter($json_dec, function ($json_dec) use ($criteri) { + if (stripos($json_dec['mencio'], $criteri) !== false) { + return true; + } + return false; +}); + +print_r($impuls_resum); + + + +exit; +**/ //echo "impuls resum: \n".$impuls_resum."\n"; -//$impul_ressum = explode("\n",$impuls_resum); +//$impul_resum = explode("\n",$impuls_resum); /** echo "feta matriu\n"; print_r($impuls_resum); **/ //echo "contant valors:\n"; - -echo "ESTADÍSTIQUES\n"; -echo "\nIMPULSOS\n"; +echo "\e[1;37;40mESTADÍSTIQUES.\e[0m\n"; +echo "\n\e[96mIMPULSOS\e[0m\n"; $ferono_rebs = count($eix_ir); +//$ferono_rebs = count($impuls_resum); if($ferono_rebs>0) { $mat_reb = array_count_values($eix_ir); //print_r($mat_reb); -echo "--USUARIS\n"; +echo "\e[92m--USUARIS\e[0m\n"; //echo "valors dels impulsos ordenats\n"; //$mat_reb_ord = arsort($mat_reb); //var_dump($mat_reb_ord); @@ -72,9 +93,9 @@ for($i=0;$i<$acabau;$i++) { } } $usu_imp_primers = count($mat_reb_fp); -echo "N'hi ha ".$usu_imp_primers." ".(($usu_imp_primers<>1)?"persones":"persona")." amb el mateix nombre. \n\n"; +echo "\e[4mN'hi ha ".$usu_imp_primers." ".(($usu_imp_primers<>1)?"persones":"persona")." amb el mateix nombre.\e[0m \n\n"; -echo "--TUT\n"; +echo "\e[92m--TUT\e[0m\n"; $public_resum_r = exec("cat ".$lloc."/fitxers/impulsos.txt | grep 'reblog' | awk '{print $4}'",$eix_pr, $resp_pr ); //echo "contant valors:\n"; $mat_res = array_count_values($eix_pr); @@ -103,19 +124,19 @@ $tuts_imp_primers = count($mat_res_fp); echo "N'hi ha ".$tuts_imp_primers." amb el mateix nombre. \n\n"; } else { - echo "Encara sense dades.\n\n"; + echo "\e[1;37;40mEncara sense dades.\e[0m \n\n"; $tuts_imp_primers = 0; $usu_imp_primers = 0; } -echo "FAVORITS\n"; +echo "\e[96mFAVORITS\e[0m\n"; $favorits_resum = exec("cat ".$lloc."/fitxers/impulsos.txt | grep 'favourite' | awk '{print $2}'", $eix_frs, $resp_frs ); $ferono_favs = count($eix_frs); if($ferono_favs>0) { -echo "--USUARIS\n"; +echo "\e[92m--USUARIS\e[0m\n"; $mat_fav = array_count_values($eix_frs); arsort($mat_fav); @@ -129,18 +150,18 @@ foreach ($mat_fav as $clau => $valor) { echo $c." ".(($c<>1)?"persones han":"persona ha")." fet favorit\n"; // quants tenen els mateix nombre que el primer? -$primer = $mat_fav_f[0]['nombre']; +$primer_f = $mat_fav_f[0]['nombre']; //echo $primer."\n"; $acabar = count($mat_fav_f); for($i=0;$i<$acabar;$i++) { - if($mat_fav_f[$i]['nombre'] == $primer) { + if($mat_fav_f[$i]['nombre'] == $primer_f) { $mat_fav_fs[] = array('article' => $clau, 'nombre' => $valor); } } $usu_fav_primers = count($mat_fav_fs); echo "N'hi ha ".$usu_fav_primers." ".(($usu_fav_primers<>1)?"persones":"persona")." amb el mateix nombre. \n\n"; -echo "--TUT\n"; +echo "\e[92m--TUT\e[0m\n"; $public_resum_f = exec("cat ".$lloc."/fitxers/impulsos.txt | grep 'favourite' | awk '{print $4}'",$eix_fr, $resp_pr ); //print_r($eix_fr); $mat_favs = array_count_values($eix_fr); @@ -156,21 +177,24 @@ echo $d." ".(($d<>1)?"tuts favorits":"tut favorit")."\n"; //print_r($mat_fav_fbs); // quants tenen els mateix nombre que el primer? -$primer = $mat_fav_fsb[0]['nombre']; +$primer_r = $mat_fav_fsb[0]['nombre']; //echo "valor del primer: ".$primer."\n"; $acabat = count($mat_fav_fsb); for($i=0;$i<$acabat;$i++) { - if($mat_fav_fsb[$i]['nombre'] == $primer) { - $mat_fav_fsba[] = array('article' => $clau, 'nombre' => $valor); + if($mat_fav_fsb[$i]['nombre'] == $primer_r) { + $mat_fav_fsba[] = array('article' => $mat_fav_fsb[$i]["article"], 'nombre' => $mat_fav_fsb[$i]["nombre"]); } } //print_r($mat_fav_fsba); $tuts_fav_primers = count($mat_fav_fsba); echo "N'hi ha ".$tuts_fav_primers." amb el mateix nombre. \n\n"; +$usu_favs_primers = 0; } else { - echo "Encara sense dades. \n\n"; + echo "\e[1;37;40mEncara sense dades.\e[0m \n\n"; + $usu_fav_primers = 0; + $tuts_fav_primers = 0; } if(isset($mat_reb_f)){ @@ -223,7 +247,7 @@ $nseg_ant = fread($nseg_lle,filesize($lloc."/fitxers/seg_cont.txt")); fclose($nseg_lle); echo "\n"; -echo "RESUM ESTADÍSTIQUES \n". +echo "\e[1mRESUM ESTADÍSTIQUES\e[0m \n". "Tuts favorits \t\t-> ".$d." ".(($d<>1)?"tuts":"tut")."\n". "Han fet favorits \t\t-> ".$c." ".(($c<>1)?"persones":"persona")."\n". "El tut més favorit (".$tuts_fav_primers.") \t\t-> ".$mes_fav_id." : ".$mes_fav_vl." ".(($mes_fav_vl<>1)?"voltes":"volta")."\n". @@ -236,20 +260,30 @@ echo "RESUM ESTADÍSTIQUES \n". "Ha participat un ".round( (($a/$nseg_ant)*100), 2 )."% sobre el total dels seguidors.\n"; //(($nu_imp<>1)?"publicacions":"publicació") } else { -echo "Encara no hi ha dades"; +echo "\e[1;37;40mEncara no hi ha dades\e[0m"; } +echo "\n"; +$impuls_inst = shell_exec("php -f proves/proves_estadistiques_inst_impulsos_nopub.php ".$lloc." 01010 0"); +echo $impuls_inst."\n"; + $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); echo "\nPropera publicació\n"; -echo "".$espera_imp." | ".date("r",($espera_imp))."\n"; + +setlocale(LC_ALL, 'ca_ES.UTF-8'); +//echo setlocale(LC_ALL, 'ca_ES'); +//echo(strftime("%B %d %Y, %X %Z",$espera_imp)."
"); +//echo "strfotime\n"; +echo "La propera publicació la faré el ".(strftime("%A %d/%m/%Y a les %H:%M:%S", $espera_imp))."\n"; +//echo "".$espera_imp." | ".date("r",($espera_imp))."\n"; //echo "Manquen ".date("d",($espera_imp - $temps_imp))." dies i ".date("H:i:s",($espera_imp - $temps_imp))." hores.\n"; +//$temps_cal = ($espera_imp - $temps_imp)-(86400); $temps_cal = ($espera_imp - $temps_imp); echo "".( 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.\n"); - $tcf = microtime(true); $dc = $tcf - $tc; echo "\nTemps impulsos: ".round($dc,4)."\n"; diff --git a/utils/bot_plus_erradatecnica.php b/utils/bot_plus_erradatecnica.php new file mode 100644 index 0000000..8eb1b3c --- /dev/null +++ b/utils/bot_plus_erradatecnica.php @@ -0,0 +1,183 @@ +lfile(''.$log_fitxer.''); + +$log->lwrite("Arranque tut d'errada tècnica."); + +// llegeix el nombre de seguidors +$nerrada_lle = fopen($lloc."/fitxers/errada_cont.txt", "r") or die("No puc obrir el nombre seguidors!"); +$nerrada_ant = fread($nerrada_lle,filesize($lloc."/fitxers/errada_cont.txt")); +fclose($nerrada_lle); + +$pub_cent = null; +$pub_img = null; + +if(is_int($nerrada_ant/$num_errades) ) { + +$pub_img = $lloc."/gifis/carta-ajustament-televisio.jpeg"; +$fitxer_tipus = mime_content_type($pub_img); + +$publica_img = array( + "file" => $pub_img, + "type"=> $fitxer_tipus, + "description" => "Carta d'ajustament del televisor indicant que no hi rep cap senyal." + ); + +//print_r($publica_img); +//echo "mostrat matriu publica_img\n"; +//sleep(4); + +$publ_img = json_encode($publica_img); +//echo "publ_img: ".$publ_img."\n"; +//echo "mostrat publ_img\n"; +//sleep(4); + +// publicar + if ($pub_img != null) { + + $status_data = array( + "status" => $pub_cent, + "text" => $pub_cent, + "language" => $llengua, + "visibility" => $visib_com + ); + +$pub_img = $lloc."/gifis/carta-ajustament-televisio.jpeg"; +$fitxer_tipus = mime_content_type($pub_img); +$fitxer_prep = curl_file_create($pub_img, $fitxer_tipus, 'file'); + +$publica_img = [ 'file' => $fitxer_prep, + 'description' => 'Carta d´ajustament de televisor amb un avís indicant que no rep cap senyal.', + 'text' => $pub_cent, + 'status' => 'Estem experimentant dificultats tècniques.\En breus minuts podràn seguir les novetat del compte.\Els preguem disculpes.\nMoltes gràcies.' ]; + +// 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); +// $p++; + +//echo "\n\nresposta media : \n"; +//print_r ($output_status); +$imat_mst = $output_status['id']; +$imat_url = $output_status['url']; + +//echo "id de la imatge pujada: ".$imat_mst."\n"; +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); +// print_r($resposta); + $resposta = json_decode($resposta,true); +// echo "\n\nresposta json_decode\n"; +// print_r($resposta); + +//echo "obtenció dades media: \n"; +//print_r($resposta_json); +sleep(1); + +$im_id = $resposta['id']; +$im_url = $resposta['url']; +$im_type = $resposta['type']; +$im_desc = $resposta['description']; +//sleep(10); +$img_bis = $lloc."carta-ajustament-televisio.jpeg"; +$pub_errada = "Per causes alienes a la nostra voluntat, estem experimentant dificultats tècniques.\nEls pregue disculpes.\nContinuen atents al compte.\n". + "Moltes Gràcies.\n#SocUnBot\n".$bot_nom." v".$bot_versio.""; +$imatge_adj = array('file' => $im_url, 'type' => $im_type, 'description' => $im_desc); +$imatge_adj_json = json_encode($imatge_adj); + + $status_data2 = array( + "status" => $pub_errada, + "language" => $llengua, + "visibility" => $visib_com + ); + +// funció per enviar matriu en matriu +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; + } + } + +} +$pub_errada = "Per causes alienes a la nostra voluntat, estem experimentant dificultats tècniques.\nEls pregue disculpes.\nContinuen atents al compte.\n". + "Moltes Gràcies.\n#SocUnBot\n".$bot_nom." v".$bot_versio.""; + +$tut_matriu = array( + "status" => $pub_errada, + "text" => $pub_cent, + "language" => $llengua, + "media_ids[]" => $im_id, + "visibility" => $errada_vis, + "sensitive" => true, + "spoiler_text" => null, + "in_reply_to_id" => null +); + +http_build_query_for_curl( $tut_matriu, $tut_dades ); + +// comentat per no publicar proves funció +// 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_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); + } + +} +else { +$log->lwrite("Esta volta no publique tut. Nº errada: ".$nerrada_ant.""); +} + +$error_num = fopen($lloc . "/fitxers/errada_cont.txt", "r") or die("No puc obrir el contador!"); +$error_ant = fread($error_num,filesize("".$lloc ."/fitxers/errada_cont.txt")); +$error_nou = ($error_ant+1); +$error_num = fopen($lloc . "/fitxers/errada_cont.txt", "w") or die("No puc obrir el contador!"); +fwrite($error_num, $error_nou); +fclose($error_num); + +$log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); +$tcf = microtime(true); +$dc = $tcf - $tc; +echo "Temps errada tècnica dins: ".round($dc,4)."\n"; +$log->lwrite("Temps errada tècnica dins: ".round($dc,4).""); +?> diff --git a/utils/bot_plus_estadistiques_inst_impulsos.php b/utils/bot_plus_estadistiques_inst_impulsos.php new file mode 100644 index 0000000..b63d08d --- /dev/null +++ b/utils/bot_plus_estadistiques_inst_impulsos.php @@ -0,0 +1,215 @@ +lfile("".$log_fitxer.""); + +$fitxer = $lloc."/fitxers/impulsos.json"; +$json_dec = json_decode(file_get_contents($fitxer), true); +//print_r($json_dec); +$maxim = count($json_dec); + +$k = 0; +//$ui_tot = 0; +for($k=0;$k<$maxim;$k++) { + $usu_imp = $json_dec[$k]['qui']; + $usu_mat[] = $usu_imp; +} +//print_r($usu_mat); +$usu_mat_ord = array_count_values($usu_mat); +arsort($usu_mat_ord); + +//print_r($usu_mat_ord); + +$l = 0; +$top = count($usu_mat_ord); +$usu_inv_mat = array(); + +foreach ($usu_mat_ord as $clau => $valor) { + $usu_nom = explode("@",$clau); + if( (count($usu_nom)==1) ) { + $inst_t = "mastodont.cat"; + } else { + $inst_t = $usu_nom[1]; + } + + $usu_inv_mat[] += $valor; + $usu_ins_mat[] = [$inst_t => $valor]; + $usu_per_mat[] = [$usu_nom[0], $valor]; +} + +$pers_matriu = array_column($usu_per_mat, '1', '0'); +//print_r($pers_matriu); +$pers_tot = count($pers_matriu); + +$sum_insta = array(); +array_walk_recursive($usu_ins_mat, function($item, $key) use (&$sum_insta){ + $sum_insta[$key] = isset($sum_insta[$key]) ? $item + $sum_insta[$key] : $item; +}); + +//echo "sum_insta"; +arsort($sum_insta); +//print_r($sum_insta); +$sum_inst_mtr = array(); +$sum_total = 0; +foreach ($sum_insta as $clau => $valor) { +// echo $valor." impulsos des de ".$clau."\n"; +// $sum_inst_mtr[] = $valor." des de " .$clau. "\n"; + $sum_total += $valor; +} +foreach ($sum_insta as $clau => $valor) { +// echo $valor." impulsos des de ".$clau."\n"; +// $sum_inst_mtr[] = $valor." des de " .$clau. "\n"; + $sum_inst_mtr[] = $valor." (".round((($valor/$sum_total)*100),2)."%) des de " .$clau. "\n"; +// $sum_total += $valor; +} + +if ($pub !=0) { + goto elaboracio; +} else { + exit; +} + +elaboracio: + +$seguid = shell_exec("cat ".$lloc."/fitxers/seg_cont.txt"); +$a = count($sum_insta); + +$part0 = "Els impulsos s'han fet: \n"; +$part1 = implode("",$sum_inst_mtr); +$part2 = "Un total de ".$pers_tot." ".(($pers_tot<>1)?"persones han":"persona ha")." impulsat des de ".$a." ".(($a<>1)?"instàncies diferents":"instància"). + " i representen el ".round(($pers_tot/$seguid)*100,2)."% sobre els seguidors.\n"; + +$part3 = "Amb un total de ".$sum_total." impulsos (favorits i reblocs)\n". + "Moltes gràcies!.\n". + "#SocUnBot #ResumSetmanal"; + +$tut = $part0."".$part1."".$part2."".$part3."\n"; +//echo $tut; + +$lletres = strlen($tut); +//echo $lletres." caracters \n"; + +$linies_tut = substr_count($tut, "\n"); + +$nlin = 11; +if($linies_tut>=$nlin) { + + $pasada = ceil($linies_tut/$nlin); + + for($r=1;$r<=$pasada;$r++) { + $tut_complet = $tut; + $linies = explode("\n", $tut_complet); + if($r==1) { + $linies = array_slice($linies, 0, $nlin*$r); //18 is how many lines you want to keep + } else { + $linies = array_slice($linies, $nlin*($r-1), $nlin); //18 is how many lines you want to keep + } + $tut_frag = implode("\n", $linies); +// echo "linies: ".$nlin*$r."\n"; +// echo "Tut nº".$r."\n".$tut_frag."\n"; +// echo strlen($tut_frag)." caracters \n"; +// echo substr_count($tut_frag,"\n")." linies \n"; +// echo $linies_tut." linies \n"; + sleep(1); + + // publicacio per fer els tuts que calga, sempre múltiple de nlin +/** + if($r == 1) { +// echo "primer tut\n"; + $tut_data = array( + "status" => $tut_frag, + "language" => $llengua, + "visibility" => $visib_imp_res + ); +// print_r($tut_data); + } else { +**/ +// echo "tut nº".$r."\n"; + $tut_data = array( + "status" => $tut_frag, + "language" => $llengua, + "visibility" => $visib_imp_res, + "in_reply_to_id" => $ferfil + ); +// print_r($tut_data); +// } + + // no es pot aplicar la funció. no retrona el id per fer la resposta o fil. +// PublicaMissatge($base_url,$headers,$tut_data); + $bot_conn = curl_init(); + curl_setopt($bot_conn, CURLOPT_URL, $base_url . "/api/v1/statuses"); + curl_setopt($bot_conn, CURLOPT_POST, 1); + curl_setopt($bot_conn, CURLOPT_POSTFIELDS, $tut_data); + curl_setopt($bot_conn, CURLOPT_HTTPHEADER, $headers); + curl_setopt($bot_conn, CURLOPT_RETURNTRANSFER, true); +// $resposta_in = curl_exec($bot_conn); +// $resposta_conn = json_decode($resposta_in,true); + $resposta_conn = json_decode(curl_exec($bot_conn),true); + curl_close ($bot_conn); + +// echo "resposta del servidor\n"; +// print_r($resposta_conn); + $ferfil = $resposta_conn['id']; + sleep(1); +//echo $tut_frag; + } + +} else { +// publica només un tut +echo $tut; +//echo strlen($tut)." caracters \n"; +//echo "linies_tut: ".$linies_tut."\n"; + + $tut_data = array( + "status" => $tut, + "language" => $llengua, + "visibility" => $visib_imp_res, + "in_reply_to_id" => $ferfil + + ); + +// PublicaMissatge($base_url,$headers,$tut_data); + $bot_conn = curl_init(); + curl_setopt($bot_conn, CURLOPT_URL, $base_url . "/api/v1/statuses"); + curl_setopt($bot_conn, CURLOPT_POST, 1); + curl_setopt($bot_conn, CURLOPT_POSTFIELDS, $tut_data); + curl_setopt($bot_conn, CURLOPT_HTTPHEADER, $headers); + curl_setopt($bot_conn, CURLOPT_RETURNTRANSFER, true); +// $resposta_in = curl_exec($bot_conn); +// $resposta_conn = json_decode($resposta_in,true); + $resposta_conn = json_decode(curl_exec($bot_conn),true); + curl_close ($bot_conn); + +// echo "resposta del servidor\n"; +// print_r($resposta_conn); + $ferfil = $resposta_conn['id']; + +} +//print_r($resposta_conn); +//exit; +// aqui per que a impulsos em dona errada tot i que ho fa +$log -> lwrite("INFO: fer tut instàncies d'impulsos: ".( (($ferfil != null)||($ferfil != false))?"correcte":"ERRADA").""); + +// 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."/utils/bot_plus_graficsxdies.php ".$lloc." ".$ferfil.""); +$log -> lwrite("INFO: fer tut gràfics per dies: ".( (($graf_imp_setm != null)||($graf_imp_setm != false))?"correcte":"ERRADA").""); + +?> diff --git a/utils/bot_plus_estadistiques_seguidors.php b/utils/bot_plus_estadistiques_seguidors.php new file mode 100644 index 0000000..e865659 --- /dev/null +++ b/utils/bot_plus_estadistiques_seguidors.php @@ -0,0 +1,220 @@ +lfile("".$log_fitxer.""); + +$fitxer = $lloc."/fitxers/seguidors_detall_act.json"; +$json_dec = json_decode(file_get_contents($fitxer), true); + +$maxim = count($json_dec); +$e = 1; +//$v = 1; +for($e=1;$e<$maxim;$e++) { +//$usua = $json_dec[$e]['usuari']; +//$nom = $json_dec[$e]['nom']; +$acct = $json_dec[$e]['acct']; +$inst = explode("@", $acct); +//$crea = $json_dec[$e]['creat']; +//$publ = $json_dec[$e]['ult_pub']; +//print_r($inst); + if( (count($inst)==1) ) { + $inst_t = "mastodont.cat"; + } else { + $inst_t = $inst[1]; + } +// echo $inst_t."\n"; +// $v++; + $inst_matriu[] = $inst_t ; +} + +//print_r($inst_matriu); +$inst_mat_ord = array_count_values($inst_matriu); +arsort($inst_mat_ord); + +//print_r(($inst_mat_ord)); + +// 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); + + +$a = 0; +$part0 = "Els seguidors del compte son a: \n"; +//echo "El seguidors son: \n"; +foreach ($inst_mat_ord as $clau => $valor) { +// echo "$valor de $clau\n"; +// $mat_inst_f[] = array('nom' => $clau, 'nombre' => $valor); + $mat_inst_f[$clau] = $valor." (".round( (($valor/$nseg_ant)*100) ,2)."%) de " .$clau. "\n"; + $a++; +} +//echo "En total de ".$a." ".(($a<>1)?"instàncies diferents":"instància")."\n"; +//echo "Moltes gràcies!! :cli_root: \n"; +//print_r($mat_inst_f); + +$part1 = implode("",$mat_inst_f); + +$part2 = "En total de ".$a." ".(($a<>1)?"instàncies diferents":"instància")."\n" . + "#SocUnBot \n". + "Moltes gràcies!! :cli_root: \n". + $bot_nom." v".$bot_versio; + +$tut = $part0."".$part1."".$part2."\n"; +//echo $tut; +//echo strlen($tut)." caracters \n"; +$lletres = strlen($tut); + +$linies_tut = substr_count($tut, "\n"); +//echo "linies_tut: ".$linies_tut."\n"; + +$nlin = 16; +if($a>=$nlin) { + +// $pasada = round($a/$nlin,0); + $pasada = ceil($a/$nlin); +// echo "Cal fer ".$pasada." tuts\n"; + + for($r=1;$r<$pasada;$r++) { + $tut_complet = $tut; + $linies = explode("\n", $tut_complet); + if($r==1) { + $linies = array_slice($linies, 0, $nlin*$r); //18 is how many lines you want to keep + } else { + $linies = array_slice($linies, $nlin*($r-1), $nlin); //18 is how many lines you want to keep + } + $tut_frag = implode("\n", $linies); +// echo "linies: ".$nlin*$r."\n"; +// echo "Tut nº".$r."\n".$tut_frag."\n"; +// echo strlen($tut_frag)." caracters \n"; +// sleep(1); + // publicacio per fer els tuts que calga, sempre múltiple de nlin + if($r == 1) { +// echo "primer tut\n"; + $tut_data = array( + "status" => $tut_frag, + "language" => $llengua, + "visibility" => $visib_imp_res + ); +// print_r($tut_data); + } else { +// echo "tut nº".$r."\n"; + $tut_data = array( + "status" => $tut_frag, + "language" => $llengua, + "visibility" => $visib_imp_res, + "in_reply_to_id" => $mes_comp_id + ); +// print_r($tut_data); + } + + // no es pot aplicar la funció. no retrona el id per fer la resposta o fil. +// PublicaMissatge($base_url,$headers,$tut_data); + $bot_conn = curl_init(); + curl_setopt($bot_conn, CURLOPT_URL, $base_url . "/api/v1/statuses"); + curl_setopt($bot_conn, CURLOPT_POST, 1); + curl_setopt($bot_conn, CURLOPT_POSTFIELDS, $tut_data); + curl_setopt($bot_conn, CURLOPT_HTTPHEADER, $headers); + curl_setopt($bot_conn, CURLOPT_RETURNTRANSFER, true); +// $resposta_in = curl_exec($bot_conn); +// $resposta_conn = json_decode($resposta_in,true); + $resposta_conn = json_decode(curl_exec($bot_conn),true); + curl_close ($bot_conn); + +// echo "resposta del servidor\n"; +// print_r($resposta_conn); + $mes_comp_id = $resposta_conn['id']; + sleep(1); + } +} + +$log->lwrite("Estadistiques de les instàncies dels seguidors publicades"); +exit; + + +if($lletres > 480) { +//echo "fragmentar en dos la cadena i fer dos tuts \n"; + +//fragmente la cadena +$tut0 = strlen($tut) > 480 ? substr($tut,0,486)."[...]" : $tut; +$tut1 = strlen($tut) > 480 ? substr($tut,486,$lletres) : $tut; +//echo "tut0: ".$tut0."\n"; +//echo "tut1: ".$tut1."\n"; + +// fer tut i segon en resposta a +// publique el primer tut + $tut_data = array( + "status" => $tut0, + "language" => $llengua, + "visibility" => $visib_imp_res + ); + + $ch_status = curl_init(); + curl_setopt($ch_status, CURLOPT_URL, $base_url . "/api/v1/statuses"); + curl_setopt($ch_status, CURLOPT_POST, 1); + curl_setopt($ch_status, CURLOPT_POSTFIELDS, $tut_data); + 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); +// $mr++; + +//print_r($output_status); +// consulte el id del tut per fer el segon + $mes_comp_id = $output_status['id']; + +// publique el segon tut + $tut_data = array( + "status" => $tut1, + "language" => $llengua, + "visibility" => $visib_imp_res, + "in_reply_to_id" => $mes_comp_id + ); + + $ch_status = curl_init(); + curl_setopt($ch_status, CURLOPT_URL, $base_url . "/api/v1/statuses"); + curl_setopt($ch_status, CURLOPT_POST, 1); + curl_setopt($ch_status, CURLOPT_POSTFIELDS, $tut_data); + 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); +// $mr++; + +} else { +//echo $tut."\n"; + +// publique un tut amb menys dels caràcter màxims + + $tut_data = array( + "status" => $tut, + "language" => $llengua, + "visibility" => $visib_imp_res + ); + + $ch_status = curl_init(); + curl_setopt($ch_status, CURLOPT_URL, $base_url . "/api/v1/statuses"); + curl_setopt($ch_status, CURLOPT_POST, 1); + curl_setopt($ch_status, CURLOPT_POSTFIELDS, $tut_data); + 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); + +} + +?>