mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-04 14:06:07 +00:00
fix: retry_after when ratelimited (#260)
This commit is contained in:
parent
fa10ac8fcb
commit
172637307d
@ -231,26 +231,29 @@ export class ApiHandler {
|
|||||||
url: `/${string}`,
|
url: `/${string}`,
|
||||||
request: ApiRequestOptions,
|
request: ApiRequestOptions,
|
||||||
response: Response,
|
response: Response,
|
||||||
result: any,
|
result: string,
|
||||||
next: () => void,
|
next: () => void,
|
||||||
reject: (err: unknown) => void,
|
reject: (err: unknown) => void,
|
||||||
now: number,
|
now: number,
|
||||||
) {
|
) {
|
||||||
const content = typeof request === 'object' ? `${JSON.stringify(request)} ` : '';
|
const content = `${JSON.stringify(request)} `;
|
||||||
let retryAfter;
|
let retryAfter =
|
||||||
|
Number(response.headers.get('x-ratelimit-reset-after') || response.headers.get('retry-after')) * 1000;
|
||||||
|
|
||||||
try {
|
if (Number.isNaN(retryAfter)) {
|
||||||
retryAfter = JSON.parse(result).retry_after * 1000;
|
try {
|
||||||
} catch (err) {
|
retryAfter = JSON.parse(result).retry_after * 1000;
|
||||||
this.debugger?.warn(`Unexpected error: ${err}`);
|
} catch (err) {
|
||||||
reject(err);
|
this.debugger?.warn(`Unexpected error: ${err}`);
|
||||||
return false;
|
reject(err);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.debugger?.info(
|
this.debugger?.info(
|
||||||
`${
|
`${
|
||||||
response.headers.get('x-ratelimit-global') ? 'Global' : 'Unexpected'
|
response.headers.get('x-ratelimit-global') ? 'Global' : 'Unexpected'
|
||||||
} 429: ${result}\n${content} ${now} ${route} ${response.status}: ${this.ratelimits.get(route)!.remaining}/${
|
} 429: ${result.slice(0, 256)}\n${content} ${now} ${route} ${response.status}: ${this.ratelimits.get(route)!.remaining}/${
|
||||||
this.ratelimits.get(route)!.limit
|
this.ratelimits.get(route)!.limit
|
||||||
} left | Reset ${retryAfter} (${this.ratelimits.get(route)!.reset - now}ms left) | Scope ${response.headers.get(
|
} left | Reset ${retryAfter} (${this.ratelimits.get(route)!.reset - now}ms left) | Scope ${response.headers.get(
|
||||||
'x-ratelimit-scope',
|
'x-ratelimit-scope',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user