mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-03 05:26:07 +00:00
26 lines
911 B
TypeScript
26 lines
911 B
TypeScript
/**
|
|
* Credits: github.com/abalabahaha/eris lib/rest/RequestHandler.js#L397
|
|
* Modified for our use-case
|
|
*/
|
|
|
|
/** Split a url to separate rate limit buckets based on major/minor parameters. */
|
|
export function simplifyUrl(url: string, method: string) {
|
|
let route = url
|
|
.replace(/\/([a-z-]+)\/(?:[0-9]{17,19})/g, function (match, p) {
|
|
return ['channels', 'guilds'].includes(p) ? match : `/${p}/skillzPrefersID`;
|
|
})
|
|
.replace(/\/reactions\/[^/]+/g, '/reactions/skillzPrefersID');
|
|
|
|
// GENERAL /reactions and /reactions/emoji/@me share the buckets
|
|
if (route.includes('/reactions')) {
|
|
route = route.substring(0, route.indexOf('/reactions') + '/reactions'.length);
|
|
}
|
|
|
|
// Delete Message endpoint has its own rate limit
|
|
if (method === 'DELETE' && route.endsWith('/messages/skillzPrefersID')) {
|
|
route = method + route;
|
|
}
|
|
|
|
return route;
|
|
}
|