added logout
This commit is contained in:
@@ -4,10 +4,8 @@ import (
|
||||
"net"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"git.haelnorr.com/h/golib/hlog"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
@@ -19,23 +17,6 @@ type RateLimitState struct {
|
||||
Bucket string // Discord's bucket identifier
|
||||
}
|
||||
|
||||
// APIClient is an HTTP client wrapper that handles Discord API rate limits
|
||||
type APIClient struct {
|
||||
client *http.Client
|
||||
logger *hlog.Logger
|
||||
mu sync.RWMutex
|
||||
buckets map[string]*RateLimitState
|
||||
}
|
||||
|
||||
// NewRateLimitedClient creates a new Discord API client with rate limit handling
|
||||
func NewRateLimitedClient(logger *hlog.Logger) *APIClient {
|
||||
return &APIClient{
|
||||
client: &http.Client{Timeout: 30 * time.Second},
|
||||
logger: logger,
|
||||
buckets: make(map[string]*RateLimitState),
|
||||
}
|
||||
}
|
||||
|
||||
// Do executes an HTTP request with automatic rate limit handling
|
||||
// It will wait if rate limits are about to be exceeded and retry once if a 429 is received
|
||||
func (c *APIClient) Do(req *http.Request) (*http.Response, error) {
|
||||
|
||||
Reference in New Issue
Block a user