Skip to content

Commit 418b969

Browse files
feat: change text message to embed
1 parent e0ea471 commit 418b969

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

src/modules/recurringMessage/recurringMessage.helpers.ts

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,11 @@ export const listRecurringMessages = async (interaction: ChatInputCommandInterac
125125
return;
126126
}
127127

128-
const recurringMessageInCurrentGuild = recurringMessages.filter(
128+
const messagesInCurrentGuild = recurringMessages.filter(
129129
({ channelId }) => interaction.guild?.channels.cache.has(channelId),
130130
);
131131

132-
const messageByChannelName = recurringMessageInCurrentGuild.reduce(
132+
const messagesByChannelName = messagesInCurrentGuild.reduce(
133133
(acc, { id, frequency, message, channelId }) => {
134134
const channel = interaction.guild?.channels.cache.get(channelId);
135135
const channelName = channel?.name ?? 'unknown';
@@ -138,24 +138,30 @@ export const listRecurringMessages = async (interaction: ChatInputCommandInterac
138138
acc[channelName] = [];
139139
}
140140

141-
acc[channelName]!.push(
142-
`**·** id: ${id} - frequency: ${frequency} - message: ${message.substring(0, 50)}${
143-
message.length > 35 ? '...' : ''
144-
}`,
145-
);
141+
acc[channelName]!.push({ id, frequency, message });
146142

147143
return acc;
148144
},
149-
{} as Record<string, string[]>,
145+
{} as Record<string, { id: string; frequency: string; message: string }[]>,
150146
);
151147

152-
const recurringMessagesList = Object.entries(messageByChannelName)
153-
.map(([channelName, messages]) => {
154-
return `**\#${channelName}**\n${messages.join('\n')}`;
155-
})
156-
.join('\n\n');
157-
158-
await interaction.reply(recurringMessagesList);
148+
const embeds = Object.entries(messagesByChannelName).map(([channelName, messages]) => {
149+
const fields = messages.map(({ id, frequency, message }) => ({
150+
name: `⏰ - ${frequencyDisplay[frequency as Frequency]} (id: ${id})`,
151+
value: message.substring(0, 1000) + (message.length > 1000 ? '...' : ''),
152+
}));
153+
154+
return {
155+
title: `# ${channelName}`,
156+
color: 0x0099ff,
157+
fields,
158+
footer: {
159+
text: '\u2800'.repeat(256), // hackish way have even width for all embeds
160+
},
161+
};
162+
});
163+
164+
await interaction.reply({ embeds });
159165
};
160166

161167
export const relaunchRecurringMessages = async (client: Client<true>) => {

0 commit comments

Comments
 (0)