Collegiate Racing League's Discord Bot.
This bot is structured in modules (Discord cogs) so you can add future features without rewriting core bot setup.
- Every Friday at 12:00 PM Eastern (
America/New_York), it checks your Google Sheet. - It looks for a row whose date matches that Friday.
- It posts the matching question to your configured Discord channel.
Message format:
Question #<number> (<mm/dd/yyyy>)
<question text>
The configured range defaults to Sheet1!A:C, with header row in row 1:
| date | number | question |
|---|---|---|
| 2026-01-09 | 1 | ... |
Accepted date formats in the date column:
YYYY-MM-DDMM/DD/YYYYMM/DD/YY
- Create a Discord bot in the Developer Portal and copy its token.
- Enable Message Content Intent for your bot.
- Invite the bot to your server.
- Create a Google Cloud project and enable the Google Sheets API.
- Create an API key and allow it to access your sheet data.
- Ensure your sheet is readable by that API key context (or publicly readable if using unrestricted key).
Copy .env.example to .env and fill values:
cp .env.example .envRequired environment variables:
DISCORD_TOKENDISCORD_CHANNEL_IDGOOGLE_SHEETS_API_KEYGOOGLE_SHEET_ID
Optional:
GOOGLE_SHEET_RANGE(default:Sheet1!A:C)POST_TIMEZONE(default:America/New_York)
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m bot.main!postfriday(admin only): manually tries to post the question for today's date.
Add new modules under bot/cogs/ and load them in bot/main.py via setup_hook.