lfile(''.$log_fitxer.''); $log->lwrite("Arranque la benvinguda."); $seg_bot = ConsultaSeguidors($base_url,$id_cmpt,$headers); $seguidors = $seg_bot; // recuperar fitxer de seguretat si falla $nseg_a = filesize($lloc."/fitxers/seg_cont.txt"); if ($nseg_a == 0) { $recupera = shell_exec("cat ".$lloc."/fitxers/seg_cont.bak > ".$lloc."/fitxers/seg_cont.txt"); $nseg_b = filesize($lloc."/fitxers/seg_cont.txt"); if($nseg_b == 0) { $fes_seg = fopen($lloc."/fitxers/seg_cont.txt", "w") or die("No puc escriure al registre!"); fwrite($fes_seg, 10); fclose($fes_seg); } } // 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); if($seguidors <> $nseg_ant) { $voltes = ($seguidors/$limit); // for per fer els fitxers de seguidors actual $enlla_seg = 0; $link = 0; $r = 0; $seguidors_matriu[]=array(); for ($r=0;$r<$voltes;$r++) { // echo "r: ".$r." - "; // echo " ".$limit."\n"; $conn_seg = curl_init(); $header = $headers; if ($r == 0) { $url = $base_url."/api/v1/accounts/".$id_cmpt."/followers?limit=".$limit; curl_setopt($conn_seg, CURLOPT_URL, $url); } else { $patro = array("<",">",";"); $seguent_net = str_replace($patro,"", $link); // echo $seguent_net."\n"; curl_setopt($conn_seg, CURLOPT_URL, $seguent_net); } curl_setopt($conn_seg, CURLOPT_RETURNTRANSFER, true); curl_setopt($conn_seg, CURLOPT_HEADER, $header); $data = curl_exec($conn_seg); $data_json = json_decode($data,true); curl_close($conn_seg); list($header, $body) = explode("\r\n\r\n", $data, 2); preg_match_all('/(.*?link): (.*?)\s+/', $header, $matches, PREG_PATTERN_ORDER); $linkNom = $matches[1][0]; $link = $matches[2][0]; // echo "the value of ".$linkNom." is ".$link."\n". // "the value of the link is ".$linkNom.":". $link."\n"; // Define the $response_headers array for later use $resposta_caps = []; // Get the first line (The Status Code) $line = strtok($header, "\r\n"); $status_code = trim($line); // Parse the string, saving it into an array instead while (($line = strtok("\r\n")) !== false) { if(false !== ($matches = explode(':', $line, 2))) { $resposta_caps["{$matches[0]}"] = trim($matches[1]); } } // print_r($resposta_caps); // echo "només link:\n". $resposta_caps['link']."\n"; $enlla_seg = $resposta_caps['link']; $seg_mat = json_decode($body, true); // print_r($seg_mat); $reg_seg = count(json_decode($body),true); //echo "registres obtinguts: ".$reg_seg."\n"; if($r == 0) { $buida_id = fopen($lloc."/fitxers/seguidors_act.txt", "w") or die ("No trobe seguidors_act"); fclose($buida_id); $buida_dt = fopen($lloc."/fitxers/seguidors_detall_act.txt", "w") or die ("No trobe seguidors_detall_act"); fclose($buida_dt); $buida_dt_json = fopen($lloc."/fitxers/seguidors_detall_act.json", "w") or die ("No trobe seguidors_detall_act_json"); fclose($buida_dt_json); } $t=0; for($t=0;$t<$reg_seg;$t++) { $usu = $seg_mat[$t]['id']; $usu_nom = $seg_mat[$t]['display_name']; $usu_act = $seg_mat[$t]['acct']; $usu_ori = $seg_mat[$t]['created_at']; $usu_pub = $seg_mat[$t]['last_status_at']; if( ($usu != null)||($usu != false)&&(!empty($usu) ) ){ //guarda la id del novingut amb w el reinici amb a afegeix al final $escriu_f = fopen($lloc."/fitxers/seguidors_act.txt", "a") or die("No puc escriure al registre!"); fwrite($escriu_f, $usu."\n"); fclose($escriu_f); //guarda la id i els detalls del novingut $escriu_d = fopen($lloc."/fitxers/seguidors_detall_act.txt", "a") or die("No puc escriure al registre!"); fwrite($escriu_d, "".$usu."-".$usu_nom."-".$usu_act."\n"); fclose($escriu_d); } //$seguidors_matriu[] = array('usuari'=>$usu,'nom'=>$usu_nom,'acct'=>$usu_act); $seguidors_matriu[] = array('usuari'=>(int)$usu,'nom'=>utf8_encode($usu_nom),'acct'=>$usu_act, 'creat'=>$usu_ori, "ult_pub"=>$usu_pub); //final bucle matriu } // final bucle per fer fitxers } //print_r($seguidors_matriu); // guarda fitxer filtrat en format json //$fes_json = json_encode($seguidors_matriu); $fes_json = json_encode($seguidors_matriu, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); $escriu_d_json = fopen($lloc."/fitxers/seguidors_detall_act.json", "a") or die("No puc escriure al registre!"); fwrite($escriu_d_json, $fes_json); fclose($escriu_d_json); //if($seguidors > $nseg_ant) { // BENVINGUDA compare la matriu actual amb el fitxer de seguidors existent per fer la benvinguda. // si està a l'actual i no al de seguidors, ha de ser benvinguda // per fe la benvinguda compare el fitxer de seguidors amb els nous. // si no hi és al fitxer seguidors, es fa la benvinguda y s'escriu al fitxer. // obrir fitxer de seguidors per evitar duplicats $segu_arx = shell_exec("cat ".$lloc."/fitxers/seguidors.txt"); // echo "segu_arx: ".$segu_arx."\n"; // fer matriu amb els actuals $segu_nou = exec("cat ".$lloc."/fitxers/seguidors_detall_act.txt", $eixida_seg_nou, $resp_seg_nou); $lin = exec("wc -l ".$lloc."/fitxers/seguidors_detall_act.txt | awk '{print $1}'", $eix_lin, $resp_lin); $s = 0; $reg_seg = ((count($seguidors_matriu))-1); for ($s=0;$s<$reg_seg;$s++) { // una altra opció: convertir en matriu cada linia del fitxer act $usu_nou = $eixida_seg_nou[$s]; $usu_nou_m = explode("-",$usu_nou); // triat a partir del fitxer $usu = $usu_nou_m[0]; $usu_nom = $usu_nou_m[1]; $usu_act = $usu_nou_m[2]; // triats a partir de la matriu // $usu = $seguidors_matriu[$s]['usuari']; // $usu_nom = $seguidors_matriu[$s]['nom']; // $usu_act = $seguidors_matriu[$s]['acct']; $no_rep = strpos($segu_arx,$usu); // echo $s." - usu: ".$usu." - usu_nom: ".$usu_nom." - usu_act: ".$usu_act." ".date('r')." -> ".$no_rep." :: \n"; if( ($no_rep !== false) ) { // echo "NOU: ".$s." - usu: ".$usu." - usu_nom: ".$usu_nom." - usu_act: ".$usu_act." -> ".$no_rep." :: \n"; // echo "NO escric al fitxer.\n"; } else { // echo $s." usu: ". $usu." ".$usu_nom." NOU!! :: \n"; $log->lwrite("NOU SEGUIDOR: (".$seguidors.") ".$usu." ".$usu_nom.""); // envie un missatge de benvinguda $moment = strtotime("now"); if (is_int($moment/2)) { if (is_int($seguidors/10)) { $publicacio = "Gràcies per seguir-me @".$usu_act." :paisoscat:🌍. Ets el seguidor/a que fa ".$seguidors.". Sóc un compte automàtic. Confie en que gaudisques dels continguts.\n".$bot_nom." v".$bot_versio.""; } else { $publicacio = "Gràcies per seguir-me @".$usu_act." :paisoscat:🌍. Sóc un compte automàtic. Confie en que gaudisques dels continguts.\n".$bot_nom." v".$bot_versio.""; } } else { if (is_int($seguidors/10)) { $publicacio = "Ei! @".$usu_act." Ets el seguidor/a que fa ".$seguidors.". Has arribat a un compte automàtic. \nPublique l'actualitat :paisoscat: 🌍 i m'alegra que ho compartisques.\n".$bot_nom." v".$bot_versio.""; } else { $publicacio = "Ei! @".$usu_act." Has arribat a un compte automàtic. \nPublique l'actualitat 🌍 :paisoscat: i m'alegra que ho compartisques.\n".$bot_nom." v".$bot_versio.""; } } $tut_dades = array( "status" => $publicacio, "language" => $llengua, "visibility" => $visib_benv ); PublicaMissatge($base_url,$headers,$tut_dades); // guarda la id del novingut $escriu_f = fopen($lloc."/fitxers/seguidors.txt", "a") or die("No puc escriure al registre!"); fwrite($escriu_f, $usu."\n"); fclose($escriu_f); //guarda la id i els detalls del novingut //(el desactive per mantindre els registres antics i contrastar amb els actuals al comiat) $escriu_d = fopen($lloc."/fitxers/seguidors_detall.txt", "a") or die("No puc escriure al registre!"); fwrite($escriu_d, $usu."-".$usu_nom."-".$usu_act."\n"); fclose($escriu_d); } } //final benvinguda //} //if($seguidors < $nseg_ant) { // comparar fitxer registre amb actual per fer comiat // es compara el fitxer existent amb l'actualitzat // ha de ser del fitxer detall que ara es guardarà amb guionets per fer explode correctament $cadena_seg_nou = shell_exec("cat ".$lloc."/fitxers/seguidors_act.txt"); $seg_ant_fitx = exec("cat ".$lloc."/fitxers/seguidors_detall.txt",$eixida_seg_ant,$resposta_seg_nou); // print_r($eixida_seg); $w = 0; $maxim = count($eixida_seg_ant); for($w=0;$w<$maxim;$w++) { $seg_ant = $eixida_seg_ant[$w]; $seg_ant_m = explode("-",$seg_ant); // print_r($seg_ant_m); $seg_ant_v = $seg_ant_m[0]; $seg_ant_n = $seg_ant_m[1]; $seg_ant_a = $seg_ant_m[2]; $hafugit = strpos($cadena_seg_nou,$seg_ant_v); if( ($hafugit === false) ) { // echo "FUIG: [".$w."] ".$seg_nou." | ".$seg_ant_v." -> ".$hafugit." :: \n"; // echo "el seguidor ".$seg_nou." ja no està a les dades obtingudes ara. \n"; // echo $w." - ".$seg_nou." li envie un missatge directe de comiat ->".$hafugit." \n"; $moment = strtotime("now"); if(is_int($moment/7)) { $txt_msstg = "Confie que vulgues tornar @".$seg_ant_a."\nGràcies pel temps de seguiment compartit. Que et vaja tot molt bé.\n#SocUnBot.\n".$bot_nom." v".$bot_versio.""; } elseif (is_int($moment/5)) { $txt_msstg = "Em sap greu ".$seg_ant_n." que deixes el seguiment del compte.\nTal volta més endavant vulgues tornar @".$seg_ant_a."\nGràcies pel temps de seguiment compartit.\n#SocUnBot.\n".$bot_nom." v".$bot_versio.""; } elseif (is_int($moment/3)) { $txt_msstg = "Fins a la propera ".$seg_ant_n.". M`ha agradat el temps que has seguit el compte, @".$seg_ant_a."\n#SocUnBot.\n".$bot_nom." v".$bot_versio.""; } elseif (is_int($moment/2)) { $txt_msstg = "Gràcies pel temps compartit ".$seg_ant_n.". M'alegrarà que tornes a seguir-me @".$seg_ant_a."\n#SocUnBot.\n".$bot_nom." v".$bot_versio.""; } else { $txt_msstg = "Fins la propera ".$seg_ant_n.". Ja en retrobarem quan et vinga de gust @".$seg_ant_a."\nGràcies pel temps de seguiment compartit.\n#SocUnBot.\n".$bot_nom." v".$bot_versio.""; } $log->lwrite("NOU COMIAT: (".$seguidors.") ".$seg_ant_n." ".$seg_ant_a." ".$seg_ant_v.""); $dades_tut = array( "status" => $txt_msstg, "language" => $llengua, "visibility" => $visib_comi ); PublicaMissatge($base_url,$headers,$dades_tut); } else { // echo "RES A FER. \n"; } } //fin comiat //} // validar els usuaris i copiar els _act sense el sufix $detall_vell = filesize($lloc."/fitxers/seguidors_detall.txt"); $detall_nou = filesize($lloc."/fitxers/seguidors_detall_act.txt"); $ids_vell = filesize($lloc."/fitxers/seguidors.txt"); $ids_nou = filesize($lloc."/fitxers/seguidors_act.txt"); //echo $detall_vell.":".$detall_nou."|".$ids_vell.":".$ids_nou."\n"; //echo "fin comiat!! \n"; if ( ($detall_vell<>$detall_nou) || ($ids_vell<>$ids_nou) ) { $actualitzaA = shell_exec("cat ".$lloc."/fitxers/seguidors_detall_act.txt > ".$lloc."/fitxers/seguidors_detall.txt"); $actualitzaB = shell_exec("cat ".$lloc."/fitxers/seguidors_act.txt > ".$lloc."/fitxers/seguidors.txt"); } // actualitze el fitxer de nombre de seguidors if(($seguidors == null)||($seguidors == false)) { $seguidors = 12; } $esc_seg = fopen($lloc."/fitxers/seg_cont.txt", "w") or die("No puc escriure al registre!"); fwrite($esc_seg, $seguidors); fclose($esc_seg); // faig còpia de seguretat $copia_seg = shell_exec("cat ".$lloc."/fitxers/seg_cont.txt > ".$lloc."/fitxers/seg_cont.bak"); //final benvinguda i comiat } // llegeix el nombre de seguidors $ncent_lle = fopen($lloc."/fitxers/cents_cont.txt", "r") or die("No puc obrir el nombre seguidors!"); $ncent_ant = fread($ncent_lle,filesize($lloc."/fitxers/cents_cont.txt")); fclose($ncent_lle); if ( (is_int($seguidors/10)) && ($ncent_ant < $seguidors) && ($act_cents ==1) ){ $cents = shell_exec("/usr/bin/php -f ".$lloc."/utils/bot_plus_cents.php ".$lloc.""); } // actualitza el nombre del seguidors si es més gran que l'existent if ($ncent_ant < $seguidors) { $escriu_cent = fopen($lloc."/fitxers/cents_cont.txt", "w") or die("No puc escriure al registre!"); fwrite($escriu_cent, $seguidors); fclose($escriu_cent); } $tempsbcf = microtime(true); $dur_bc = $tempsbcf - $tempsbc; $log->lwrite("Temps de benvinguda i comiat: ". round($dur_bc,4)." segons."); //echo "Temps de benvinguda i comiat: ". round($dur_bc,4)." segons.\n"; //echo "FIN \n"; ?>