from bs4 import BeautifulSoup from discord import option from discord.ext import commands, tasks import discord import requests import star_citizen class StarCitizen(commands.Cog): def __init__(self, bot): self.bot: commands.Bot = bot # self.poll_status_page.start() @commands.slash_command( guild_ids=None, name="medpens", description="Posts an infographic about which medpens to use for which injuries in Star Citizen", ) async def post_medpen_guide(self, ctx: commands.Context): await ctx.respond("https://i.redd.it/lfswlf5c13t71.png") @commands.slash_command( guild_ids=None, name="ship", description="Query the star citizen database about a ship", ) @option( name="ship", description="Ship you want info on, must be the exact name of the ship, eg Aegs Avenger", required=True, ) async def star_citizen(self, ctx: commands.Context, ship): await ctx.defer() embed = await star_citizen.get_ship(ship_name=ship) await ctx.send_followup(embed=embed) # @tasks.loop(seconds=5) # async def poll_status_page(self): # # Wait until the bot is ready before we actually start executing code # await self.bot.wait_until_ready() # status_url = "https://status.robertsspaceindustries.com/" # response = requests.get(status_url).text # soup = BeautifulSoup(response, "html.parser") # current_status = soup.find("div", {"class": "global-status"}).findNext("span") # self.notified = 0 # if current_status.text != "Operational" and self.notified == 0: # # Find the lastest incident # latest_incident = current_status.findNext("h2") # details = latest_incident.findNext("div", {"class": "markdown"}) # embed = discord.Embed( # description="-------", color=discord.Color.red(), type="rich" # ) # embed.set_thumbnail( # url="https://media.robertsspaceindustries.com/t0q21kbb3zrpt/source.png" # ) # embed.set_author(name="OH NO THERE IS AN INCIDENT") # embed.add_field(name="Details", value=details.text, inline=True) # embed.add_field( # name="LINK", # value=status_url + latest_incident.findNext("a")["href"], # inline=False, # ) # channel = await self.bot.get_channel(1097567909640929340).send(embed=embed) # self.notified = 1 # else: # self.notified = 0 def setup(bot): bot.add_cog(StarCitizen(bot))