dragon-bot/scratchpad/trackdays.py
Luke R 2e7377d3c1
All checks were successful
Build and push / changes (push) Successful in 3s
Build and push / Lint-Python (push) Successful in 2s
Build and push / Build-and-Push-Docker (push) Successful in 2m51s
Build and push / sync-argocd-app (push) Successful in 2s
Build and push / post-status-to-discord (push) Successful in 2s
Huge update, making dale-bot commands usable as an app instead of just in my server
2025-03-04 08:14:22 -08:00

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: discord.ApplicationContext,
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))