From 97c3f9de39244334b4660ebcd3583f0d46fff51e Mon Sep 17 00:00:00 2001 From: Atmois Date: Thu, 24 Jul 2025 22:36:09 +0100 Subject: [PATCH] feat(wiki.py): Add wikipedia support to the wiki command --- tux/cogs/utility/wiki.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tux/cogs/utility/wiki.py b/tux/cogs/utility/wiki.py index 4fcaa3ad6..29834048d 100644 --- a/tux/cogs/utility/wiki.py +++ b/tux/cogs/utility/wiki.py @@ -13,9 +13,11 @@ def __init__(self, bot: Tux) -> None: self.bot = bot self.arch_wiki_api_url = "https://wiki.archlinux.org/api.php" self.atl_wiki_api_url = "https://atl.wiki/api.php" + self.wikipedia_api_url = "https://en.wikipedia.org/w/api.php" self.wiki.usage = generate_usage(self.wiki) self.arch_wiki.usage = generate_usage(self.arch_wiki) self.atl_wiki.usage = generate_usage(self.atl_wiki) + self.wikipedia.usage = generate_usage(self.wikipedia) def create_embed(self, title: tuple[str, str], ctx: commands.Context[Tux]) -> discord.Embed: """ @@ -90,6 +92,8 @@ def query_wiki(self, base_url: str, search_term: str) -> tuple[str, str]: url_title = title.replace(" ", "_") if "atl.wiki" in base_url: url = f"https://atl.wiki/{url_title}" + elif "wikipedia.org" in base_url: + url = f"https://en.wikipedia.org/wiki/{url_title}" else: url = f"https://wiki.archlinux.org/title/{url_title}" return title, url @@ -155,6 +159,28 @@ async def atl_wiki(self, ctx: commands.Context[Tux], query: str) -> None: await ctx.send(embed=embed) + @wiki.command( + name="wikipedia", + aliases=["wp"], + ) + async def wikipedia(self, ctx: commands.Context[Tux], *, query: str) -> None: + """ + Search Wikipedia + + Parameters + ---------- + ctx : commands.Context[Tux] + The context object for the command. + query : str + The search query. + """ + + title: tuple[str, str] = self.query_wiki(self.wikipedia_api_url, query) + + embed = self.create_embed(title, ctx) + + await ctx.send(embed=embed) + async def setup(bot: Tux) -> None: await bot.add_cog(Wiki(bot))