Fix ship name captalizing when there is a space in teh name, also returning the error embed object
This commit is contained in:
parent
0f172b7f43
commit
676e802d52
@ -1,119 +1,116 @@
|
|||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
import requests
|
import requests
|
||||||
import discord
|
import discord
|
||||||
import pprint
|
|
||||||
|
|
||||||
|
|
||||||
async def get_ship(ship_name):
|
async def get_ship(ship_name):
|
||||||
base_url = "https://robertspaceindustries.com"
|
base_url = "https://robertspaceindustries.com"
|
||||||
wiki_url = "https://starcitizen.tools/"
|
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:
|
try:
|
||||||
ingame_price = (
|
wiki_ship_name = " ".join(elem.capitalize() for elem in ship_name.split())
|
||||||
soup.find("div", {"class": "data-buycost infobox-data infobox-col2"})
|
|
||||||
|
# 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"})
|
.find("div", {"class": "infobox-data__value"})
|
||||||
.text
|
.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:
|
except Exception:
|
||||||
ingame_price = "No in-game price available"
|
embed = discord.Embed(description="❌", color=discord.Color.red(), type="rich")
|
||||||
embed.add_field(name="**Ingame Price**", value=ingame_price, inline=True)
|
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
|
return embed
|
||||||
|
Loading…
x
Reference in New Issue
Block a user