mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-02 17:00:08 +00:00
* fix: check new types idea * fix: type errors * fix: new style * fix: more cleanup * fix: more cleanup * fix: cleanup audit logs * fix: cleanup stickers * fix: cleanup integrations * fix: more cleanup * fix: organize into 1 place * fix: few errors * fix: some broken import fixes * fix: quite a lot of fixes across the board * fix: more fixes for broken imports * fix: more fixes for broken imports * fix: handler imports * fix: all remaining import errors * fix: more errors needing fixes * fix: clearing up transformers * fix: few moer types * fix: more cleanup of extra types * fix: fmt * fix: cleanup discordeno file * Nuke Base Types (#2102) * fix: cleanup snake stuff * convert camelCase to snake_case (#2103) * fix: add camelize * fix: finalize remaining errors * fix: imports in test Co-authored-by: LTS20050703 <87189679+lts20050703@users.noreply.github.com>
53 lines
1.9 KiB
TypeScript
53 lines
1.9 KiB
TypeScript
import type { Bot } from "../../bot.ts";
|
|
import { DiscordMessage } from "../../types/discord.ts";
|
|
|
|
/** Fetches between 2-100 messages. Requires VIEW_CHANNEL and READ_MESSAGE_HISTORY */
|
|
export async function getMessages(
|
|
bot: Bot,
|
|
channelId: bigint,
|
|
options?: GetMessagesAfter | GetMessagesBefore | GetMessagesAround | GetMessagesLimit,
|
|
) {
|
|
if (options?.limit && (options.limit < 0 || options.limit > 100)) {
|
|
throw new Error(bot.constants.Errors.INVALID_GET_MESSAGES_LIMIT);
|
|
}
|
|
|
|
if (options) {
|
|
if (bot.utils.hasProperty(options, "around")) options.around = (options.around as bigint).toString();
|
|
if (bot.utils.hasProperty(options, "before")) options.before = (options.before as bigint).toString();
|
|
if (bot.utils.hasProperty(options, "after")) options.after = (options.after as bigint).toString();
|
|
}
|
|
|
|
const result = await bot.rest.runMethod<DiscordMessage[]>(
|
|
bot.rest,
|
|
"get",
|
|
bot.constants.endpoints.CHANNEL_MESSAGES(channelId),
|
|
options,
|
|
);
|
|
|
|
return await Promise.all(result.map((res) => bot.transformers.message(bot, res)));
|
|
}
|
|
|
|
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
|
|
export interface GetMessagesLimit {
|
|
/** Max number of messages to return (1-100) default 50 */
|
|
limit?: number;
|
|
}
|
|
|
|
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
|
|
export interface GetMessagesAround extends GetMessagesLimit {
|
|
/** Get messages around this message id */
|
|
around?: bigint;
|
|
}
|
|
|
|
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
|
|
export interface GetMessagesBefore extends GetMessagesLimit {
|
|
/** Get messages before this message id */
|
|
before?: bigint;
|
|
}
|
|
|
|
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
|
|
export interface GetMessagesAfter extends GetMessagesLimit {
|
|
/** Get messages after this message id */
|
|
after?: bigint;
|
|
}
|