mirror of
https://github.com/nx-bat/discordbot-ng.git
synced 2026-09-22 10:29:10 -04:00
31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
import { Message } from '../events';
|
|
|
|
export const ARRAY_SEPARATOR = '$';
|
|
|
|
const spoilerRegex = new RegExp('\\|\\|((?:[\\S]| )+?)\\|\\|', 'gi');
|
|
|
|
export function serializeMessage(message: Message): string[] {
|
|
const attachments = message.attachments.map(a => `${a.name}:${a.id}`);
|
|
const stickers = message.stickers.map(s => `${s.name}:${s.id}`);
|
|
|
|
return [message.id, message.author.id, message.author.username, message.channelId, attachments.join(ARRAY_SEPARATOR), stickers.join(ARRAY_SEPARATOR), message.content];
|
|
}
|
|
|
|
export function deserializeMessagePart(part: string): string[] {
|
|
return part.split(ARRAY_SEPARATOR).filter(e => e);
|
|
}
|
|
|
|
export function isInSpoilerTags(content: string, index: number): boolean {
|
|
if (!content.includes('||')) return false;
|
|
|
|
let match: RegExpExecArray | null;
|
|
while ((match = spoilerRegex.exec(content)) != null) {
|
|
if (index >= match.index && index <= spoilerRegex.lastIndex) {
|
|
spoilerRegex.lastIndex = 0;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
spoilerRegex.lastIndex = 0;
|
|
return false;
|
|
} |