From c8eb921d8b12d5539e305147de752a2044dafc39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Mogu=C3=A9rou?= Date: Mon, 18 Dec 2023 00:40:17 +0100 Subject: [PATCH] Ajout d'une commande fact --- cogs/cog_fact.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 cogs/cog_fact.py diff --git a/cogs/cog_fact.py b/cogs/cog_fact.py new file mode 100644 index 0000000..492d3b0 --- /dev/null +++ b/cogs/cog_fact.py @@ -0,0 +1,53 @@ +import discord +import random +import aiohttp +import asyncio + +from dotenv import load_dotenv +from discord import app_commands +from discord import Embed +#from discord.app_commands import Choice +from discord.ext import commands + +from classes.my_cog import MyCog + + +class Fact(MyCog): + def __init__(self, bot): + super().__init__(bot) + self.bot = bot + + @app_commands.command(name="fact") + async def fact(self, interaction: discord.Interaction, private=False): + """ + Vous reprendriez bien un petit shot de culture G ? + :param interaction: discord interaction + :param private: Garder ce petit bijou pour soi + """ + + headers = { + 'Authorization': f'Bearer {getenv("WIKIMEDIA_ACCESS_TOKEN")}', + 'User-Agent': 'Staticky (https://mp2i-vms.fr)' + } + + try: + async with aiohttp.ClientSession() as session: + await response = session.get("https://fr.wikipedia.org/api/rest_v1/page/random/summary", headers=headers) + + embed = Embed( + title=response.json.get("title", "Titre inconnu"), + url=response.json.get("content_urls").get("desktop").get("page"), + description=response.json.get('extract') + ) + + embed.set_thumbnail(response.json.get('thumbnail').get('source')) + + await interaction.response.send_message("", embed=embed + ephemeral=private) + except Exception as e: + await interaction.response.send_message(f"Le message n'a pas pu être envoyé...\n`Erreur : {e}`", + ephemeral=True) + + +async def setup(bot): + await bot.add_cog(Fact(bot))