from bs4 import BeautifulSoup from discord import option from discord.ext import commands import discord import requests class Games(commands.Cog): def __init__(self, bot): self.bot: commands.Bot = bot async def get_ffxiv_worlds(ctx: discord.AutocompleteContext): url = "https://na.finalfantasyxiv.com/lodestone/worldstatus/" response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") # Loop through each element and extract its contents worlds = [ element.get_text(strip=True) for element in soup.find_all(class_="world-list__world_name") ] return worlds # @commands.slash_command( # guild_ids=None, # name="ffxiv", # description="Query the game's API for data about a player", # ) # @option( # "player_name", description="Your player's first and last name", required=True # ) # async def ffxiv( # self, # ctx: discord.ApplicationContext, # player_name: str, # server: discord.Option( # str, autocomplete=discord.utils.basic_autocomplete(get_ffxiv_worlds) # ), # ): # import ffxiv # try: # embed = ffxiv.make_request(name=player_name.lower(), server=server.lower()) # await ctx.defer() # await ctx.send_followup(embed=embed) # except Exception: # await ctx.send( # "I encountered an error while searching for that player.\nPlease check that your player name and server are spelled correctly" # ) # @commands.slash_command( # guild_ids=None, # name="2042", # description="Query Battlefield 2042's API for data about a player", # ) # @option("player_name", description="Your Origin/EA account name", required=True) # async def battlefield(self, ctx: discord.ApplicationContext, player_name: str): # import battlefield # await ctx.defer() # embed = battlefield.get_player(player=player_name.lower()) # await ctx.send_followup(embed=embed) def setup(bot): bot.add_cog(Games(bot))