- Replaced extractor.suitable() with direct regex pattern matching - Added check for _VALID_URL attribute - Improved error handling in URL extraction - Maintains compatibility with video_downloader.py changes
Birthday Cog for Red-DiscordBot
This cog allows you to assign a special role to users on their birthday and send them a celebratory message with cake (or pie) emojis! Supports both traditional prefix commands, slash commands, and context menu commands.
Installation
To install this cog, follow these steps:
-
Ensure you have Red-DiscordBot V3 installed.
-
Add the repository to your bot:
[p]repo add Pac-cogs https://github.com/pacnpal/Pac-cogs -
Install the Birthday cog:
[p]cog install Pac-cogs birthday -
Load the cog:
[p]load birthday
Replace [p] with your bot's prefix.
Setup
Before using the cog, you need to set it up. You can use either prefix commands or slash commands:
-
Set the birthday role:
[p]setrole @Birthdayor
/setrole @BirthdayNote: The bot's role must be above the birthday role in the server's role hierarchy, but users assigning the birthday role do not need to have a role above it.
-
Add roles that can use the birthday command:
[p]addrole @Moderatoror
/addrole @Moderator -
(Optional) Set the timezone for role expiration:
[p]settimezone America/New_Yorkor
/settimezone America/New_York -
(Optional) Set a specific channel for birthday announcements:
[p]setchannel #birthdaysor
/setchannel #birthdaysIf not set, the birthday message will be sent in the channel where the command is used.
Usage
To assign the birthday role to a user, you can use any of these methods:
-
Command:
[p]birthday @Useror
/birthday @User -
Context Menu: Right-click on a user and select "Apps > Give Birthday Role"
This will assign the birthday role to the user and send a celebratory message with random cake (or pie) emojis. The role will be automatically removed at midnight in the specified timezone.
Features
- Assigns a special birthday role to users
- Sends a celebratory message with random cake (or pie) emojis
- Automatically removes the birthday role at midnight
- Configurable timezone for role expiration
- Option to set a specific channel for birthday announcements (defaults to the channel where the command is used)
- Restricts usage of the birthday command to specified roles
- Users can assign the birthday role without needing a role higher than it in the hierarchy
- Full slash command and context menu support
- Persistent birthday role removal scheduling (survives bot restarts)
- Birthday role removal task checking
Commands
All commands support both prefix and slash command syntax:
Admin Commands
[p]setroleor/setrole: Set the birthday role[p]addroleor/addrole: Add a role that can use the birthday command[p]removeroleor/removerole: Remove a role from using the birthday command[p]settimezoneor/settimezone: Set the timezone for the birthday role expiration[p]setchannelor/setchannel: Set the channel for birthday announcements
User Commands
[p]birthdayor/birthday: Assign the birthday role to a user- Context Menu > "Give Birthday Role": Right-click a user to assign the birthday role
[p]bdaycheckor/bdaycheck: Check upcoming birthday role removal tasks
Support
If you encounter any issues or have questions, please open an issue on the GitHub repository.