diff --git a/app/cogs/star_citizen.py b/app/cogs/star_citizen.py index 1ccd07e0..446164f3 100755 --- a/app/cogs/star_citizen.py +++ b/app/cogs/star_citizen.py @@ -76,7 +76,7 @@ class StarCitizen(commands.Cog): returns a list of all ships in the game, which can then be passed to the /ship command for auto complete """ url = "https://starcitizen.tools/Category:Ships" - response = requests.get(url).text + response = requests.get(url, timeout=5).text soup = BeautifulSoup(response, "html.parser") h2_heading = soup.find("h2", text='Pages in category "Ships"') return [link.text for link in h2_heading.find_next("div").find_all("a")] @@ -285,7 +285,7 @@ class StarCitizen(commands.Cog): print( "Current incident url did not match whats in the file, must be a new incident, send alert" ) - embed = star_citizen.build_alert_embed( + embed = core_utils.build_alert_embed( color=discord.Color.red(), thumbnail="https://media.robertsspaceindustries.com/t0q21kbb3zrpt/source.png", author="🚨 OH NO THERES AN INCIDENT 🚨", @@ -293,22 +293,22 @@ class StarCitizen(commands.Cog): details=details, link=current_incident_url, ) - star_citizen.write_incident_file( + core_utils.write_incident_file( file_path=rsi_incident_file, url=current_incident_url, details=details, ) - await star_citizen.send_alert(self, channel=channel_id, embed=embed) + await core_utils.send_alert(self, channel=channel_id, embed=embed) elif deets != details: # The details we have in the json file do not match what was recently posted to the website # Update the json file on disk and then send an update alert to the channel - star_citizen.write_incident_file( + core_utils.write_incident_file( file_path=rsi_incident_file, url=current_incident_url, details=details, ) - embed = star_citizen.build_alert_embed( + embed = core_utils.build_alert_embed( color=discord.Color.yellow(), thumbnail="https://media.robertsspaceindustries.com/t0q21kbb3zrpt/source.png", author="⚠️ THERE HAS BEEN AN UPDATE TO THE ONGOING INCIDENT ⚠️", @@ -317,16 +317,16 @@ class StarCitizen(commands.Cog): link=incident_link, ) - await star_citizen.send_alert(self, channel=channel_id, embed=embed) + await core_utils.send_alert(self, channel=channel_id, embed=embed) else: # Write the incident's body to a json file to read later - star_citizen.write_incident_file( + core_utils.write_incident_file( file_path=rsi_incident_file, url=current_incident_url, details=details, ) - embed = star_citizen.build_alert_embed( + embed = core_utils.build_alert_embed( color=discord.Color.red(), thumbnail="https://media.robertsspaceindustries.com/t0q21kbb3zrpt/source.png", author="🚨 OH NO THERES AN INCIDENT 🚨", @@ -335,7 +335,7 @@ class StarCitizen(commands.Cog): link=current_incident_url, ) - await star_citizen.send_alert(self, channel=channel_id, embed=embed) + await core_utils.send_alert(self, channel=channel_id, embed=embed) @starcitizen.command( guild_ids=core_utils.my_guilds, diff --git a/app/core_utils.py b/app/core_utils.py index 172b1717..3bef00ed 100755 --- a/app/core_utils.py +++ b/app/core_utils.py @@ -81,3 +81,40 @@ def waifu_pics(endpoint, nsfw=False): return requests.get("https://api.waifu.pics/%s/%s" % (pic_type, endpoint)).json()[ "url" ] + + +async def send_alert(self, channel, embed): + await self.bot.get_channel(channel).send(embed=embed) + + +def build_alert_embed( + color, thumbnail=None, author=None, image=None, details=None, link=None +): + embed = discord.Embed(description="-------", color=color, type="rich") + + if thumbnail: + embed.set_thumbnail(url=thumbnail) + + embed.set_author(name=author) + + if image: + embed.set_image(url=image) + + embed.add_field(name="Details", value=details, inline=True) + + embed.add_field( + name="LINK", + value=link, + inline=False, + ) + + return embed + + +def write_incident_file(file_path, url, details): + info_dict = { + "incident_link": url, + "details": details, + } + with open(file_path, "w") as out_file: + out_file.write(json.dumps(info_dict)) diff --git a/app/star_citizen.py b/app/star_citizen.py index 66b2a3d7..e044505b 100755 --- a/app/star_citizen.py +++ b/app/star_citizen.py @@ -8,43 +8,6 @@ import requests wiki_url = "https://starcitizen.tools/" -async def send_alert(self, channel, embed): - await self.bot.get_channel(channel).send(embed=embed) - - -def build_alert_embed( - color, thumbnail=None, author=None, image=None, details=None, link=None -): - embed = discord.Embed(description="-------", color=color, type="rich") - - if thumbnail: - embed.set_thumbnail(url=thumbnail) - - embed.set_author(name=author) - - if image: - embed.set_image(url=image) - - embed.add_field(name="Details", value=details, inline=True) - - embed.add_field( - name="LINK", - value=link, - inline=False, - ) - - return embed - - -def write_incident_file(file_path, url, details): - info_dict = { - "incident_link": url, - "details": details, - } - with open(file_path, "w") as out_file: - out_file.write(json.dumps(info_dict)) - - async def rsi_find(player): base_url = "https://robertsspaceindustries.com"