Créez un générateur de mèmes Discord avec Python !
Table of Contents
- Introduction
- Setting Up the Meme Generator Discord Bot
- Adding Custom Greetings
- Sending Memes
- Adding Delays Between Memes
- Conclusion
Introduction
Bienvenue à j code ! Aujourd'hui, nous allons construire un générateur de mèmes sous forme de bot Discord. Ce bot sera en mesure de récupérer des mèmes depuis le subreddit "memes" sur Reddit et de les poster sur notre serveur. Dans cet article, nous allons vous guider étape par étape pour créer ce bot et exploiter l'API Reddit pour récupérer les mèmes souhaités. Nous commencerons par configurer notre bot et le lier au portail des développeurs Discord.
Setting Up the Meme Generator Discord Bot
Importing Packages and Creating the Bot
Tout d'abord, nous devons importer les packages nécessaires et créer notre bot. Assurez-vous d'avoir préalablement installé les packages requis tels que Discord.py et PRAW. Nous allons également avoir besoin d'un token pour notre bot, que nous obtiendrons à partir du portail des développeurs Discord. Voici les étapes à suivre :
- Importez les packages Discord.py et PRAW dans votre script Python :
import discord
import praw
- Créez une instance de la classe
discord.Client()
pour représenter votre bot :
bot = discord.Client()
Setting up the Discord Developer Portal
Maintenant, nous allons configurer notre bot sur le portail des développeurs Discord. Suivez ces étapes pour créer une nouvelle application et obtenir le token de votre bot :
- Accédez au portail des développeurs Discord et connectez-vous avec votre compte.
- Cliquez sur "New Application" pour créer une nouvelle application.
- Donnez un nom à votre application, par exemple "Meme Generator Bot".
- Dans l'onglet "Bot", cliquez sur "Add Bot" pour ajouter un bot à votre application.
- Personnalisez les paramètres de votre bot selon vos besoins, tels que l'image de profil et les autorisations.
- Faites défiler vers le bas et cliquez sur "Copy" pour copier le token de votre bot.
Authorizing the Bot
Maintenant que nous avons créé notre bot, nous devons l'autoriser à rejoindre notre serveur Discord. Voici comment procéder :
- Allez dans l'URL suivante : {YOUR_BOT_AUTHORIZATION_URL}
- Sélectionnez le serveur sur lequel vous souhaitez ajouter le bot.
- Cliquez sur "Authorize" pour autoriser le bot.
Après avoir autorisé le bot, il devrait apparaître sur votre serveur Discord.
Generating Memes from the Reddit Meme Subreddit
Maintenant que nous avons notre bot configuré, nous allons pouvoir récupérer des mèmes depuis le subreddit "memes" sur Reddit. Pour cela, nous allons utiliser l'API PRAW qui nous permettra d'interagir avec Reddit.
- Installez le Package PRAW en exécutant la commande suivante :
pip install praw
- Importez le package PRAW dans votre script Python :
import praw
- Créez une instance de la classe
praw.Reddit()
en utilisant vos identifiants d'API Reddit :
reddit = praw.Reddit(
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
user_agent="YOUR_USER_AGENT"
)
- Utilisez la méthode
reddit.subreddit("memes").new()
pour obtenir les derniers mèmes du subreddit "memes" :
memes = reddit.subreddit("memes").new()
for meme in memes:
# Process each meme and add it to the list
# of memes to be sent to the server
...
Maintenant, nous avons un moyen de récupérer les mèmes depuis le subreddit "memes" sur Reddit. Dans la prochaine section, nous allons ajouter des salutations personnalisées à notre bot.
Adding Custom Greetings
Notre bot est prêt à interagir avec les utilisateurs, mais nous aimerions lui donner une touche personnelle en lui permettant de répondre aux salutations avec des messages personnalisés. Voici comment nous allons procéder :
Creating a List of Custom Greetings
Tout d'abord, nous allons créer une liste de salutations personnalisées que notre bot pourra utiliser pour répondre aux utilisateurs. Voici un exemple de liste de salutations que vous pouvez utiliser :
greetings = [
"Salut ! Comment ça va ?",
"Bonjour ! Comment puis-je t'aider aujourd'hui ?",
"Hey ! Quoi de neuf ?",
"Coucou ! Tu as besoin de quelque chose ?",
"Salutations ! Comment puis-je rendre ta journée meilleure ?",
"Hello ! Comment puis-je t'assister aujourd'hui ?"
]
N'hésitez pas à ajouter vos propres salutations personnalisées à cette liste.
Implementing Custom Greetings in the Bot
Maintenant que nous avons notre liste de salutations personnalisées, nous allons intégrer cette fonctionnalité à notre bot. Voici comment procéder :
- Ajoutez la fonction
choose_randomly()
pour choisir une salutation aléatoire à partir de notre liste :
def choose_randomly(lst):
return random.choice(lst)
- Dans l'événement
on_message()
de notre bot, ajoutez une condition pour détecter les salutations et y répondre avec une salutation personnalisée aléatoire :
@bot.event
async def on_message(message):
if message.author == bot.user:
return
if message.content.upper() in ["HEY CISCO", "HELLO CISCO"]:
greeting = choose_randomly(greetings)
await message.channel.send(f"{greeting} {message.author.mention}")
await bot.process_commands(message)
Maintenant, chaque fois que quelqu'un dit "Hey Cisco" ou "Hello Cisco" dans le chat Discord, notre bot répondra avec une salutation aléatoire.
Sending Memes
Maintenant que nous avons configuré notre bot et ajouté des salutations personnalisées, nous allons nous concentrer sur la fonctionnalité principale du bot : l'envoi de mèmes à partir du subreddit "memes" sur Reddit. Voici comment nous allons procéder :
Fetching and Storing Memes
Nous allons d'abord mettre en place la fonctionnalité pour récupérer les mèmes depuis le subreddit "memes" et les stocker dans une liste. Voici les étapes à suivre :
- Créez une liste vide pour stocker les liens des mèmes :
memes_list = []
- Utilisez l'API PRAW pour récupérer les mèmes depuis le subreddit "memes" :
memes = reddit.subreddit("memes").new(limit=10)
for meme in memes:
url = meme.url
memes_list.append(url)
Sending Memes to the Server
Maintenant que nous avons notre liste de mèmes, nous allons créer une fonction pour envoyer ces mèmes sur notre serveur. Voici comment procéder :
- Utilisez la méthode
message.Channel.send()
de notre bot pour envoyer les mèmes :
async def send_memes():
for meme_url in memes_list:
await bot.get_channel(CHANNEL_ID).send(meme_url)
await asyncio.sleep(5)
- Appelez la fonction
send_memes()
lorsque nous voulons envoyer les mèmes au serveur :
if message.content.upper() == "SEND MEMES":
await send_memes()
Maintenant, chaque fois que quelqu'un envoie "Send Memes" dans le chat Discord, notre bot enverra les mèmes stockés dans la liste.
Adding Delays Between Memes
Pour éviter d'envoyer les mèmes trop rapidement, nous allons ajouter un délai entre chaque envoi. Cela permettra aux utilisateurs de mieux apprécier chaque mème. Voici comment procéder :
- Importez le module
time
dans votre script Python :
import time
- Utilisez la fonction
time.sleep()
pour ajouter un délai de 5 secondes entre chaque envoi de mème :
async def send_memes():
for meme_url in memes_list:
await bot.get_channel(CHANNEL_ID).send(meme_url)
time.sleep(5)
Maintenant, notre bot attendra 5 secondes entre chaque envoi de mème.
Conclusion
Félicitations ! Vous avez maintenant créé un générateur de mèmes sous forme de bot Discord. Vous pouvez personnaliser davantage ce bot en ajoutant des fonctionnalités supplémentaires telles que des commandes pour arrêter l'envoi de mèmes ou intégrer des API externes pour obtenir des mèmes à partir de sources différentes. Amusez-vous bien à partager des mèmes avec vos amis sur votre serveur Discord !