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 { getMatchingMessageRecentActions } from "./getMatchingMessageRecentActions";
import { getMessageSpamIdentifier } from "./getSpamIdentifier"; import { getMessageSpamIdentifier } from "./getSpamIdentifier";
interface TMessageSpamMatchResultType { export interface TMessageSpamMatchResultType {
archiveId: string; archiveId: string;
} }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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