Subir archivos a 'utils_cli'

This commit is contained in:
bonobo 2024-08-22 00:22:28 +02:00
parent 29552f2938
commit 32d9c2cbd7
5 changed files with 785 additions and 0 deletions

View file

@ -0,0 +1,378 @@
<?php
$crrss = microtime(true);
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
if (!empty($_SERVER["argv"][2])){
$opcio = $_SERVER["argv"][2];
} else {
$opcio = null;
echo "Has de indicar la opció:\n".
" a -> afegir\n b -> esborrar tot\n d -> darrera publicació\n".
" e -> eliminar duplicats\n n -> triar un numero de registre\n".
" r -> repassar registres.\n";
exit;
}
} else {
// Presenta l'ajuda
echo "NO HE REBUT la variable\n";
echo "Cal el directori on s'executa el bot_plus.\n";
exit;
}
$lloc = $argument;
// ara pot carregar la configuració i el logger
include("".$lloc."/configuracio/bot_plus_cfg.php");
include("".$lloc."/utils/bot_plus_etiquetes.php");
include("".$lloc."/lib/exportrss.php");
if($opcio == "a") { goto afegir; }
elseif($opcio == "b") { goto buidar; }
elseif($opcio == "d") { goto darrera; }
elseif($opcio == "e") { goto duplicats; }
elseif($opcio == "n") { goto numregistre; }
elseif($opcio == "r") { goto repassar; }
else { echo "Has de indicar la opció:\n".
" a -> afegir\n".
" b -> esborrar tot\n".
" d -> darrera publicació\n".
" n -> triar un numero de registre(1)\n".
" r -> repassar registres.\n";
exit; }
afegir:
//echo $lloc;
$fitxer = $lloc."/fitxers/registre.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_dec = json_decode(file_get_contents($fitxer), true);
//echo "matriu fitxer\n";
//print_r($json_dec);
//echo is_array($json_dec)."\n";
//sleep(2);
$reg_arx = count($json_dec);
echo "L'arxiu té ".$reg_arx." ".(($reg_arx<>1)?"registres":"registre")."\n";
// connecta amb la font RSS
// Nombre segons les fonts. (1,2 o 3 màxim definides a cfg primer)
//$llista = array();
$i = 0;
for ($f = 0; $f<$fitxers_nombre; $f++) {
if ($f == 0) { $fitxer = $fitxer0; }
if ($f == 1) { $fitxer = $fitxer1; }
if ($f == 2) { $fitxer = $fitxer2; }
if ($f == 3) { $fitxer = $fitxer3; }
// $json_dec = json_decode(file_get_contents($fitxer), true);
// Obtenim la font XML/RSS 2.0
$feed = new ExportRSS($fitxer , "2.0");
$channel = $feed->get_channel_data();
// variables per a fer la matriu del que arriba del fitxer XML/RSS 2.0
$j = 0;
$n = 0;
//print_r($feed);
//exit;
//matriu a partir del fitxer
//$json_dec = json_decode(file_get_contents($fitxer), true);
//$registre = shell_exec("wc -l fitxers/registre.json");
//if($registre > 1) { $reg_arx = count($json_dec); }
//else { $reg_arx = 0;
// $json_dec = array();
//}
foreach ($feed->get_data() as $item) {
$id = $i;
// $id = $reg_arx;
$titol = trim($item['title']);
$descripcio = trim($item['description']);
$enllac = $item['link'];
$pub = $item['date'];
$pub_str = strtotime($item['date']);
$guid = $item['guid']['isPermaLink'];
// $media_titol = $item['media:title'];
// $media_img = $item['media:content'];
$fontrss = $fitxer;
// prepare els filtres per generar la matriu
// filtre les URL que continguen estes paraules
if ( (str_contains($enllac, $p0)) ||
(str_contains($enllac, $p1)) ||
(str_contains($enllac, $p2)) ||
(str_contains($enllac, $p3)) ||
(str_contains($enllac, $p4)) ||
(str_contains($enllac, $p5)) ||
(str_contains($enllac, $p6)) ||
(str_contains($enllac, $p7)) ||
(str_contains($enllac, $p8)) ||
(str_contains($enllac, $p9)) ||
(str_contains($enllac, $p10)) ||
(str_contains($enllac, $p11)) ||
(str_contains($enllac, $p12)) ||
(str_contains($enllac, $p13)) ||
(str_contains($enllac, $p14)) ||
(str_contains($enllac, $p15)) ||
(str_contains($enllac, $p16)) ) {
if ( (strpos($enllac,$np0) == false)||
(strpos($enllac,$np1) == false ) ) {
$tria = 1;
$n++;
}
else { $tria = 0; }
} else { $tria = 0; }
$no_rep = in_array($pub_str, array_column($json_dec,"pub_str"));
//genere la matriu amb les dades filtrades
if ( ($tria == 1)&&($no_rep == false) ){
if( ((strtotime("now") - $pub_str) <= $antic_max) ) {
// echo $f."-".$id."-".$n."-".$enllac."-".$pub."-".$fontrss."\n";
$rsst_ara = $titol." ".$descripcio." ".$enllac;
$etiqueta = MstEtiquetes($rsst_ara);
$ara_str = strtotime('now');
$ara = date('d/m/Y H:i:s',$ara_str);
array_push($json_dec,
[
"titol" => (string)$titol,
"descripcio" => (string)$descripcio,
"enllac"=>(string)$enllac,
"etiqueta"=>(string)$etiqueta,
"pub"=>(string)$pub,
"pub_str"=>(int)$pub_str,
"publicada"=>(string)$ara,
// "media"=>(string)$media
// "media_tit"=>(string)$media_titol,
// "media_img"=>(string)$media_img
"font"=>$fontrss
]);
// }
usleep(240000);
$j++;
// print_r($json_dec);
$fes_json = json_encode($json_dec, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$escriu_f_json = fopen($lloc."/fitxers/registre.json", "w") or die("No puc escriure al registre!");
fwrite($escriu_f_json, $fes_json);
fclose($escriu_f_json);
// unset($json_dec);
echo "Afegit registre ".$j." a registre.json.\n";
//filtre data màxima
}
}
$i++;
}
}
//print_r($json_dec);
exit;
buidar:
// buidar fitxer json
$buida_json = file_put_contents($lloc."/fitxers/registre.json", json_encode([]));
echo "He buidat el fitxer registre.json\n";
exit;
repassar:
//echo $lloc;
$fitxer = $lloc."/fitxers/registre.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_decc = json_decode(file_get_contents($fitxer), true);
// per a fer els repas linia a linia
$maxim = count($json_decc);
$e = 0;
//$reg = 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++) {
$titol = $json_decc[$e]['titol'];
$men_mi = $json_decc[$e]['descripcio'];
// $men_mi = preg_replace('/\\\\n/','',$men_mi);
$men_mi = str_replace("\n"," ",$men_mi);
$men_qi = $json_decc[$e]['enllac'];
$men_qa = $json_decc[$e]['pub'];
$men_tp = $json_decc[$e]['pub_str'];
$men_et = $json_decc[$e]['etiqueta'];
$men_fn = $json_decc[$e]['font'];
$men_qb = $json_decc[$e]['publicada'];
// $us_memoria = memory_get_usage();
// echo "nº".$e." -> ".$titol."\n".trim($men_mi)."\n".$men_qi."\n".$men_et."\t-> ".$men_qa." - ".$men_tp."\n".$men_qb."\n".$men_fn."\n\n";
echo "nº registre: ".($e+1)."\n\e[1m".$titol."\e[0;96m\n".trim($men_mi)."\e[0m\n\e[4mEnllaç:\e[0m ".$men_qi."\n\e[4mEtiquetes:\e[0m ".$men_et."\n".
"\e[4mData RSS:\e[0m ".$men_qa." - ".$men_tp."\n\e[4mData tut\e[0m: ".$men_qb." ".date("O",$ara)."\n\e[4mFont RSS:\e[0m ".$men_fn."\n\n";
// echo "memoria: ".$us_memoria."\n";
// pausa d'un segon
//sleep(1);
//pausa de mig segon (amb microsegons => unitat més sis ceros == segons );
//usleep(200000);
// $reg++;
}
//unset($json_decc);
exit;
// darrera noticia publicada
darrera:
$fitxer = $lloc."/fitxers/registre.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_decc = json_decode(file_get_contents($fitxer), true);
//print_r($json_dec);
//exit;
// per a fer els repas linia a linia
$maxim = count($json_decc);
$e = $maxim-1;
$reg = 0;
//$ara = strtotime("today");
//$ara = strtotime(filemtime($fitxer));
//$ara = (filemtime($fitxer));
$ara = strtotime("now");
//echo date("O",$ara)."\n";
$ndp = 4;
echo "Las darreres ".$ndp." publicacions han sigut:\n\n";
for($e=($maxim-$ndp);$e<$maxim;$e++) {
$titol = $json_decc[$e]['titol'];
$men_mi = $json_decc[$e]['descripcio'];
$men_qi = $json_decc[$e]['enllac'];
$men_qa = $json_decc[$e]['pub'];
$men_tp = $json_decc[$e]['pub_str'];
$men_et = $json_decc[$e]['etiqueta'];
$men_fn = $json_decc[$e]['font'];
$men_qb = $json_decc[$e]['publicada'];
// $men_qs = strtotime($json_dec[$e]['publicada']);
// echo "nº registre: ".$e."\n\e[1m".$titol."\e[0;96m\n".trim($men_mi)."\e[0m\n\e[4mEnllaç:\e[0m ".$men_qi."\n\e[4mEtiquetes:\e[0m ".$men_et."\n".
// "\e[4mData RSS:\e[0m ".$men_qa." - ".$men_tp."\n\e[4mData tut\e[0m: ".$men_qb."\n\e[4mFont RSS:\e[0m ".$men_fn."\n\n";
echo ($e+1)." - \e[1m".$titol."\e[0;96m\n".trim($men_mi)."\e[0m\n\e[4mEnllaç:\e[0m ".$men_qi."\n\e[4mEtiquetes:\e[0m ".$men_et."\n".
"\e[4mData RSS:\e[0m ".$men_qa." - ".$men_tp."\n\e[4mData tut\e[0m: ".$men_qb." ".date("O",$ara)."\n\e[4mFont RSS:\e[0m ".$men_fn."\n\n";
// pausa d'un segon
//sleep(1);
//pausa de mig segon (amb microsegons => unitat més sis ceros == segons );
//usleep(200000);
$reg++;
}
//unset($json_decc);
goto retallar;
numregistre:
$fitxer = $lloc."/fitxers/registre.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_dec = json_decode(file_get_contents($fitxer), true);
//print_r($json_dec);
//exit;
// per a fer els repas linia a linia
$maxim = count($json_dec);
// preguntar si vols volcar-ho al fitxer .txt
echo "\nEscriu el nombre del registre a revisar entre 0 i ".$maxim."\n";
//return "\nEscriu el nombre del registre a revisar: \n";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if( !is_numeric(trim($line)) ) {
echo "HA DE SER UN NUMERO!\n";
// return "HE ACABAT DONCS!\n";
goto numregistre;
} else {
if (trim($line)> $maxim) {
echo "Supera el nombre de registres.\n";
goto numregistre;
} else { goto numregistrev; }
}
fclose($handle);
numregistrev:
echo "\n";
echo "Este és el registre ".trim($line)."\n\n";
$e = trim($line);
$reg = 0;
//$ara = strtotime("today");
//$ara = strtotime(filemtime($fitxer));
$ara = (filemtime($fitxer));
//echo $ara."\n";
//echo "La darrera publicació ha sigut:\n\n";
//for($e=0;$e<$maxim;$e++) {
$titol = $json_dec[$e]['titol'];
$men_mi = $json_dec[$e]['descripcio'];
$men_qi = $json_dec[$e]['enllac'];
$men_qa = $json_dec[$e]['pub'];
$men_tp = $json_dec[$e]['pub_str'];
$men_et = $json_dec[$e]['etiqueta'];
$men_fn = $json_dec[$e]['font'];
$men_qb = $json_dec[$e]['publicada'];
echo "nº registre: ".($e+1)."\n\e[1m".$titol."\e[0;96m\n".trim($men_mi)."\e[0m\n\e[4mEnllaç:\e[0m ".$men_qi."\n\e[4mEtiquetes:\e[0m ".$men_et."\n".
"\e[4mData RSS:\e[0m ".$men_qa." - ".$men_tp."\n\e[4mData tut\e[0m: ".$men_qb."\n\e[4mFont RSS:\e[0m ".$men_fn."\n\n";
// pausa d'un segon
//sleep(1);
//pausa de mig segon (amb microsegons => unitat més sis ceros == segons );
//usleep(200000);
$reg++;
//}
//goto retallar;
duplicats:
$fitxer = $lloc."/fitxers/registre.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_dec = json_decode(file_get_contents($fitxer), true);
$maxim = count($json_dec);
$ids = array_column($json_dec, 'enllac');
$ids = array_unique($ids);
$mat_nova = array_filter($json_dec, function ($clau, $valor) use ($ids) {
return in_array($valor, array_keys($ids));
}, ARRAY_FILTER_USE_BOTH);
print_r($mat_nova);
goto retallar;
retallar:
$fitxer = $lloc."/fitxers/registre.json";
$json_dec = json_decode(file_get_contents($fitxer), true);
// limitar a 480 registres (fer variable?)
if($maxim > ($max_linies+$max_linies_ad)) {
$json_dec = array_splice($json_dec,($maxim-($max_linies+$max_linies_ad)),$maxim);
//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_dec, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$escriu_f_json = fopen($lloc."/fitxers/registre.json", "w") or die("No puc escriure al registre!");
fwrite($escriu_f_json, $fes_json);
fclose($escriu_f_json);
}
$crmnf = microtime(true);
$tmf = $crmnf - $crrss;
echo "Temps registres: ".round($tmf,4)."\n";
//$log->lwrite("Temps mencions: ".round($tmf,4)."");
?>

View file

@ -0,0 +1,82 @@
<?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;
//defineix on es troba el fitxer a executar
//$lloc = realpath(dirname(__FILE__));
$fitxer = $lloc."/fitxers/seguidors_detall_act.json";
$json_dec = json_decode(file_get_contents($fitxer), true);
//echo "FITXER DEC\n";
//echo "- matriu json_dec \n";
//print_r($json_dec);
$maxim = count($json_dec);
$e=1;
//$ara = strtotime("today");
//$ara = strtotime(filemtime($fitxer));
$ara = (filemtime($fitxer));
//echo $ara."\n";
echo "Actualitzat el ".date('d/m/Y', $ara)."\n";
echo "REPASE ELS ".($maxim-1)." SEGUIDORS.\n";
for($e=1;$e<$maxim;$e++) {
$usua = $json_dec[$e]['usuari'];
$nom = $json_dec[$e]['nom'];
$acct = $json_dec[$e]['acct'];
$crea = $json_dec[$e]['creat'];
$publ = $json_dec[$e]['ult_pub'];
if($publ!=null) {
$acti = round((($ara - strtotime($publ))/86400),0);
} else {
$acti = "NO";
}
if($acti == "NO"){
$actiu = "NO PUB";
}elseif($acti == 0) {
$actiu = "Hui";
}elseif($acti == 1) {
$actiu = "Ahir";
}elseif($acti == 2) {
$actiu = "Despús ahir";
}elseif(($acti >= 3)&&($acti<=6)) {
$actiu = "Esta setmana";
}elseif(($acti >= 7)&&($acti<=13)) {
$actiu = "Una setmana";
}elseif(($acti >= 14)&&($acti<=20)) {
$actiu = "Dos setmanes";
}elseif(($acti >= 21)&&($acti<=29)) {
$actiu = "Tres setmanes";
}elseif(($acti >= 30)&&($acti<=59)) {
$actiu = "Més d'un mes";
}else{
$actiu = "MÉS de 2 MESOS";
}
$usuallarg = strlen((string)$usua);
if($usuallarg < 18) {
//echo "nº".$e."\t -> ".$usua."\t -> ".utf8_decode($nom)."\t -> ".$acct."\n";
//echo "nº".$e."\t -> ".$usua."\t -> ".utf8_decode($nom)."\t -> ".$acct."\t -> ".date("r",strtotime($crea))." -> ".date("r",strtotime($publ))."\t -> ".$acti." \n";
echo "".$maxim - $e." -> ".$usua."\t\t -> ".utf8_decode($nom)." -> ".$acct."\t -> ".date("r",strtotime($crea))."\t -> ".$actiu." (".$acti.")\n";
} else {
echo "".$maxim - $e." -> ".$usua." -> ".utf8_decode($nom)." -> ".$acct."\t -> ".date("r",strtotime($crea))."\t -> ".$actiu." (".$acti.") \n";
}
// pausa d'un segon
//sleep(1);
//pausa de mig segon (amb microsegons => unitat més sis ceros == segons );
//usleep(200000);
}
?>

