diff --git a/app/cogs/star_citizen.py b/app/cogs/star_citizen.py index 14d413d5..f7a64041 100644 --- a/app/cogs/star_citizen.py +++ b/app/cogs/star_citizen.py @@ -2,6 +2,7 @@ from bs4 import BeautifulSoup from discord import option from discord.ext import commands, tasks import discord +import os import requests @@ -11,7 +12,7 @@ import star_citizen class StarCitizen(commands.Cog): def __init__(self, bot): self.bot: commands.Bot = bot - # self.poll_status_page.start() + self.poll_status_page.start() @commands.slash_command( guild_ids=None, @@ -36,44 +37,56 @@ class StarCitizen(commands.Cog): 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() + @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/" + status_url = "https://status.robertsspaceindustries.com" - # response = requests.get(status_url).text - # soup = BeautifulSoup(response, "html.parser") + response = requests.get(status_url).text + soup = BeautifulSoup(response, "html.parser") - # current_status = soup.find("div", {"class": "global-status"}).findNext("span") + 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"}) + rsi_incident_file = "/tmp/rsi_incident" - # embed = discord.Embed( - # description="-------", color=discord.Color.red(), type="rich" - # ) + if current_status.text != "Operational": + # Find the lastest incident + latest_incident = current_status.findNext("h2") - # 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) + # Check if we've already notified + if os.path.exists(rsi_incident_file): + if ( + open(rsi_incident_file, "r").read() + == latest_incident.findNext("a")["href"] + ): + return - # embed.add_field( - # name="LINK", - # value=status_url + latest_incident.findNext("a")["href"], - # inline=False, - # ) + f = open(rsi_incident_file, "w") + f.write(latest_incident.findNext("a")["href"]) - # channel = await self.bot.get_channel(1097567909640929340).send(embed=embed) - # self.notified = 1 - # else: - # self.notified = 0 + 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(932476007439552522).send(embed=embed) + self.notified = 1 + else: + self.notified = 0 def setup(bot): diff --git a/app/stock.py b/app/stock.py old mode 100644 new mode 100755