diff --git a/index.php b/index.php index 7d91d8c..2e4063b 100644 --- a/index.php +++ b/index.php @@ -378,11 +378,11 @@ if ($loggedin && isset($_POST['postwaituntil']) && preg_match('#^\d+$#',$_POST[' $lspostid=$res['data']['id']; $debug.="lspostid: {$lspostid}
\n"; $rls=ckratelimit($res['headers']); - //if ($i==2) $rls=['remaining'=>0,'sleep'=>3895];// test err - //$rls=['remaining'=>0,'sleep'=>5];// test err + //if ($i==2) $rls=['ok'=>true,'remaining'=>0,'sleep'=>3895];// test err + //$rls=['ok'=>true,'remaining'=>0,'sleep'=>5];// test err if ($rls['ok'] && $rls['remaining']<=REQSTOPRESV && $i<$postscount-1) { $postingok=false; - $postwait=$rls['secstoreset']; + $postwait=$rls['sleep']; $postwaituntil=time()+$postwait; $postsoffset=$i+1; $postmsgs.='
Sending split post '.($i+1)."/{$postscount}, {$sname} reached your {$host}’s account posting rate limit, so it stopped sending; you’ll find the rest of your split posts (those which have not been sent, ".($i+2)."-{$postscount}) below; before posting them, you’ll have to wait ".ght($postwait)." for rate limit reset.
\n"; diff --git a/lib/booltostr.php b/lib/booltostr.php index 08bc0cd..ddf81d3 100644 --- a/lib/booltostr.php +++ b/lib/booltostr.php @@ -1,8 +1,8 @@ diff --git a/lib/ckratelimit.php b/lib/ckratelimit.php index b8ae8b1..ad9b21d 100644 --- a/lib/ckratelimit.php +++ b/lib/ckratelimit.php @@ -1,4 +1,5 @@ false,'error'=>'«x-ratelimit-reset» header could not be converted to a unix timestamp']; // don't do the one on the line below, since it happens lots of times //if ($reset<$date) return ['ok'=>false,'error'=>'the unix timestamp parsed from «x-ratelimit-reset» header is less than the unix timestamp parsed from «date» header']; - if ($remaining==0) - return ['ok'=>true,'sleep'=>$reset-$date+1,'remaining'=>$remaining]; - else - return ['ok'=>true,'sleep'=>0,'remaining'=>$remaining]; + return ['ok'=>true,'sleep'=>$reset-$date+1,'remaining'=>$remaining]; } + +/* +// test +$context=[ + 'http'=>[ + 'header'=>"Accept: application/json\r\n"; + ] +]; +$context=stream_context_create($context); +while (true) { + $res=@file_get_contents('https://livellosegreto.it/api/v2/instance',false,$context); + echo "{$res}\n"; + print_r($http_response_header); + $rl=ckratelimit($http_response_header); + print_r($rl); + if ($rl['sleep']>0) { + echo 'Reached rate limit, sleeping for '.ght($rl['sleep']).' (until '.date('c',time()+$rl['sleep']).') ...'; + sleep($rl['sleep']); + echo "\n"; + } +} +exit(0);*/ + ?> diff --git a/post.php b/post.php index 5068e59..cd9610e 100644 --- a/post.php +++ b/post.php @@ -34,7 +34,7 @@ if (isset($_COOKIE['verbose_host']) && isset($_COOKIE['verbose_token']) && isset $resp['ok']=true; $resp['id']=$res['data']['id']; $rls=ckratelimit($res['headers']); - //$rls=['remaining'=>20,'sleep'=>5];// test + //$rls=['ok'=>true,'remaining'=>20,'sleep'=>5];// test if ($rls['ok']) { $resp['remaining']=$rls['remaining']; $resp['secstoreset']=$rls['sleep'];