Fix batched logs not being separated by newlines

This commit is contained in:
Dragory 2021-09-12 12:05:58 +03:00
parent 2128b1a089
commit f733f081e0
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
2 changed files with 13 additions and 2 deletions

View file

@ -102,6 +102,7 @@ export async function log<TLogType extends keyof ILogTypeData>(
channelId,
new MessageBuffer({
timeout: batchTime,
textSeparator: "\n",
consume: (part) => {
const parse: MessageMentionTypes[] = pluginData.config.get().allow_user_mentions ? ["users"] : [];
const promise =

View file

@ -16,6 +16,7 @@ type Chunk = {
export interface MessageBufferOpts {
consume?: ConsumeFn;
timeout?: number;
textSeparator?: string;
}
const MAX_CHARS_PER_MESSAGE = 2000;
@ -30,6 +31,8 @@ export class MessageBuffer {
protected timeoutMs: number | null = null;
protected textSeparator: string = "";
protected chunk: Chunk | null = null;
protected chunkTimeout: Timeout | null = null;
@ -44,6 +47,10 @@ export class MessageBuffer {
if (opts.timeout) {
this.timeoutMs = opts.timeout;
}
if (opts.textSeparator) {
this.textSeparator = opts.textSeparator;
}
}
push(content: MessageBufferContent): void {
@ -73,8 +80,11 @@ export class MessageBuffer {
this.startNewChunk(contentType);
}
if (chunk.content.content == null) chunk.content.content = "";
chunk.content.content += content.content;
if (chunk.content.content == null || chunk.content.content === "") {
chunk.content.content = content.content;
} else {
chunk.content.content += this.textSeparator + content.content;
}
}
if (content.embeds) {