View file

@ -0,0 +1,72 @@
<?php
$crmn = microtime(true);
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
} else {
// Presenta l'ajuda
echo "NO HE REBUT la variable\n";
echo "Cal el directori on s'executa el bot_plus.\n";
exit;
}
$lloc = $argument;
// ara pot carregar la configuració i el logger
include("".$lloc."/configuracio/bot_plus_cfg.php");
include("".$lloc."/utils/bot_plus_funcions.php");
require_once("".$lloc."/lib/logger.php");
//echo $lloc;
$fitxer = $lloc."/fitxers/registre.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_dec = json_decode(file_get_contents($fitxer), true);
// per a fer els repas linia a linia
$maxim = count($json_dec);
echo "L'arxiu té ".$maxim." ".(($maxim<>1)?"registres":"registre")."\n";
$e = 0;
$reg = 0;
//$ara = strtotime("today");
//$ara = strtotime(filemtime($fitxer));
$ara = (filemtime($fitxer));
//echo $ara."\n";
echo "ACTUALITZE ".(($maxim<>1)?"ELS ".$maxim." REGISTRES":"EL REGISTRE").".\n";
$escriu_urls = fopen($lloc."/fitxers/urls_pub.txt", "w") or die("No puc escriure al registre!");
for($e=0;$e<$maxim;$e++) {
$urls_json = $json_dec[$e]['enllac'];
// echo "nº".$e." -> ".$men_id." | ".$men_mi. " -> ".$men_tp." - ".utf8_decode($men_qi)." \t-> ".$men_qa."\n";
$fp_oratge = preg_replace('/[^A-Za-z0-9\-]/','',trim($json_dec[$e]['enllac']));
$fp_oratge = preg_replace('/https/',' ',$fp_oratge);
$filt_oratge = strpos($fp_oratge,"previsioprevisio");
if($filt_oratge == false ) {
fwrite($escriu_urls, $urls_json."\n");
}
// pausa d'un segon
//sleep(1);
//pausa de mig segon (amb microsegons => unitat més sis ceros == segons );
//usleep(200000);
$reg++;
}
fclose($escriu_urls);
// consulta font RSS i afegeix les actuals.
if($maxim > ($max_linies+$max_linies_ad)) {
//$ordena_url = shell_exec("tail -".$max_linies+$max_linies_ad." ".$lloc."/fitxers/urls_pub.txt | sort | uniq | tee ".$lloc."/fitxers/urls_pub.txt");
$ordena_url = shell_exec("tail -".$max_linies+$max_linies_ad." ".$lloc."/fitxers/urls_pub.txt | tee ".$lloc."/fitxers/urls_pub.txt");
}
$copia_bak = shell_exec("cat ".$lloc."/fitxers/urls_pub.txt > ".$lloc."/fitxers/urls_pub.bak");
$crmnf = microtime(true);
$tmf = $crmnf - $crmn;
echo "Temps reconstrucció de urls: ".round($tmf,4)."\n";
//$log->lwrite("Temps mencions: ".round($tmf,4)."");
?>

View file

@ -0,0 +1,181 @@
<?php
$crmn = microtime(true);
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
} else {
// Presenta l'ajuda
echo "NO HE REBUT la variable\n";
echo "Cal el directori on s'executa el bot_plus.\n";
exit;
}
$lloc = $argument;
// ara pot carregar la configuració i el logger
include("".$lloc."/configuracio/bot_plus_cfg.php");
include("".$lloc."/utils/bot_plus_funcions.php");
require_once("".$lloc."/lib/logger.php");
//$fitxer = $lloc."/fitxers/mencions.json";
$fitxer = $lloc."/fitxers/impulsos.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_dec = json_decode(file_get_contents($fitxer), true);
//echo "matriu fitxer\n";
//print_r($json_dec);
//echo is_array($json_dec)."\n";
//sleep(2);
$reg_arx = count($json_dec);
echo "L'arxiu té ".$reg_arx." ".(($reg_arx<>1)?"registres":"registre")."\n";
$dades_url = ["mention"];
//http_build_query_for_curl($dades_url, $limita_enq);
// consulta els existents per afegir-los a la matriu existent si no hi son
//$menc_mat_nova = ConsultaNotificacions($token,$base_url,$limit_m,$headers);
$limit_m = 80;
$imp_mat_nova = ConsultaNotificacions($token,$base_url,$limit_m,$headers);
//print_r($imp_mat_nova);
//exit;
$nom_mat = count($imp_mat_nova);
echo "A la instància he repassat les darreres ".$nom_mat." ".(($nom_mat<>1)?"notificacions":"notificació")."\n";
// fer matriu de mencions noves
$imp_mat = array();
if($nom_mat>=1) {
// llegir fitxer de temps
$temps_imp = strtotime("now");
$espera_ob = fopen($lloc . "/fitxers/impulsos_temps.txt", "r") or die("No puc obrir la darrera data!");
$espera_ll = fread($espera_ob,filesize($lloc . "/fitxers/impulsos_temps.txt"));
$espera_imp = $espera_ll;
fclose($espera_ob);
$temps_ini = $espera_imp - 604800;
$mc = 0;
for($f=0;$f<$nom_mat;$f++) {
$men_id = $imp_mat_nova[$f]['id'];
$men_tip = $imp_mat_nova[$f]['type'];
$men_qui = $imp_mat_nova[$f]['account']['acct'];
$men_qua = $imp_mat_nova[$f]['created_at'];
// $men_mid = $imp_mat_nova[$f]['status']['id'];
if( ($men_tip == "reblog")||($men_tip == "favourite") ){
if ( strtotime($men_qua) >= $temps_ini ) {
$men_mid = $imp_mat_nova[$f]['status']['id'];
$imp_mat[] = array ( 'id' => (int)$men_id, 'mis_id' => (int)$men_mid, 'qui' => $men_qui, 'mencio' => $men_tip, 'quan' => $men_qua );
$mc++;
}
// sleep(2);
}
/** else {
// $imp_mat[] = array ( );
$imp_mat[] = array ( 'id' => (int)0, 'mis_id' => (int)0, 'qui' => null, 'mencio' => null, 'quan' => null );
}
**/
}
//print_r($imp_mat);
//exit;
$comprova_mat = is_array($imp_mat);
echo "comprova: ".$comprova_mat."\n";
//echo "menc_mat_f\n";
//print_r($imp_mat);
//sleep(2);
//exit;
// evita repetir
$fins = count($imp_mat);
//if( ($mc<0) ){
echo "De les ".$nom_mat." notificacions, ".$mc." ".(($mc<>1)?"són":"és")." un impuls.\n";
$cont_fit = 0;
//echo $fins."\n";
for($g=0;$g<$fins;$g++) {
$id_busc = $imp_mat[$g]['id'];
$qu_busc = $imp_mat[$g]['qui'];
$tp_busc = $imp_mat[$g]['mencio'];
// echo "id_busc: ".$id_busc."\n";
$troba = array_search($id_busc, array_column($json_dec, '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_dec,
['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_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_dec, 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);
} else {
echo "No hi ha impulsos nous.\n";
}
//fin if matriu de notificacions té registres
}
// per a fer els repas linia a linia
$maxim = count($json_dec);
$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_dec[$e]['id'];
$men_mi = $json_dec[$e]['mis_id'];
$men_qi = $json_dec[$e]['qui'];
$men_qa = $json_dec[$e]['quan'];
$men_tp = $json_dec[$e]['mencio'];
echo "".$e." -> ".$men_id." | ".$men_mi. " -> ".$men_tp." \t- ".utf8_decode($men_qi)." \t-> ".$men_qa."\n";
// pausa d'un segon
//sleep(1);
//pausa de mig segon (amb microsegons => unitat més sis ceros == segons );
//usleep(200000);
}
if($maxim > $max_linies) {
$json_dec = array_splice($json_dec,($maxim-$max_linies),$maxim);
//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_dec, 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 de revisió dels impulsos: ".round($tmf,4)."";
//$log->lwrite("Temps mencions: ".round($tmf,4)."");
?>

View file

@ -0,0 +1,72 @@
<?php
$crmn = microtime(true);
if (!empty($_SERVER["argv"][1])){
$argument = $_SERVER["argv"][1];
} else {
// Presenta l'ajuda
echo "NO HE REBUT la variable\n";
echo "Cal el directori on s'executa el bot_plus.\n";
exit;
}
$lloc = $argument;
// ara pot carregar la configuració i el logger
include("".$lloc."/configuracio/bot_plus_cfg.php");
include("".$lloc."/utils/bot_plus_funcions.php");
require_once("".$lloc."/lib/logger.php");
//echo $lloc;
$fitxer = $lloc."/fitxers/registre.json";
//echo $fitxer;
//matriu a partir del fitxer
$json_dec = json_decode(file_get_contents($fitxer), true);
// per a fer els repas linia a linia
$maxim = count($json_dec);
echo "L'arxiu té ".$maxim." ".(($maxim<>1)?"registres":"registre")."\n";
$e = 0;
$reg = 0;
//$ara = strtotime("today");
//$ara = strtotime(filemtime($fitxer));
$ara = (filemtime($fitxer));
//echo $ara."\n";
echo "ACTUALITZE ".(($maxim<>1)?"ELS ".$maxim." REGISTRES":"EL REGISTRE").".\n";
$escriu_urls = fopen($lloc."/fitxers/urls_pub.txt", "w") or die("No puc escriure al registre!");
for($e=0;$e<$maxim;$e++) {
$urls_json = $json_dec[$e]['enllac'];
// echo "nº".$e." -> ".$men_id." | ".$men_mi. " -> ".$men_tp." - ".utf8_decode($men_qi)." \t-> ".$men_qa."\n";
$fp_oratge = preg_replace('/[^A-Za-z0-9\-]/','',trim($json_dec[$e]['enllac']));
$fp_oratge = preg_replace('/https/',' ',$fp_oratge);
$filt_oratge = strpos($fp_oratge,"previsioprevisio");
if($filt_oratge == false ) {
fwrite($escriu_urls, $urls_json."\n");
}
// pausa d'un segon
//sleep(1);
//pausa de mig segon (amb microsegons => unitat més sis ceros == segons );
//usleep(200000);
$reg++;
}
fclose($escriu_urls);
// consulta font RSS i afegeix les actuals.
if($maxim > ($max_linies+$max_linies_ad)) {
//$ordena_url = shell_exec("tail -".$max_linies+$max_linies_ad." ".$lloc."/fitxers/urls_pub.txt | sort | uniq | tee ".$lloc."/fitxers/urls_pub.txt");
$ordena_url = shell_exec("tail -".$max_linies+$max_linies_ad." ".$lloc."/fitxers/urls_pub.txt | tee ".$lloc."/fitxers/urls_pub.txt");
}
$copia_bak = shell_exec("cat ".$lloc."/fitxers/urls_pub.txt > ".$lloc."/fitxers/urls_pub.bak");
$crmnf = microtime(true);
$tmf = $crmnf - $crmn;
echo "Temps reconstrucció de urls: ".round($tmf,4)."\n";
//$log->lwrite("Temps mencions: ".round($tmf,4)."");
?>