FakeNitro: fix transforming stickers with spaces in name (#4640)

Co-authored-by: Vendicated <vendicated@riseup.net>
This commit is contained in:
uku 2026-10-03 16:57:26 +02:00 • committed by GitHub
parent 445edc7586
commit 14723674a2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -74,6 +74,7 @@ const fakeNitroEmojiRegex = /\/emojis\/(\d+?)\.(png|webp|gif)/;
const fakeNitroStickerRegex = /\/stickers\/(\d+?)\./;
const fakeNitroGifStickerRegex = /\/attachments\/\d+?\/\d+?\/(\d+?)\.gif/;
const hyperLinkRegex = /\[.+?\]\((https?:\/\/.+?)\)/;
const hyperLinkOnlyRegex = new RegExp(`^${hyperLinkRegex.source}$`);
const mediaSizes = [16, 32, 48, 56, 64, 96, 128, 160, 256, 512, 1024];
const DEFAULT_EMOJI_SIZE = 48;
@ -573,6 +574,7 @@ export default definePlugin({
const contentItems = message.content.split(/\s/);
if (settings.store.transformCompoundSentence) itemsToMaybePush.push(...contentItems);
else if (contentItems.length === 1) itemsToMaybePush.push(contentItems[0]);
else if (hyperLinkOnlyRegex.test(message.content)) itemsToMaybePush.push(message.content);
itemsToMaybePush.push(...message.attachments.filter(attachment => attachment.content_type === "image/gif").map(attachment => attachment.url));
@ -617,7 +619,7 @@ export default definePlugin({
shouldIgnoreEmbed(embed: Message["embeds"][number], message: Message) {
try {
const contentItems = message.content.split(/\s/);
if (contentItems.length > 1 && !settings.store.transformCompoundSentence) return false;
if (contentItems.length > 1 && !settings.store.transformCompoundSentence && !hyperLinkOnlyRegex.test(message.content)) return false;
switch (embed.type) {
case "image": {
@ -626,6 +628,7 @@ export default definePlugin({
if (
!settings.store.transformCompoundSentence
&& !contentItems.some(item => item === url || item.match(hyperLinkRegex)?.[1] === url)
&& !hyperLinkOnlyRegex.test(message.content)
) return false;
if (settings.store.transformEmojis) {