diff options
| author | Fuwn <[email protected]> | 2025-09-07 01:55:42 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-09-07 01:55:42 -0700 |
| commit | c896ab4607654a8b3ea3192919ee10dd7d62286f (patch) | |
| tree | d9698ed6f35d17842e02262d1fe9b81826893cba /src/server.js | |
| parent | chore: Fix package description (diff) | |
| download | umabotdiscord-c896ab4607654a8b3ea3192919ee10dd7d62286f.tar.xz umabotdiscord-c896ab4607654a8b3ea3192919ee10dd7d62286f.zip | |
feat: Add top command
Diffstat (limited to 'src/server.js')
| -rw-r--r-- | src/server.js | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/server.js b/src/server.js index 5695344..22b754c 100644 --- a/src/server.js +++ b/src/server.js @@ -4,8 +4,18 @@ import { InteractionType, verifyKey, } from 'discord-interactions'; -import { HOT_COMMAND, ROLEPLAY_COMMAND, NSFW_COMMAND } from './commands.js'; -import { getCutePost, getRoleplayPost, getNSFWPost } from './reddit.js'; +import { + HOT_COMMAND, + ROLEPLAY_COMMAND, + NSFW_COMMAND, + TOP_COMMAND, +} from './commands.js'; +import { + getCutePost, + getRoleplayPost, + getNSFWPost, + getTopPost, +} from './reddit.js'; class JSONResponse extends Response { constructor(body, init) { @@ -165,6 +175,29 @@ router.post('/', async (request, environment) => { } } + case TOP_COMMAND.name.toLowerCase(): { + try { + const time = interaction.data.options?.[0]?.value || 'day'; + const post = await getTopPost(time); + const embed = createPostEmbed(post); + + return new JSONResponse({ + type: InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE, + data: { + embeds: [embed], + }, + }); + } catch { + return new JSONResponse({ + type: InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE, + data: { + content: '❌ No top posts found. Try again later!', + flags: 64, + }, + }); + } + } + default: return new JSONResponse({ error: 'Unknown Type' }, { status: 400 }); } |