Estoy tratando de verificar message.content contra un JSON y un enlace API que se obtiene y almacena en los data const para un bot automod.
El enlace JSON y API contienen matrices con más de 600 elementos almacenados.
La idea es verificar con un JSON almacenado localmente y luego con una API para evitar que se publiquen enlaces.
El código funciona bien el 90 % del tiempo, pero al probar y enviar varios enlaces en un breve espacio de tiempo, aparece este error:
TypeError: data.some no es una función
Este es el código:
client.on('messageCreate', async (message) => { try { const guild = client.guilds.cache.get(message.guildId); const member = guild.members.cache.get(message.author.id); const modLogs = client.channels.cache.get(modLogsChannelID); const response = await fetch( definedAPI, ); const data = await response.json(); if (badLinksJSON.some(letter => message.content.includes(letter))) { console.log(`${member.user.tag} used a bad link and has been muted.`) member.roles.add(mutedRoleID).catch(err => console.error); message.channel.send(`${message.author.toString()} You have been muted for: **Bad Link Usage**`).catch(console.error).then(message.delete()).catch(err => console.error); } else if (data.some(word => message.content.includes(word))) { console.log(`${member.user.tag} used a bad link and has been muted.`) member.roles.add(mutedRoleID).catch(err => console.error); message.channel.send(`${message.author.toString()} You have been muted for: **Bad Link Usage**`).catch(console.error).then(message.delete()).catch(err => console.error); } } catch (error) { message.channel.send('Oops, there was an error fetching the API'); console.log(error); } }Nota: > Varias variables están definidas en el archivo de código anterior, no las he incluido en el fragmento de código
Se agregaron el intento y la captura para evitar que el bot se bloquee si ocurriera este error. Soy consciente de que podría hacerse de otras maneras.
Cualquier ayuda es apreciada, TIA.