AnyEvent-SparkBot

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

1.010
  -- Changed min version of Carp to 1.38
1.011 
  -- Removed old vendor doc links
  -- Added missing meetings api and pod
1.012
  -- Added uploadFile interface
1.013
  -- Fixed the readme file
1.014
  -- Added retry for 404 ( these are super common )
	-- fixed missing method retryTimeout, now has a default value of 1 second
1.015
  -- Changed the default api url from: https://api.ciscospark.com/v1/ To:  https://webexapis.com/v1/
1.016
  -- added Accept http header by default
  -- removed ? from get when no get arguments are included
  -- we now have to generaate encoding values for raw websocket message ids, See: https://developer.webex.com/blog/what-the-base-decoding-webex-api-ids
1.017
  -- fixed warning line 341 in lib/AnyEvent/SparkBot.pm

lib/AnyEvent/HTTP/Spark.pm  view on Meta::CPAN

	$cb->($self,$id,$result,$request,$response);
      };
      
      my $next_id=$self->queue_request($request,$code);
      $self->add_ids_for_blocking($next_id);
      $self->agent->run_next;
    };
  } else {
    $wrap=sub {
      my ($self,$id,$result,undef,$response)=@_;
      return $cb->(@_) if $result || !(($response->code==429 || $response->code==404) &&  $count-- >0);
      my $timeout=looks_like_number($response->header('Retry-After')) ? $response->header('Retry-After') : $self->retryTimeout;
      $self->log_warn("Request: $id recived a 429 response, will retry in $timeout seconds");

      if($count>0)  {
	my $ae;
	$ae=AnyEvent->timer(after=>$timeout,cb=>sub {
          my $next_id=$self->queue_request($request,sub { 
            my ($self,undef,$result,undef,$response)=@_;
	    $wrap->($self,$id,$result,$request,$response);
	  });



( run in 1.209 second using v1.01-cache-2.11-cpan-39bf76dae61 )