diff --git a/app/star_citizen.py b/app/star_citizen.py index cfce9e47..0c74ebdb 100644 --- a/app/star_citizen.py +++ b/app/star_citizen.py @@ -1,119 +1,116 @@ from bs4 import BeautifulSoup import requests import discord -import pprint async def get_ship(ship_name): base_url = "https://robertspaceindustries.com" wiki_url = "https://starcitizen.tools/" - # try: - # # ship = await Ship(name=ship_name).get_ships_pages_async() - # # ship = ship[0] - # except IndexError: - # embed = discord.Embed(description="❌", color=discord.Color.red(), type="rich") - # embed.add_field( - # name="**Could not find that ship**", - # value="You gave me %s. Did you spell it right? (Its also possible my shitty code isnt working right)" - # % ship_name, - # inline=True, - # ) - # return embed - - # prints for debug - pp = pprint.PrettyPrinter(indent=4) - # pp.pprint(ship) - - # wiki_ship_name = ship["url"].split("/")[-1].replace("-", "_") - wiki_ship_name = ship_name.replace(" ", "_").title() - - headers = { - "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0" - } - response = requests.get(wiki_url + wiki_ship_name, headers=headers).text - soup = BeautifulSoup(response, "html.parser") - - embed = discord.Embed( - description="-------", color=discord.Color.blue(), type="rich" - ) - - ship_image = (soup.find("a", {"class": "mw-file-description"})).img["src"] - - embed.set_thumbnail(url=ship_image) - - embed.set_author(name="Star Citizen API Info about the %s" % ship_name) try: - ingame_price = ( - soup.find("div", {"class": "data-buycost infobox-data infobox-col2"}) + wiki_ship_name = " ".join(elem.capitalize() for elem in ship_name.split()) + + # print(wiki_ship_name) + + headers = { + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0" + } + response = requests.get(wiki_url + wiki_ship_name, headers=headers).text + soup = BeautifulSoup(response, "html.parser") + + embed = discord.Embed( + description="-------", color=discord.Color.blue(), type="rich" + ) + + ship_image = (soup.find("a", {"class": "mw-file-description"})).img["src"] + + embed.set_thumbnail(url=ship_image) + + embed.set_author(name="Star Citizen API Info about the %s" % ship_name) + try: + ingame_price = ( + soup.find("div", {"class": "data-buycost infobox-data infobox-col2"}) + .find("div", {"class": "infobox-data__value"}) + .text + ) + except Exception: + ingame_price = "No in-game price available" + embed.add_field(name="**Ingame Price**", value=ingame_price, inline=True) + + pledge_price = ( + soup.find("div", {"class": "data-pledgecost infobox-data infobox-col4"}) .find("div", {"class": "infobox-data__value"}) .text ) + + embed.add_field(name="**Pledge Price**", value=pledge_price, inline=True) + + # embed.add_field(name="-------", value="", inline=False) + # embed.add_field(name="**Description**", value=ship["description"], inline=False) + embed.add_field(name="-------", value="", inline=False) + + stowage_capacity = ( + soup.find("tr", {"class": "data-stowagespace infobox-data infobox-col2"}) + .findChildren("td")[0] + .text + ) + + embed.add_field( + name="**Stowage Capacity**", value=stowage_capacity, inline=True + ) + + cargo_capacity = ( + soup.find("tr", {"class": "data-cargocapacity infobox-data infobox-col4"}) + .findChildren("td")[0] + .text + ) + + embed.add_field(name="**Cargo Capacity**", value=cargo_capacity, inline=True) + + crew_size = ( + soup.find("tr", {"class": "data-crew infobox-data infobox-col4"}) + .findChildren("td")[0] + .text + ) + embed.add_field(name="**Crew Size**", value=crew_size, inline=True) + embed.add_field(name="-------", value="", inline=False) + + claim_time = ( + soup.find("div", {"class": "data-claimtime infobox-data infobox-col4"}) + .find("div", {"class": "infobox-data__value"}) + .text + ) + + expedited_claim_time = ( + soup.find("div", {"class": "data-expeditetime infobox-data infobox-col4"}) + .find("div", {"class": "infobox-data__value"}) + .text + ) + expedited_fee = ( + soup.find("div", {"class": "data-expeditecost infobox-data infobox-col2"}) + .find("div", {"class": "infobox-data__value"}) + .text + ) + + embed.add_field(name="**Insurance claim time**", value=claim_time, inline=True) + + embed.add_field( + name="**Expedite claim time**", value=expedited_claim_time, inline=True + ) + embed.add_field(name="**Expedite Fee**", value=expedited_fee, inline=True) + + embed.add_field( + name="**Link**", value="%s/%s" % (wiki_url, wiki_ship_name), inline=False + ) + except Exception: - ingame_price = "No in-game price available" - embed.add_field(name="**Ingame Price**", value=ingame_price, inline=True) + embed = discord.Embed(description="❌", color=discord.Color.red(), type="rich") + embed.add_field( + name="**Could not find that ship**", + value="You gave me %s. Did you spell it right? (Its also possible my shitty code isnt working right)" + % ship_name, + inline=True, + ) + return embed - pledge_price = ( - soup.find("div", {"class": "data-pledgecost infobox-data infobox-col4"}) - .find("div", {"class": "infobox-data__value"}) - .text - ) - - embed.add_field(name="**Pledge Price**", value=pledge_price, inline=True) - - # embed.add_field(name="-------", value="", inline=False) - # embed.add_field(name="**Description**", value=ship["description"], inline=False) - embed.add_field(name="-------", value="", inline=False) - - stowage_capacity = ( - soup.find("tr", {"class": "data-stowagespace infobox-data infobox-col2"}) - .findChildren("td")[0] - .text - ) - - embed.add_field(name="**Stowage Capacity**", value=stowage_capacity, inline=True) - - cargo_capacity = ( - soup.find("tr", {"class": "data-cargocapacity infobox-data infobox-col4"}) - .findChildren("td")[0] - .text - ) - - embed.add_field(name="**Cargo Capacity**", value=cargo_capacity, inline=True) - - crew_size = ( - soup.find("tr", {"class": "data-crew infobox-data infobox-col4"}) - .findChildren("td")[0] - .text - ) - embed.add_field(name="**Crew Size**", value=crew_size, inline=True) - embed.add_field(name="-------", value="", inline=False) - - claim_time = ( - soup.find("div", {"class": "data-claimtime infobox-data infobox-col4"}) - .find("div", {"class": "infobox-data__value"}) - .text - ) - - expedited_claim_time = ( - soup.find("div", {"class": "data-expeditetime infobox-data infobox-col4"}) - .find("div", {"class": "infobox-data__value"}) - .text - ) - expedited_fee = ( - soup.find("div", {"class": "data-expeditecost infobox-data infobox-col2"}) - .find("div", {"class": "infobox-data__value"}) - .text - ) - - embed.add_field(name="**Insurance claim time**", value=claim_time, inline=True) - - embed.add_field( - name="**Expedite claim time**", value=expedited_claim_time, inline=True - ) - embed.add_field(name="**Expedite Fee**", value=expedited_fee, inline=True) - - embed.add_field( - name="**Link**", value="%s%s" % (wiki_url, wiki_ship_name), inline=False - ) return embed