01 Context
Ledger is a modular Discord bot focused on practical server utilities and lightweight
interaction. It's built in Python with discord.py and uses modern
slash commands throughout for clarity and discoverability. A persistent SQLite database
holds server-specific configuration and content (saved quotes, timezone preferences and
daily-game state) and the modular architecture means new features can be added without
disturbing existing ones.
02 Capabilities
- Persistent server storage: per-server data such as quotes and timezone settings stored reliably in SQLite.
- Quote management: save, retrieve, search, list and delete server quotes through slash commands.
- Timezone handling: server-configurable timezones with automatic daylight-saving handling and a global overview.
- Daily posts: automated daily quote posts with optional countdowns to upcoming events.
- Word games: Wordle and Linkle playable in Discord, with persistent per-user daily state.
- Utilities & fun: practical commands (ping, uptime, server info) alongside lightweight extras.
03 Command reference
Quotes
| Command | Description |
/quote_add [quote] | Saves a new quote to the server database. |
/quote_random | Returns a random stored quote. |
/quote_list | Displays the most recently added quotes. |
/quote_search [text] | Searches quotes containing specific keywords. |
/quote_delete [id] | Deletes a quote by its ID. |
Timezone
| Command | Description |
/timezone_set [tz] | Sets the server's primary timezone, with autocomplete and common abbreviations (CET, UTC). |
/timezone | Shows the current server time with a curated list of global timezones. |
Daily posts
| Command | Description |
/gandhi_start | Starts daily quote posts in the current channel at 14:00 UTC. |
/gandhi_stop | Stops daily quote posts for the server. |
/countdown start [reason] [date] | Adds a daily countdown to a date alongside the post. |
/countdown stop | Stops the active countdown. |
Games
| Command | Description |
/wordle | Play today's Wordle: six tries, state persists per user per day. |
/wordle_reset | Resets your Wordle progress for today. |
/linkle | Play today's Linkle: find the hidden word from compound-word clues. |
Utility & fun
| Command | Description |
/ping | Checks the bot's current latency. |
/uptime | Displays how long the bot has been running. |
/serverinfo | Shows basic information about the server. |
/userinfo [user] | Displays account and server information about a user. |
/roll [NdM] | Rolls dice using NdM notation (e.g. 2d6, 1d20). |
/coinflip | Flips a virtual coin. |
/choose [options] | Chooses randomly from multiple options. |
/rate [thing] | Rates something on a scale from 1 to 10. |
/8ball [question] | Returns a randomised Magic 8-Ball response. |
04 Stack
Python
discord.py
SQLite
python-dotenv
ZoneInfo
← Back to index