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))