Subir archivos a 'utils'

This commit is contained in:
bonobo 2024-08-21 20:50:34 +02:00
pare 35ad94c732
commit 83212dfe3e
S'han modificat 4 arxius amb 677 adicions i 25 eliminacions

Veure arxiu

@ -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)."<br>");
//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";

Veure arxiu

@ -0,0 +1,183 @@
<?php
$tc = microtime(true);
// Comprova els arguments, en cas de no existir presenta l'ajuda.
if (!empty($_SERVER["argv"][1])){
$lloc = $_SERVER["argv"][1];
} else {
echo "NO HE REBUT la variable";
exit;
}
// ara podrá carregar la configuració i el logger
include("".$lloc."/configuracio/bot_plus_cfg.php");
include("".$lloc."/utils/bot_plus_funcions.php");
require_once("".$lloc."/lib/logger.php");
// inicia el log
$log = new Logging();
$log->lfile(''.$log_fitxer.'');
$log->lwrite("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)."");
?>

Veure arxiu

@ -0,0 +1,215 @@
<?php
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
$ferfil = $_SERVER["argv"][2];
$pub = $_SERVER["argv"][3];
} 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."");
$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")."");
?>

Veure arxiu

@ -0,0 +1,220 @@
<?php
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 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."");
$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);
}
?>