3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-14 21:31:50 +00:00

refactor: simplify logs plugin types; remove deprecated format.timestamp field

This commit is contained in:
Dragory 2024-04-09 18:32:01 +03:00
parent b28ca170ed
commit 805234acc1
No known key found for this signature in database
75 changed files with 81 additions and 102 deletions

View file

@ -9,7 +9,7 @@ import { findRecentSpam } from "./findRecentSpam";
import { getMatchingMessageRecentActions } from "./getMatchingMessageRecentActions";
import { getMessageSpamIdentifier } from "./getSpamIdentifier";
interface TMessageSpamMatchResultType {
export interface TMessageSpamMatchResultType {
archiveId: string;
}

View file

@ -118,10 +118,7 @@ function getCasesPlugin(): Promise<any> {
const defaultOptions: PluginOptions<LogsPluginType> = {
config: {
channels: {},
format: {
timestamp: FORMAT_NO_TIMESTAMP,
...DefaultLogMessages,
},
format: DefaultLogMessages,
ping_user: true,
allow_user_mentions: false,
timestamp_format: "[<t:]X[>]",

View file

@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogAutomodActionData {
export interface LogAutomodActionData {
rule: string;
user?: User | null;
users: User[];

View file

@ -4,7 +4,7 @@ import { createTypedTemplateSafeValueContainer } from "../../../templateFormatte
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogBotAlertData {
export interface LogBotAlertData {
body: string;
}

View file

@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCaseCreateData {
export interface LogCaseCreateData {
mod: User;
userId: string;
caseNum: number;

View file

@ -7,7 +7,7 @@ import { caseToTemplateSafeCase, memberToTemplateSafeMember } from "../../../uti
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCaseDeleteData {
export interface LogCaseDeleteData {
mod: GuildMember;
case: Case;
}

View file

@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCaseUpdateData {
export interface LogCaseUpdateData {
mod: User;
caseNumber: number;
caseType: string;

View file

@ -14,7 +14,7 @@ import {
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCensorData {
export interface LogCensorData {
user: User | UnknownUser;
channel: GuildTextBasedChannel;
reason: string;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogChannelCreateData {
export interface LogChannelCreateData {
channel: GuildBasedChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogChannelDeleteData {
export interface LogChannelDeleteData {
channel: GuildBasedChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogChannelUpdateData {
export interface LogChannelUpdateData {
oldChannel: GuildBasedChannel;
newChannel: GuildBasedChannel;
differenceString: string;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCleanData {
export interface LogCleanData {
mod: User;
channel: GuildTextBasedChannel;
count: number;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogDmFailedData {
export interface LogDmFailedData {
source: string;
user: User | UnknownUser;
}

View file

@ -6,7 +6,7 @@ import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogEmojiCreateData {
export interface LogEmojiCreateData {
emoji: Emoji;
}

View file

@ -6,7 +6,7 @@ import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogEmojiDeleteData {
export interface LogEmojiDeleteData {
emoji: Emoji;
}

View file

@ -6,7 +6,7 @@ import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogEmojiUpdateData {
export interface LogEmojiUpdateData {
oldEmoji: Emoji;
newEmoji: Emoji;
differenceString: string;

View file

@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMassBanData {
export interface LogMassBanData {
mod: User;
count: number;
reason: string;

View file

@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMassMuteData {
export interface LogMassMuteData {
mod: User;
count: number;
}

View file

@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMassUnbanData {
export interface LogMassUnbanData {
mod: User;
count: number;
reason: string;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberBanData {
export interface LogMemberBanData {
mod: User | UnknownUser | null;
user: User | UnknownUser;
caseNumber: number;

View file

@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberForcebanData {
export interface LogMemberForcebanData {
mod: GuildMember;
userId: Snowflake;
caseNumber: number;

View file

@ -8,7 +8,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberJoinData {
export interface LogMemberJoinData {
member: GuildMember;
}

View file

@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberJoinWithPriorRecordsData {
export interface LogMemberJoinWithPriorRecordsData {
member: GuildMember;
recentCaseSummary: string;
}

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberKickData {
export interface LogMemberKickData {
mod: User | UnknownUser | null;
user: User;
caseNumber: number;

View file

@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberLeaveData {
export interface LogMemberLeaveData {
member: GuildMember | PartialGuildMember;
}

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberMuteData {
export interface LogMemberMuteData {
mod: User | UnknownUser;
user: User | UnknownUser;
caseNumber: number;

View file

@ -11,7 +11,7 @@ import {
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberMuteExpiredData {
export interface LogMemberMuteExpiredData {
member: GuildMember | UnknownUser;
}

View file

@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberMuteRejoinData {
export interface LogMemberMuteRejoinData {
member: GuildMember;
}

View file

@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberNickChangeData {
export interface LogMemberNickChangeData {
member: GuildMember;
oldNick: string;
newNick: string;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberNoteData {
export interface LogMemberNoteData {
mod: User;
user: User | UnknownUser;
caseNumber: number;

View file

@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberRestoreData {
export interface LogMemberRestoreData {
member: GuildMember;
restoredData: string;
}

View file

@ -7,7 +7,7 @@ import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../uti
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberRoleAddData {
export interface LogMemberRoleAddData {
mod: User | null;
member: GuildMember;
roles: Array<Role | UnknownRole>;

View file

@ -7,7 +7,7 @@ import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../uti
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberRoleChangesData {
export interface LogMemberRoleChangesData {
mod: User | UnknownUser | null;
member: GuildMember;
addedRoles: Role[];

View file

@ -7,7 +7,7 @@ import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../uti
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberRoleRemoveData {
export interface LogMemberRoleRemoveData {
mod: User | null;
member: GuildMember;
roles: Array<Role | UnknownRole>;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberTimedBanData {
export interface LogMemberTimedBanData {
mod: User | UnknownUser;
user: User | UnknownUser;
banTime: string;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberTimedMuteData {
export interface LogMemberTimedMuteData {
mod: User | UnknownUser;
user: User | UnknownUser;
time: string;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberTimedUnbanData {
export interface LogMemberTimedUnbanData {
mod: User | UnknownUser;
userId: string;
banTime: string;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberTimedUnmuteData {
export interface LogMemberTimedUnmuteData {
mod: User;
user: User | UnknownUser;
time: string;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberUnbanData {
export interface LogMemberUnbanData {
mod: User | UnknownUser | null;
userId: Snowflake;
caseNumber: number;

View file

@ -7,7 +7,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberUnmuteData {
export interface LogMemberUnmuteData {
mod: User;
user: User | UnknownUser;
caseNumber: number;

View file

@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberWarnData {
export interface LogMemberWarnData {
mod: GuildMember;
member: GuildMember;
caseNumber: number;

View file

@ -15,7 +15,7 @@ import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
import { FORMAT_NO_TIMESTAMP, LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageDeleteData {
export interface LogMessageDeleteData {
user: User | UnknownUser;
channel: GuildTextBasedChannel;
message: SavedMessage;
@ -31,10 +31,7 @@ export function logMessageDelete(pluginData: GuildPluginData<LogsPluginType>, da
// See comment on FORMAT_NO_TIMESTAMP in types.ts
const config = pluginData.config.get();
const timestampFormat =
(config.format.timestamp !== FORMAT_NO_TIMESTAMP ? config.format.timestamp : null) ??
config.timestamp_format ??
undefined;
const timestampFormat = config.timestamp_format ?? undefined;
return log(
pluginData,

View file

@ -13,7 +13,7 @@ import {
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageDeleteAutoData {
export interface LogMessageDeleteAutoData {
message: SavedMessage;
user: User | UnknownUser;
channel: GuildBasedChannel;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageDeleteBareData {
export interface LogMessageDeleteBareData {
messageId: string;
channel: GuildTextBasedChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageDeleteBulkData {
export interface LogMessageDeleteBulkData {
count: number;
authorIds: string[];
channel: GuildTextBasedChannel;

View file

@ -13,7 +13,7 @@ import {
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageEditData {
export interface LogMessageEditData {
user: User | UnknownUser;
channel: GuildTextBasedChannel;
before: SavedMessage;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageSpamDetectedData {
export interface LogMessageSpamDetectedData {
member: GuildMember;
channel: GuildTextBasedChannel;
description: string;

View file

@ -6,7 +6,7 @@ import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogOtherSpamDetectedData {
export interface LogOtherSpamDetectedData {
member: GuildMember;
description: string;
limit: number;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogPostedScheduledMessageData {
export interface LogPostedScheduledMessageData {
author: User;
channel: GuildTextBasedChannel;
messageId: string;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogRepeatedMessageData {
export interface LogRepeatedMessageData {
author: User;
channel: GuildTextBasedChannel;
datetime: string;

View file

@ -6,7 +6,7 @@ import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogRoleCreateData {
export interface LogRoleCreateData {
role: Role;
}

View file

@ -6,7 +6,7 @@ import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogRoleDeleteData {
export interface LogRoleDeleteData {
role: Role;
}

View file

@ -6,7 +6,7 @@ import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogRoleUpdateData {
export interface LogRoleUpdateData {
oldRole: Role;
newRole: Role;
differenceString: string;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogScheduledMessageData {
export interface LogScheduledMessageData {
author: User;
channel: GuildTextBasedChannel;
datetime: string;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../u
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogScheduledRepeatedMessageData {
export interface LogScheduledRepeatedMessageData {
author: User;
channel: GuildTextBasedChannel;
datetime: string;

View file

@ -4,7 +4,7 @@ import { createTypedTemplateSafeValueContainer } from "../../../templateFormatte
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogSetAntiraidAutoData {
export interface LogSetAntiraidAutoData {
level: string;
}

View file

@ -6,7 +6,7 @@ import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogSetAntiraidUserData {
export interface LogSetAntiraidUserData {
level: string;
user: User;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../..
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStageInstanceCreateData {
export interface LogStageInstanceCreateData {
stageInstance: StageInstance;
stageChannel: StageChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../..
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStageInstanceDeleteData {
export interface LogStageInstanceDeleteData {
stageInstance: StageInstance;
stageChannel: StageChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../..
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStageInstanceUpdateData {
export interface LogStageInstanceUpdateData {
oldStageInstance: StageInstance | null;
newStageInstance: StageInstance;
stageChannel: StageChannel;

View file

@ -6,7 +6,7 @@ import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStickerCreateData {
export interface LogStickerCreateData {
sticker: Sticker;
}

View file

@ -6,7 +6,7 @@ import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStickerDeleteData {
export interface LogStickerDeleteData {
sticker: Sticker;
}

View file

@ -6,7 +6,7 @@ import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStickerUpdateData {
export interface LogStickerUpdateData {
oldSticker: Sticker;
newSticker: Sticker;
differenceString: string;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogThreadCreateData {
export interface LogThreadCreateData {
thread: AnyThreadChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogThreadDeleteData {
export interface LogThreadDeleteData {
thread: AnyThreadChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogThreadUpdateData {
export interface LogThreadUpdateData {
oldThread: AnyThreadChannel;
newThread: AnyThreadChannel;
differenceString: string;

View file

@ -11,7 +11,7 @@ import {
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelForceDisconnectData {
export interface LogVoiceChannelForceDisconnectData {
mod: User;
member: GuildMember;
oldChannel: VoiceBasedChannel;

View file

@ -11,7 +11,7 @@ import {
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelForceMoveData {
export interface LogVoiceChannelForceMoveData {
mod: User;
member: GuildMember;
oldChannel: VoiceBasedChannel;

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelJoinData {
export interface LogVoiceChannelJoinData {
member: GuildMember;
channel: VoiceBasedChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelLeaveData {
export interface LogVoiceChannelLeaveData {
member: GuildMember;
channel: VoiceBasedChannel;
}

View file

@ -7,7 +7,7 @@ import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelMoveData {
export interface LogVoiceChannelMoveData {
member: GuildMember;
oldChannel: VoiceBasedChannel;
newChannel: VoiceBasedChannel;

View file

@ -26,16 +26,9 @@ const DEFAULT_BATCH_TIME = 1000;
const MIN_BATCH_TIME = 250;
const MAX_BATCH_TIME = 5000;
type ZLogFormatsHelper = {
-readonly [K in keyof typeof LogType]: typeof zMessageContent;
};
export const zLogFormats = z.strictObject(
keys(LogType).reduce((map, logType) => {
map[logType] = zMessageContent;
return map;
}, {} as ZLogFormatsHelper),
);
export type TLogFormats = z.infer<typeof zLogFormats>;
// A bit of a workaround so we can pass LogType keys to z.enum()
const logTypes = Object.keys(LogType) as [keyof typeof LogType, ...Array<keyof typeof LogType>];
const zLogFormats = z.record(z.enum(logTypes), zMessageContent);
const zLogChannel = z.strictObject({
include: z.array(zBoundedCharacters(1, 255)).default([]),
@ -49,7 +42,7 @@ const zLogChannel = z.strictObject({
excluded_threads: z.array(zSnowflake).nullable().default(null),
exclude_bots: z.boolean().default(false),
excluded_roles: z.array(zSnowflake).nullable().default(null),
format: zLogFormats.partial().default({}),
format: zLogFormats.default({}),
timestamp_format: z.string().nullable().default(null),
include_embed_timestamp: z.boolean().nullable().default(null),
});
@ -60,12 +53,7 @@ export type TLogChannelMap = z.infer<typeof zLogChannelMap>;
export const zLogsConfig = z.strictObject({
channels: zLogChannelMap,
format: zLogFormats.merge(
z.strictObject({
// Legacy/deprecated, use timestamp_format below instead
timestamp: zBoundedCharacters(0, 64).nullable(),
}),
),
format: zLogFormats,
// Legacy/deprecated, if below is false mentions wont actually ping. In case you really want the old behavior, set below to true
ping_user: z.boolean(),
allow_user_mentions: z.boolean(),

View file

@ -38,10 +38,7 @@ export async function getLogMessage<TLogType extends keyof ILogTypeData>(
if (format === "" || format == null) return null;
// See comment on FORMAT_NO_TIMESTAMP in types.ts
const timestampFormat =
opts?.timestamp_format ??
(config.format.timestamp !== FORMAT_NO_TIMESTAMP ? config.format.timestamp : null) ??
config.timestamp_format;
const timestampFormat = opts?.timestamp_format ?? config.timestamp_format;
const includeEmbedTimestamp = opts?.include_embed_timestamp ?? config.include_embed_timestamp;

View file

@ -42,7 +42,7 @@ export enum RecentActionType {
VoiceChannelMove,
}
interface IRecentAction<T> {
export interface IRecentAction<T> {
type: RecentActionType;
userId: string;
actionGroupId: string;

View file

@ -285,9 +285,9 @@ export type StrictMessageContent = {
embeds?: APIEmbed[];
};
export const zMessageContent = z.union([zBoundedCharacters(0, 4000), zStrictMessageContent]);
export type MessageContent = string | StrictMessageContent;
export const zMessageContent = z.union([zBoundedCharacters(0, 4000), zStrictMessageContent]) as z.ZodType<MessageContent>;
export function validateAndParseMessageContent(input: unknown): StrictMessageContent {
if (input == null) {