#!/usr/bin/php lfile("".$log_fitxer.""); if ( ($log_detall == "DETALLAT") || ($log_detall == "COMPLET") ) { $log -> lwrite ("INICIE ".$bot_nom." ".$bot_versio.""); $log -> lwrite ("Entre a ".$lloc." per a iniciar el procés."); } else { $log -> lwrite ("INICIE ".$bot_nom." ".$bot_versio.""); if($mem_on == 1) { $log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria() ); } } // guarda la opció de visib_tut a un fitxer // Escriu la opció de visib_tut al fitxer (cal per reiniciar les opcions de visib_tut de les publicacions) $vis_escr = fopen($lloc . "/fitxers/compte_vis.txt", "w") or die("No puc obrir el contador!"); if ($log_detall == "DETALLAT") { $log -> lwrite ($lloc . "/fitxers/compte_vis.txt "); } fwrite($vis_escr, $visib_tut); fclose($vis_escr); // bucle de microsites $pt = 0; $pr = 0; $f = 0; // Nombre segons les fonts. (1,2 o 3 màxim definides a cfg primer) 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; } // 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 $i = 0; $j = 0; $n = 0; $llista = array(); foreach ($feed->get_data() as $item) { $id = $i; $titol = $item['title']; $data = $item['date']; $descripcio = $item['description']; $enllac = $item['link']; // 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; } //genere la matriu amb les dades filtrades if ($tria == 1) { $llista[] = array( "id"=>$id, "num"=>$n, "titol"=>(string) $item["title"], "descripcio"=>(string) $item["description"], "enllac"=>(string) $item["link"], "pub"=>(string) $item["date"] ); $j++; } $i++; } // cronometre $temps1 = microtime(true); if ( ($log_detall == "DETALLAT") || ($log_detall == "COMPLET") ) { $log -> lwrite ("Generada la matriu de RSS".$f.""); $duradaa = $temps1 - $temps; if($duradaa < 60) { $duradaa = round($duradaa,4); $nomt = "segons"; } else { $duradaa = date("i:s",$duradaa); $nomt = "minuts"; } $log -> lwrite("Temps matriu: ".$duradaa." ".$nomt.""); } if ($log_detall == "COMPLET") { $log -> lwrite ("La matriu RSS".$f." conté ".$j." registres."); } else { if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("Generada la matriu de RSS".$f.""); } } if (count($llista) === 0) { $log->lwrite("ERRADA: no he pugut generar la matriu de la font RSS".$f.". Bote a les funcions activades. - ".__LINE__); $log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); $errada_tecnica = shell_exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_erradatecnica.php ".$lloc.""); // enviaCorreu($elmeucompte,"| ".$bot_nom." v".$bot_versio." |",$msg,$elremitent); if ($pt == 0) { goto benvinguda; } else { goto retallar; } } // a voltes (?!) el fitxer registre queda buit o perd línies. Ignore el motiu. (Manca de memòria?) // per evitar-ho verifique el tamany i si és 0 o menor de max_linies inclou les darreres de la matriu llevat de la primera $reg_tam = filesize("".$lloc."/fitxers/dates.txt"); $reg_lin = count(file("".$lloc."/fitxers/dates.txt")); $reg_lin_bak = count(file("".$lloc."/fitxers/dates.bak")); //if ( ($reg_tam == 0) || ($reg_lin < ($max_linies-$max_linies_ad)) || ($reg_lin < ($reg_lin_bak)) ) { if ( ($reg_tam == 0) || ($reg_lin < ($reg_lin_bak)) ) { $log -> lwrite ("ALERTA! El fitxer de dates te ".$reg_lin." | ".$reg_lin_bak." linies. Cal posar dates abans de la comparació. - ".__LINE__); if ( $reg_lin < $max_linies ) { // guarda les dates de les publicació de la matriu en el dates.txt // utilitze $j que és el comptador de les dades de la matriu ja filtrada si no fa registres buits for( $c = 1; $c<$j ; $c++ ) { $escriu_magatzem = fopen($lloc . "/fitxers/dates.txt", "a") or die("No puc escriure al registre!"); fwrite($escriu_magatzem, strtotime($llista[$c]['pub'])." ".$llista[$c]['pub']."\n"); fclose($escriu_magatzem); } // recuperar la còpia de seguretat $copia_seguretat_rec = shell_exec("cat ".$lloc."/fitxers/dates.bak >> ".$lloc."/fitxers/dates.txt"); } } else { if ( ($log_detall == "DETALLAT") || ($log_detall == "COMPLET") ) { $log -> lwrite ("El fitxer de registre té tamany de ".$reg_tam." bytes."); } } $url_lin = count(file("".$lloc."/fitxers/urls_pub.txt")); $url_tam = filesize("".$lloc."/fitxers/urls_pub.txt"); $url_lin_b = count(file("".$lloc."/fitxers/urls_pub.bak")); $url_tam_b = filesize("".$lloc."/fitxers/urls_pub.bak"); if ( ($url_tam == 0) || ($url_lin < $url_lin_b) ) { //if ( $url_lin < ($max_linies+$max_linies_ad) ) { $log -> lwrite ("ALERTA! El fitxer de url te ".$url_lin." | ".$url_lin_b." linies. Cal posar-ne més. - ".__LINE__); $eix_urlsr = array(); $urlsr = exec("php -f ".$lloc."/utils_cli/bot_plus_urls_json_cli_refer.php ".$lloc, $eix_urlsr, $resp_urlsr); if ( $urlsr != 0 ){ $log -> lwrite("INFO: recuperar url: ".(($resp_urlsr == 0)?"correcte":"ERRADA")." - ".__LINE__); } if ( ($log_detall == "DETALLAT") || ($log_detall == "COMPLET") ) { $url_tam = filesize("".$lloc."/fitxers/urls_pub.txt"); $log -> lwrite ("El fitxer de urls té un tamany de ".$url_tam." bytes."); } // final recuperar } // generar cadena comprovar amb les dates recuperades $comprovar = exec("cat ".$lloc."/fitxers/dates.txt",$eixida_comprovar,$resposta_comprovar); $comprovar = implode(" ",$eixida_comprovar); $url_hist = shell_exec("cat ".$lloc."/fitxers/urls_pub.txt"); $url_hist = preg_replace('/[^A-Za-z0-9\-]/','',$url_hist); $url_hist = preg_replace('/https/',' ',$url_hist); // cadena per trobar la data de les darreres publicades // si troba la cadena amb strpos NO publica, si no la troba, PUBLICA $c = 0; $k = 0; $n = $j-1; $p = 0; $w = 0; $verifica = 0; for( $c = 0; $c<$n ; $c++ ) { // variables (en proves) $publicat = $llista[$c]['pub']; $publicat_str = strtotime($llista[$c]['pub']); $titol = trim($llista[$c]['titol']); $descripcio = trim($llista[$c]['descripcio']); $enllac = $llista[$c]['enllac']; // cadena numerica de temps per comparar $rss_ara = strtotime($llista[$c]['pub']); $rssu_ara = trim($llista[$c]['enllac']); $rssu_ara = preg_replace('/[^A-Za-z0-9\-]/','',$rssu_ara); $rssu_ara = preg_replace('/https/',' ',$rssu_ara); // $rsst_ara = trim($llista[$c]['titol'])." ".trim($llista[$c]['descripcio'])." ".$llista[$c]['enllac']." "; // $descripcio = preg_replace("/\\\\n/","'", $descripcio); $descripcio = str_replace("\n"," ", $descripcio); $rsst_ara = $titol." ".$descripcio." ".$enllac." "; if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("Contingut de rss_ara: ".$rss_ara); } $verifica = strpos($comprovar,$rss_ara); $mira_url = strpos($url_hist,$rssu_ara); if ( ($log_detall == "COMPLET") ) { $log -> lwrite ("Contingut de verifica num: ".$c." - ".$verifica); $log -> lwrite ("Contingut de mira_url num: ".$c."|".$rssu_ara."|".$mira_url); } // incloure aqui filtre d'un mes per publicar (ara on està fa falsos positius(?) if (($verifica !== false) || ($mira_url !== false)) { if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("No publica num: ".$c." ".$llista[$c]['titol']); } if($act_etiquetes == 1) { if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite("Etiqueta triada: ".MstEtiquetes($rsst_ara)." "); } } } else { $log -> lwrite ("PUBLICA (rss".$f.") num: ".$c." ".$llista[$c]['titol']); // variables a utilitzar $titol = trim($llista[$c]['titol']); $descripcio = trim($llista[$c]['descripcio']); $descripcio = str_replace("\n"," ",$descripcio); $enllac = trim($llista[$c]['enllac']); $pub = $llista[$c]['pub']; $pub_str = $rss_ara; $etiqueta = MstEtiquetes($rsst_ara); $etiqueta_pub = substr($etiqueta,0,-4); $fontrss = $fitxer; //guarda la data de la publicació en el dates.txt $escriu_magatzem = fopen($lloc . "/fitxers/dates.txt", "a") or die("No puc escriure la data!"); // fwrite($escriu_magatzem, $rss_ara." ". $llista[$c]['pub']."\n"); fwrite($escriu_magatzem, $rss_ara." ". $pub."\n"); fclose($escriu_magatzem); usleep(100000); $fp_oratge = preg_replace('/[^A-Za-z0-9\-]/','',$enllac); $fp_oratge = preg_replace('/https/',' ',$fp_oratge); $filt_oratge = strpos($fp_oratge,"previsioprevisio"); if($filt_oratge == false) { //guarda la URL de la publicació en el urls_pub.txt $escriu_url = fopen($lloc . "/fitxers/urls_pub.txt", "a") or die("No puc escriure la url!"); // fwrite($escriu_url, $llista[$c]['enllac']."\n"); fwrite($escriu_url, $enllac."\n"); fclose($escriu_url); usleep(10000); } else { // $log -> lwrite ("filt_oratge: ".$filt_oratge." línia 288"); } // $filtre_pilota = strpos($rssu_ara,"pilota"); // if( ((strtotime("now") - $rss_ara) <= $antic_max) && ($filtre_pilota !== false) ) { if( ((strtotime("now") - $rss_ara) <= $antic_max) ) { // Obre el fitxer del compte per trobar el nombre guardat i generar new_count (si no fa error) $compt_lle = fopen($lloc . "/fitxers/compte_pub.txt", "r") or die("No puc obrir el contador!"); $compt_dar = fread($compt_lle,filesize($lloc . "/fitxers/compte_pub.txt")); if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("Últim registre: " . $compt_dar . " (5)"); } fclose($compt_lle); $compt_nou = $compt_dar; // genera la publicació (activació d'etiquetes o no) if ($act_etiquetes == 1) { // $publicacio = trim($llista[$c]['titol'])."\n".trim($llista[$c]['descripcio'])."\n".MstEtiquetes($rsst_ara)."\n".$llista[$c]['enllac'].""; $publicacio = $titol."\n".$descripcio."\n".$etiqueta_pub."\n".$enllac.""; $log -> lwrite("Etiqueta triada: ".MstEtiquetes($rsst_ara).""); } else { $publicacio = $titol."\n".$descripcio."\n".$enllac.""; $log -> lwrite("Etiqueta proposada: ".MstEtiquetes($rsst_ara).""); } // Defineix la visib_tut segons el contador $count_factor = $compt_nou/$public_freq; if ( ($log_detall == "DETALLAT") ) { $log -> lwrite ("count_factor: " .$count_factor. " (8)"); $log -> lwrite ("resultat filtre: ".is_int($count_factor)." (9)"); } // reinicia la opció de visib_tut des del fitxer de txt $vis_ll = fopen($lloc . "/fitxers/compte_vis.txt", "r") or die("No puc obrir el contador!"); $vis_lect = fread($vis_ll,filesize($lloc . "/fitxers/compte_vis.txt")); if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("Visibilitat des del fitxer: " . $vis_lect . " (10)"); } fclose($vis_ll); // recupera segons la configuració $visib_tut = $vis_lect; if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite("Variable visib_tut cfg: ".$visib_tut.""); } if(is_int($count_factor)){ if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("Visibilitat: " .$visib_tut . " (11)"); } }else{ $visib_tut="unlisted"; if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("Visibilitat: " .$visib_tut . " (12)"); } } //registre json (EN PROVES) $fitxer_json = $lloc."/fitxers/registre.json"; //matriu a partir del fitxer $json_dec = json_decode(file_get_contents($fitxer_json), true); $no_rep = in_array($pub_str, array_column($json_dec,"pub_str")); $no_url = in_array($pub_str, array_column($json_dec,"enllac")); $ara = strtotime("now"); $ara_reg = date('d/m/Y H:i:s',$ara); if(($no_rep == false)||($no_url == false)) { $etiqueta = MstEtiquetes($rsst_ara); 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_reg, // "media"=>(string)$media // "media_tit"=>(string)$media_titol, // "media_img"=>(string)$media_img "font"=>$fontrss ]); $k++; // 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); if($mem_net == 1) { $json_dec = null; $fes_json = null; unset($json_dec, $fes_json); } // Publica a Mastodon $dades_tut = array( "status" => $publicacio, "language" => $llengua, "visibility" => $visib_tut ); PublicaMissatge($base_url,$headers,$dades_tut); if($control_memoria == 1) { $log -> lwrite ( "Publicació: ".mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } } else { $log->lwrite("INFO: Ja ha estat registrada."); } // Calcula i escriu el nou nombre al fitxer $compt_nou++; $compt_esc = fopen($lloc . "/fitxers/compte_pub.txt", "w") or die("No puc obrir el contador!"); if ( ($log_detall == "DETALLAT") ) { $log -> lwrite ($lloc . "/fitxers/compte_pub.txt"); } fwrite($compt_esc, $compt_nou); fclose($compt_esc); $p++; $pt++; sleep($espera_tut+30); // final if temps màxim } else { $log -> lwrite ("NO publique per tindre data superior al límit."); usleep(100000); $pr++; } if($control_memoria == 1) { $log -> lwrite ( "NO publique: ".mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } $w++; } // dronometre $temps_pub = microtime(true); $durad_pub = $temps_pub - $temps; if($durad_pub >= $temp_max_pub ) { goto acabar; } //final publicació (else) } // cronometre $temps2 = microtime(true); $duradab = $temps2 - $temps1; if ($p >= 1) { // escriu la data de la darrera publicació $data_tam = filesize($lloc."/fitxers/data_pub.txt"); $data_esc = fopen($lloc . "/fitxers/data_pub.txt", "w+") or die("No puc obrir el contador!"); $data_ant = fread($data_esc,filesize("".$lloc ."/fitxers/data_pub.txt")); // $data_nova = strtotime("now"); $data_nova = $ara; fwrite($data_esc, $data_nova); fclose($data_esc); $log -> lwrite("data_pub actualitzada: ".$data_nova ); // $log -> lwrite("data_pub actualitzada: ".$data_nova." | ".date("d-m-Y H:i:s",$data_nova) ); // per tallar l'execució si dura més de 10 minuts i evita solapar execucions if ($duradab > $temp_max_pub) { goto acabar; } if($duradab < 60) { $duradab = round($duradab,4); $nomt = "segons"; } else { $duradab = date("i:s",$duradab); $nomt = "minuts"; } $log->lwrite("He publicat ".$p." ".(($p<>1)?"novetats":"novetat")." (rss".$f.") en ".$duradab." ".$nomt."." ); if( ($control_memoria == 0)&&($mem_net == 0) ) { $log -> lwrite ( "rss".$f." - ".mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { // $log -> lwrite("Temps publicació: ".$duradab." ".($duradab < 60)? "segons.":"minuts.")."" ); $log -> lwrite("Temps publicació: ".$duradab." ".$nomt."." ); } } else { // echo "NO he publicat res (rss".$f .").\n"; if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("NO he publicat res (rss".$f.")."); } } // final for multimicrosite } retallar: if($pt == 0) { // dronometre en cas de no publicar $temps2 = microtime(true); $duradab = $temps2 - $temps; if($duradab < 60) { $duradab = round($duradab,4); $nomt = "segons"; } else { $duradab = date("i:s",$duradab); $nomt = "minuts"; } $log->lwrite("Temps de ".$f." RSS : ".$duradab."" ); if( ($control_memoria == 0)&&($mem_net == 0) ) { $log -> lwrite ( "Després rss: ".mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } else { $llista = null; $duradaa = null; $duradab = null; $comprovar = null; $dades_tut = null; unset($llista, $comprovar, $dades_tut); $log -> lwrite ( "Després rss amb neteja ".mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } //goto benvinguda; } //if($pt>=1) { //retalle a un màxim de $max_linies $registre = "".$lloc."/fitxers/dates.txt"; $registre_b = "".$lloc."/fitxers/dates.bak"; $urls_reg = "".$lloc."/fitxers/urls_pub.txt"; $urls_reg_b = "".$lloc."/fitxers/urls_pub.bak"; $linies = count(file($registre)); $linies_b = count(file($registre_b)); $url_lin = count(file($urls_reg)); $url_tam = filesize($urls_reg); $url_lin_b = count(file($urls_reg_b)); $url_tam_b = filesize($urls_reg_b); $fitxerreg = $lloc."/fitxers/registre.json"; $json_dec = json_decode(file_get_contents($fitxerreg), true); $maxim = count($json_dec); // if ( ($linies > $max_linies) || ($url_lin > ($max_linies+$max_linies_ad)) || ($url_lin > $url_lin_b) || ($maxim > ($max_linies+$max_linies_ad)) && ($pt >= 1) ){ if ( ($linies > $max_linies) || ($url_lin > ($max_linies+$max_linies_ad)) || ($url_lin > $url_lin_b) || ($maxim > ($max_linies+$max_linies_ad)) ){ // retalle el fitxer de registre // per a que siguen les primeres cal canviar tail per head if ( ($linies > $max_linies) ){ if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite ("Retalle el fitxer de dates."); if ( ($log_detall == "COMPLET") ) { $log -> lwrite ("El fitxer de dates té ".$linies." línies, el retalle i deixe les ".$max_linies." darreres dates."); } } // retalla dates $fitx = new SplFileObject($lloc."/fitxers/dates.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/dates.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); // còpia de seguretat dates // $log->lwrite("".$url_lin.":".$url_lin_b.""); if ($linies >= $linies_b) { // $copia_seguretat_dat = shell_exec("sort ".$lloc."/fitxers/dates.txt > ".$lloc."/fitxers/dates.bak"); $copia_seguretat_dat = exec("cat ".$lloc."/fitxers/dates.txt > ".$lloc."/fitxers/dates.bak", $eixida_cs, $resposta_cs); // if (($copia_seguretat_dat ==null) || ($copia_seguretat_dat ==false)) { if ($resposta_cs != 0) { $log -> lwrite("INFO: copia_seguretat_dat: ".( (($resposta_cs == 0))?"correcte":"ERRADA")." - ".__LINE__); } } if ($mem_net == 1) { $url_lin = null; $url_lin_b = null; $urls_reg = null; $urls_reg_b = null; $eixida_cs =null; unset($url_lin, $url_lin_b, $urls_reg, $urls_reg_b, $eixida_cs); } //final neteja i copia seguretat dates } if ( ($url_lin > ($max_linies+$max_linies_ad)) || ($maxim > ($max_linies+$max_linies_ad)) || ($url_tam > $url_tam_b) ){ // retalla urls $max_lin_url = $max_linies + $max_linies_ad; // $log -> lwrite ("max_lin_url: ".$max_lin_url ); $fitx = new SplFileObject($lloc."/fitxers/urls_pub.txt", "r"); $fitx->seek(PHP_INT_MAX); $last_line = $fitx->key(); if(($last_line - $max_lin_url) >=1) { $lines = new LimitIterator($fitx, $last_line - $max_lin_url, $last_line); //n being non-zero positive integer // print_r(iterator_to_array($lines)); // Iterate each element $it = iterator_to_array($lines); $escriu_magatzem = fopen($lloc . "/fitxers/urls_pub.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); } /* $eixida_nu = array(); $net_url = exec("tail -".($max_linies + $max_linies_ad)." ".$lloc."/fitxers/urls_pub.txt | tee ".$lloc."/fitxers/urls_pub.txt", $eixida_nu, $resposta_nu); // $net_url = shell_exec("tail -".($max_linies + $max_linies_ad)." ".$lloc."/fitxers/urls_pub.txt | tee ".$lloc."/fitxers/urls_pub.txt"); // $log -> lwrite("resposta_nu: ".$resposta_nu); if ( $resposta_nu != 0 ){ $log -> lwrite("INFO: net_url: ".(($resposta_nu == 0)?"correcte":"ERRADA")." - ".__LINE__); $log -> lwrite (print_r($eixida_nu)); if($act_correu == 1) { $msg = "INFO: net_url: ".(($resposta_nu == 0)?"correcte":"ERRADA")." - ".__LINE__; enviaCorreu($elmeucompte,"| ".$bot_nom." v".$bot_versio." |",$msg,$elremitent); } } */ //fer còpia de seguretat urls // $log -> lwrite( $url_lin." : ".$url_lin ); if ($url_lin >= $url_lin_b) { $eixida_csu = array(); $copia_seguretat_url = exec("cat ".$lloc."/fitxers/urls_pub.txt > ".$lloc."/fitxers/urls_pub.bak", $eixida_csu, $resposta_csu); // $log -> lwrite("resposta_csu: ".$resposta_csu); if ($resposta_csu != 0) { $log -> lwrite("INFO: copia_seguretat_url: ".(($resposta_csu == 0)?"correcte":"ERRADA")." - ".__LINE__); $log -> lwrite (print_r($eixida_csu)); } } if($mem_net == 1) { $urls_lin = null; $urls_lin_b = null; $urls_reg = null; $urls_reg_b = null; $eixida_csu= null; unset($urls_lin, $urls_lin_b, $urls_reg, $urls_reg_b, $eixida_csu); } if( $maxim > ($max_linies+$max_linies_ad) ) { // retallar fitxer registre json $json_dec = array_splice($json_dec,($maxim-($max_linies+$max_linies_ad)),$maxim); $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, $linies, $url_lin); if($mem_net == 1) { $json_dec = null; $linies = null; $url_lin = null; unset($json_dec,$linie,$url_lin); } // final neteja urls i copia seguretat } // } //final } else { echo "El fitxers de dates i urls OK.\n"; // $log -> lwrite ("Els fitxer de dates ".$cop_seg_dat." i el de urls ".$cop_seg_url."."); } // cronometre $temps3 = microtime(true); if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $duradad = $temps3 - $temps2; $log -> lwrite("Temps retall registre: ".round($duradad,4)." segons."); } // per donar la benvinguda als nous seguidors benvinguda: if ($act_bencom == 1) { // $log -> lwrite("Arranque benvinguda."); // $gracies = shell_exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_benvinguda.php ".$lloc.""); $gracies = exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_benvinguda.php ".$lloc."", $eixida_gr, $resposta_gr); // per verificar que exec funciona correctament if ($resposta_gr != 0) { $log -> lwrite("INFO: benvinguda: ".(($resposta_gr == 0)?"correcte":"ERRADA")." - ".__LINE__); if($act_correu == 1) { $msg = "INFO: benvinguda: ".(($resposta_gr == 0)?"correcte":"ERRADA").""; enviaCorreu($elmeucompte,"| ".$bot_nom." v".$bot_versio." |",$msg,$elremitent); } } if($mem_net == 1) { $gracies = null; $msg = null; $temps3 = null; $duradad = null; unset($gracies); $log -> lwrite ( "amb neteja ".mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } else { if($control_memoria == 1) { $log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } } } $temps4 = microtime(true); if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $duradae = $temps4 - $temps3; if ($duradae < 60) { $duradae = round($duradae,4); $nomt = "segons"; } else { $duradae = date("i:s",$duradae); $nomt = "minuts"; } $log -> lwrite("Temps benvinguda: ".$duradae." ".$nomt.""); } // contestar a les mencions if ($act_mencio == 1) { // $resp_mencio = shell_exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_mencions.php ".$lloc); $resp_mencio = exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_mencions.php ".$lloc."", $eixida_menc, $resposta_menc); // per verificar que exec ha funcionat if ($resposta_menc !=0) { $log -> lwrite("INFO: mencions: ".(($resposta_menc == 0)?"correcte":"ERRADA")." - ".__LINE__); if($act_correu == 1) { $msg = "INFO: mencions: ".(($resposta_menc == 0)?"correcte":"ERRADA")." - ".__LINE__; enviaCorreu($elmeucompte,"| ".$bot_nom." v".$bot_versio." |",$msg,$elremitent); } } if($control_memoria == 1) { $log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } } if ($act_impuls == 1) { $com = exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_impulsos.php ".$lloc." ", $eixida_imp, $resposta_imp); // per verificar que exec ha funcionat if ($resposta_imp != 0) { $log -> lwrite("INFO: impulsos: ".(($resposta_imp == 0)?"correcte":"ERRADA")." - ".__LINE__); if($act_correu == 1) { $msg = "INFO: impulsos: ".(($resposta_imp == 0)?"correcte":"ERRADA")."\n".mostra_us_memoria()." ".mostra_pic_memoria()."" ; enviaCorreu($elmeucompte,"| ".$bot_nom." v".$bot_versio." |",$msg,$elremitent); } } if($control_memoria == 1) { $log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } } // fer comentaris segons el temps d'inactivitat // llegir data de la darrera publicació $data_lle = fopen($lloc . "/fitxers/data_pub.txt", "r") or die("No puc obrir la darrera data!"); $data_ant = fread($data_lle,filesize($lloc . "/fitxers/data_pub.txt")); $data_com = strtotime($espera_coment); $data_ara = strtotime("now"); $data_dif = ($data_com - $data_ara); $data_ina = ($data_ara - $data_ant); fclose($data_lle); if ($act_coment == 1) { if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $log -> lwrite("La publicació és ".$visib_com.""); } // $com = shell_exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_comentaris.php ".$lloc." ".$data_ina." ".$data_dif.""); $com = exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_comentaris.php ".$lloc." ".$data_ina." ".$data_dif."", $eixida_com, $resposta_com); // per verificar que exec ha funcionat if ($resposta_com != 0) { $log -> lwrite("INFO: comentaris: ".(($resposta_com == 0)?"correcte":"ERRADA")." - ".__LINE__); if($act_correu == 1) { $msg = "INFO: comentaris: ".(($resposta_com == 0)?"correcte":"ERRADA")."\n".mostra_us_memoria()." ".mostra_pic_memoria().""; enviaCorreu($elmeucompte,"| ".$bot_nom." v".$bot_versio." |",$msg,$elremitent); } } if($control_memoria == 1) { $log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } } // cronometre $temps5 = microtime(true); if ( ($log_detall == "COMPLET") || ($log_detall == "DETALLAT") ) { $duradac = $temps5 - $temps4; if($duradac < 60) { $duradac=round($duradac,4); $nomt="segons"; } else { $duradac=date("i:s",$duradac); $nomt="minuts"; } $log -> lwrite("Temps comentari: ".$duradac." ".$nomt."."); } acabar: $log -> lwrite("He fet ".$pt." ".(($pt<>1)?"publicacions":"publicació")." en total."); $temps6 = microtime(true); $durada = $temps6 - $temps; $log -> lwrite("Temps total: ".(($durada>60)?date("i:s",$durada)." minuts | ".round($durada,4)." segons.":"".round($durada,4)." segons.") ); // buidar memoria amb variables null o unset if($mem_net_fin == 1) { $llista = null; $json_dec = null; $url_lin = null;$url_lin_b = null;$urls_an = null;$urls_bn = null;$linies = null;$comprovar = null;$url_hist = null; $channel = null; $registre = null; $registre_b = null; $msg = null; $filt_oratge = null; $eixida_csu = null; $durada = null; $temps1 = null; $temps2 = null; $temps3 = null; $temps4 = null; $temps5 = null; $temps6 = null; $eix_urlsr = null; $it = null; $gracies = null; $eixida_gr = null; $eixida_imp = null; $eixida_menc = null; $eixida_com = null; unset($llista,$json_dec,$url_lin,$url_lin_b,$urls_an,$urls_bn,$linies,$comprovar,$url_hist, $channel, $reg_lin, $reg_lin_bak, $msg, $eixida_csu, $eix_urlsr, $it, $gracies, $eixida_gr, $eixida_imp, $eixida_menc, $eixida_com); $log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } else { $log -> lwrite ( mostra_us_memoria()." ".mostra_pic_memoria()." - ".__LINE__ ); } $log -> lwrite ("FINAL!! ".$bot_nom." ".$bot_versio); echo "Final manual. \n"; ?>