2023-05-24 10:40:54 +02:00
< ? 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 decenes/centears de seguidors. " );
// preparatius i variables comunes
// obtindre el meu perfil per saber el nombre de seguidors
$bot_status = curl_init ();
2024-08-21 20:51:39 +02:00
curl_setopt ( $bot_status , CURLOPT_URL , $base_url . " /api/v1/accounts/ " . $id_cmpt );
2023-05-24 10:40:54 +02:00
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 );
// var_dump($resposta);
// echo "resposta\n";
// print_r($resposta);
$resposta = json_decode ( $resposta , true );
// echo "\n\nresposta json_decode\n";
// print_r($resposta);
// triar les variables que volem de la matriu
$tcc = microtime ( true );
$dcon = $tcc - $tc ;
echo " Temps cents conn: " . round ( $dcon , 4 ) . " \n " ;
$seguidors = $resposta [ 'followers_count' ];
$instancia = " https://mastodont.cat " ;
$pub_cent = null ;
$pub_img = null ;
if ( ( is_int ( $seguidors / 100 )) || ( is_int ( $seguidors / 10 )) ) {
if ( is_int ( $seguidors / 100 )) { $n_gif = $seguidors ;
} else { $centenar = floor ( $seguidors / 100 );
$desenes = ( $seguidors - ( $centenar * 100 ));
$n_gif = $desenes ;
}
2024-08-21 20:51:39 +02:00
$pub_cent = " Ja en sou " . $seguidors . " persones seguint el compte 🎂 a " . $instancia . " . \n Moltes gràcies! :brindis: \n #SocUnBot \n " . $bot_nom . " v " . $bot_versio . " " ;
2023-05-24 10:40:54 +02:00
$pub_img = $lloc . " /gifis/ " . $n_gif . " .gif " ;
$fitxer_tipus = mime_content_type ( $pub_img );
$fitxer_prep = curl_file_create ( $pub_img , $fitxer_tipus , 'file' );
echo " fitxer_tipus: " . $fitxer_tipus . " \n " ;
// sleep(1);
} else {
echo " Son " . $seguidors . " . La condició es que siga multiple de 100 redó i ara fa " . ( $seguidors / 100 ) . " \n " ;
}
$pub_img = $lloc . " /gifis/ " . $n_gif . " .gif " ;
$fitxer_tipus = mime_content_type ( $pub_img );
$publica_img = array (
" file " => $pub_img ,
" type " => $fitxer_tipus ,
" description " => " Celebració pels " . $seguidors . " seguidors. "
);
//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 (copiat de bot.php)
if ( $pub_cent != null ) {
2024-08-21 20:51:39 +02:00
// Publica a Mastodon
$status_data = array (
2023-05-24 10:40:54 +02:00
" status " => $pub_cent ,
" text " => $pub_cent ,
" language " => $llengua ,
" visibility " => $visib_com
);
$pub_img = $lloc . " /gifis/ " . $n_gif . " .gif " ;
$fitxer_tipus = mime_content_type ( $pub_img );
$fitxer_prep = curl_file_create ( $pub_img , $fitxer_tipus , 'file' );
2024-08-21 20:51:39 +02:00
$publica_img = [ 'file' => $fitxer_prep ,
'description' => 'Celebració pels ' . $seguidors . ' seguidors.' ,
'text' => $pub_cent ,
'status' => 'Prova de missatge amb imatge des del bot' ];
2023-05-24 10:40:54 +02:00
// 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 \n resposta 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 );
// var_dump($resposta);
// echo "resposta\n";
// 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 . " /gifis/ " . $n_gif . " .gif " ;
$imatge_adj = array ( 'file' => $im_url , 'type' => $im_type , 'description' => $im_desc );
$imatge_adj_json = json_encode ( $imatge_adj );
$status_data2 = array (
" status " => $pub_cent ,
" 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 ;
}
}
**/
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 ;
}
}
}
$tut_matriu = array (
" status " => $pub_cent ,
" text " => $pub_cent ,
" language " => $llengua ,
" media_ids[] " => $im_id ,
" visibility " => $visib_cent ,
" sensitive " => null ,
" 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 );
// $p++;
}
2024-08-21 20:51:39 +02:00
sleep ( 1 );
if ( ( is_int ( $seguidors / 100 )) ) {
$estad_segs = shell_exec ( " php -f " . $lloc . " /utils/bot_plus_estadistiques_seguidors.php " . $lloc );
if ( ( $estad_segs == null ) || ( $estad_segs == false ) ) {
$log -> lwrite ( " INFO: estadistiques de seguidors: " . (( $estad_segs != null ) ? " correcte " : " ERRADA " ) . " " );
}
2023-05-24 10:40:54 +02:00
}
$tcf = microtime ( true );
$dc = $tcf - $tc ;
echo " Temps cents dins: " . round ( $dc , 4 ) . " \n " ;
?>