dragon-bot/app/cogs/trackdays.py

47 lines
1.3 KiB
Python
Executable File

from discord.ext import commands
import discord
import requests
from bs4 import BeautifulSoup
class TrackDays(commands.Cog):
def __init__(self, bot):
self.bot: commands.Bot = bot
async def get_all_tracks(ctx: discord.AutocompleteContext):
"""
returns a list of all the cali tracks for use in auto-complete
"""
url = "https://www.trackpinata.com/"
response = requests.get(url).text
soup = BeautifulSoup(response, "html.parser")
return [x.text for x in soup.find_all("h2", class_="thumbnail-header")]
@commands.slash_command(
guild_ids=None,
name="trackdays",
description="Look up upcoming trackdays",
)
async def trackdays_lookup(
self,
ctx: commands.Context,
track: discord.Option(
str,
autocomplete=discord.utils.basic_autocomplete(get_all_tracks),
description="Track to look up days for",
),
):
track = track.replace(" ", "-").lower()
base_url = f"https://www.trackpinata.com/tracks/{track}"
response = requests.get(base_url)
soup = BeautifulSoup(response.text, "html.parser")
soup.find_all("a", class_="list-item w-inline-block")
def setup(bot):
bot.add_cog(TrackDays(bot))