Spaces:
Running
Running
| import type { Guild, User } from "@buape/carbon"; | |
| export function resolveDiscordSystemLocation(params: { | |
| isDirectMessage: boolean; | |
| isGroupDm: boolean; | |
| guild?: Guild; | |
| channelName: string; | |
| }) { | |
| const { isDirectMessage, isGroupDm, guild, channelName } = params; | |
| if (isDirectMessage) { | |
| return "DM"; | |
| } | |
| if (isGroupDm) { | |
| return `Group DM #${channelName}`; | |
| } | |
| return guild?.name ? `${guild.name} #${channelName}` : `#${channelName}`; | |
| } | |
| export function formatDiscordReactionEmoji(emoji: { id?: string | null; name?: string | null }) { | |
| if (emoji.id && emoji.name) { | |
| return `${emoji.name}:${emoji.id}`; | |
| } | |
| return emoji.name ?? "emoji"; | |
| } | |
| export function formatDiscordUserTag(user: User) { | |
| const discriminator = (user.discriminator ?? "").trim(); | |
| if (discriminator && discriminator !== "0") { | |
| return `${user.username}#${discriminator}`; | |
| } | |
| return user.username ?? user.id; | |
| } | |
| export function resolveTimestampMs(timestamp?: string | null) { | |
| if (!timestamp) { | |
| return undefined; | |
| } | |
| const parsed = Date.parse(timestamp); | |
| return Number.isNaN(parsed) ? undefined : parsed; | |
| } | |