🎀 Can be found on Telegram as LucynaBot
This bot offers a variety of chat management features to help you keep your Telegram groups organized and secure. Below is a list of available modules:
- Admin: Manage administrative tasks and settings.
- AniList: Integration with AniList to provide anime-related information.
- Antiflood: Prevent spam by limiting the number of messages a user can send in a short period.
- Bans: Ban users from the chat.
- Blacklists: Create and manage blacklists to automatically remove unwanted content.
- Cleanservice: Clean up service messages to keep the chat tidy.
- Extras: Additional features and utilities.
- Filters: Set up custom filters to automatically respond to specific messages.
- Fun: Fun commands to engage with chat members.
- Greetings: Send welcome messages to new members.
- Locks: Lock specific types of messages (e.g., media, links) to control chat content.
- Mutes: Mute users to prevent them from sending messages temporarily.
- Notes: Save and recall notes.
- Purges: Bulk delete messages.
- Reports: Report messages to administrators.
- Rules: Define and display chat rules.
- Users: Manage user settings and permissions.
- Warns: Warn users for rule violations.
Follow these steps to install and set up the bot:
-
Clone the repository:
git clone https://github.com/ryukaizen/lucyna.git cd lucyna
-
Install Node.js and npm: Ensure you have Node.js and npm installed. You can download them from here.
-
Install TypeScript:
npm install -g typescript
-
Install dependencies:
npm install
-
Set up environment variables:
cp .env.example .env
-
Edit and fill up all the relevant environment variables inside the .env file
-
Add PostgreSQL URL, Telegram API ID, API Hash, and GramJS String Session to the .env file: Edit the
.env
file and add your PostgreSQL connection URL, Telegram API ID, API Hash, and GramJS String Session:DATABASE_URL=your-postgresql-connection-url API_ID=your-telegram-api-id API_HASH=your-telegram-api-hash STRING_SESSION=your-gramjs-string-session
You can generate the GramJS string session using telegramtools.com/string-session-generator.
-
Set up Prisma:
npx prisma db push
-
Start the bot using nodemon:
npm start
- Markdown parsing for notes, filters, rules, welcomes
- GramJS as utility
- Pagination buttons for /notes so it wont cover entire screen
- Refactor everything since there's A LOT of repeated code
- Command prefixes !, ?
- Autodelete "Only admins can use this command" type of messages
- Hydration plugin (change every ctx and bot method)
- Make use of all invitelink methods given by Telegram API, make a separate module for it
- Pillow welcome where you fetch pfp of user and create a welcome card
- Custom bot token (bot instances)
- Moderator roles
- Presets for security, settings and etc.
- /shutup on | off command to make the bot shut up (owner only)
Feel free to clone, contribute and raise issues. You can even reach out to me on Telegram.
The project was rushed due to time constraints, so there might be some bugs and issues. Although, we're just getting started ;)