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_urlsera 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.eventdé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

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"