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) {
// Custom guild emoji in Discord-renderable form.
return `<:${emoji.name}:${emoji.id}>`;
}
if (emoji.id) {
// Keep id visible even when name is missing (instead of opaque "emoji").
return `emoji:${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;
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland