A Telegram bot that sends scheduled brunch invitations to group chats with RSVP functionality.
- Scheduled Messages: Sends brunch invitations on a cron schedule
- Random Content: Picks random GIFs and messages from configured lists
- RSVP System: 4-button RSVP system (0-3) for attendees and guests
- Live Updates: Message updates in real-time as people RSVP
- Guest Tracking: Shows +1 or +2 for additional guests
- Auto-cleanup: Removes RSVP buttons after configurable timeout
Create a config.yaml file with the following structure:
bot_token: "YOUR_BOT_TOKEN"
group_chat_id: -1001234567890
cron_schedule: "0 10 * * SUN"
rsvp_timeout_minutes: 120
gif_file_ids:
- "FILE_ID_1"
- "FILE_ID_2"
brunch_messages:
- "🥞 Brunch time! Who's joining?"
- "🍳 Weekend brunch alert!"bot_token: Your Telegram bot token from BotFathergroup_chat_id: The ID of your group chat (negative number for groups)cron_schedule: Standard cron format for scheduling messagesrsvp_timeout_minutes: How long before RSVP buttons are removedgif_file_ids: List of Telegram File IDs for random GIF selectionbrunch_messages: List of invitation messages to randomly choose from
Run the bot with a custom config file location:
lebronch -config /path/to/config.yamlOr use the default config.yaml in the current directory:
lebronchPull and run the pre-built container:
docker run -v /path/to/config.yaml:/config.yaml tyrm/lebroncOr use docker-compose:
version: '3'
services:
lebronch:
image: tyrm/lebronc
volumes:
- ./config.yaml:/config.yaml
restart: unless-stopped- Bot sends a random GIF followed by a random brunch message at scheduled times
- Message includes 4 RSVP buttons:
- 0: Cancel RSVP
- 1: Just yourself
- 2: You + 1 guest
- 3: You + 2 guests
- Clicking a button updates the message with:
- Attendee list under "Attending:"
- Guest counts shown as "+1" or "+2"
- Total RSVP count at the bottom
- After the timeout period, buttons are removed but the RSVP list remains
To get File IDs for GIFs:
- Send a GIF to your bot in a private chat
- Use the Telegram Bot API to get message updates
- Extract the
file_idfrom the animation object
"0 10 * * SUN"- Every Sunday at 10 AM"30 9 * * 6"- Every Saturday at 9:30 AM"0 11 * * 0,6"- Weekends at 11 AM"0 */2 * * *"- Every 2 hours (for testing)