API Discord.py pour discord bot pour écouter le message et supprimer le message en question
Je cherche à créer un bot qui utilise l'API VirusTotal pour analyser les URL envoyées dans les messages discord et si elles sont détectées, elles supprimeront le message en question, enverront un avertissement et enregistreront la situation dans un canal modlogs. Ceci est le code de mon on_message jusqu'à présent.
@bot.event
async def on_message(message):
urls = regex.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',message.content.lower())
flag = False
for i in urls:
if (scan_url(i)):
flag = True
break
if flag:
#delete message, send warning, find the channel named "modlogs" and send the log
scan_url
sera utilisé pour vérifier chaque url individuellement et renvoie vrai si le lien en question est malveillant. Je suis cependant bloqué sur l'utilisation du bot.event
décorateur et juste une chaîne du message sur la façon de trouver le message en question, de le supprimer, d'envoyer l'avertissement dans le même canal, puis de l'ajouter aux journaux de mod.
Solution du problème
if flag:
await message.channel.send(send_warning_message_here) # Send warning message
modlogs_channel = discord.utils.get(message.guild.text_channels, name='modlogs') # Get modlogs channel
await modlogs_channel.send(send_log_message_here) # Send log
await message.delete() # Delete the message
Vous pouvez également vérifier si le contenu du message commence par https://
ou http://
.
if message.content.startswith('https://') or message.content.startswith('http://):
# Scan URL
Cela aide à effectuer des appels d'API uniquement lorsque cela est nécessaire.
Commentaires
Enregistrer un commentaire