Files
cyclingbot/README.md
Blake Ridgway ba1770b493 first commit
2026-04-11 14:06:59 -05:00

2.1 KiB

Cycling Discord Bot

A Discord bot for tracking cycling (and other fitness) distances across a server. Members post their distance in a designated channel and the bot logs it automatically.

Features

  • Auto-parses distances from messages in a configured channel
  • Leaderboard, yearly totals, weekly/monthly reports
  • Personal stats: history, PB, streaks, unit preference (km/miles)
  • Social: kudos, head-to-head comparison
  • Admin tools: manual adjustments, ride removal, audit log, challenge management
  • Updates channel topic with the current running total

Setup

Copy .env.example to .env and fill in your values:

DISCORD_TOKEN=your-bot-token-here
GUILD_ID=                   # optional: restrict to one server for instant command propagation
DB_PATH=cycling_bot.db      # optional: defaults to cycling_bot.db

Build & Run

go build -o cycling-bot .
./cycling-bot

Cross-compile for FreeBSD:

GOOS=freebsd GOARCH=amd64 go build -o cycling-bot .

See Makefile for deploy targets (make deploy, make deploy-env, make restart, etc.).

Commands

Command Description
/setchannel [Admin] Set the channel to track
/resetchallenge [Admin] Archive current totals and start fresh
/setchallengename [Admin] Name the current challenge
/setgoal [Admin] Set a collective KM goal
/addkm [Admin] Manually credit/debit KM for a user
/removelog [Admin] Remove a ride by message ID
/audit [Admin] View all logged rides for a user
/leaderboard Top cyclists in the current challenge
/yearlyleaderboard Top cyclists for the calendar year
/totalkm Total distance in the current challenge
/mystats Your challenge + yearly stats
/history Your recent rides
/pb Your personal best single ride
/streak Consecutive days with a logged ride
/setunit Set preferred unit (km or miles)
/kudos Give a shoutout to another rider
/compare Head-to-head stats vs another rider
/weeklyreport Distances logged this week
/monthlyreport Distances logged this month