This commit is contained in:
retoor 2025-05-05 22:25:01 +02:00
parent 25a5eca313
commit 1857f18d3d

View File

@ -1,83 +1,81 @@
# 🐍 SnekBot: Your Instant Chat Companion πŸš€
# SnekBot: Your Instant Chat Companion
## πŸ”₯ Create Your Own Bot in 5 Minutes Flat!
## Create Your Own Bot in Minutes
### Why SnekBot?
- πŸ’¨ Lightning-fast setup
- πŸ€– Fully async and production-ready
- 🌈 Super flexible and easy to customize
- πŸ›‘οΈ Handles network issues like a boss
### Overview
SnekBot is designed for rapid deployment and customization, providing a fully asynchronous and production-ready chat bot solution. It is built to handle network issues effectively, ensuring a reliable user experience.
### Prerequisites
- Python 3.8+ (because we're modern like that)
- A sense of adventure πŸ΄β€β˜ οΈ
- Python 3.8 or higher
- Basic understanding of Python programming
### Quick Installation Magic ✨
### Installation Instructions
#### 1. Prep Your Environment
#### 1. Prepare Your Environment
```bash
# Ubuntu/Debian users, get ready!
# For Ubuntu/Debian users:
sudo apt install python3 python3-venv python3-pip -y
# Create your bot's magical realm
# Create a virtual environment for your bot
python3 -m venv venv
source venv/bin/activate
```
#### 2. Summon SnekBot
#### 2. Install SnekBot
```bash
pip install git+https://molodetz.nl/retoor/snekbot.git
```
### πŸ€– Bot Creation Wizard
### Bot Development
To create your bot, use the following template:
```python
import asyncio
from snekbot.bot import Bot
class CoolSnekBot(Bot):
class CustomSnekBot(Bot):
async def on_join(self, channel_uid):
await self.send_message(
channel_uid,
"Yo! I'm here to make this chat awesome! πŸŽ‰"
"Hello! I am here to assist you."
)
async def on_message(self, sender_username, sender_nick, channel_uid, message):
message = message.lower()
if "hello" in message:
await self.send_message(channel_uid, f"Hi there, {sender_nick}! πŸ‘‹")
await self.send_message(channel_uid, f"Greetings, {sender_nick}!")
elif "bye" in message:
await self.send_message(channel_uid, f"Catch you later, {sender_nick}! πŸ€™")
await self.send_message(channel_uid, f"Goodbye, {sender_nick}!")
# Launch your bot into the wild!
bot = CoolSnekBot(
# Initialize your bot
bot = CustomSnekBot(
url="wss://your-snek-instance.com/rpc.ws",
username="your_awesome_bot",
password="super_secret_password"
username="your_bot_username",
password="your_secure_password"
)
asyncio.run(bot.run())
```
### πŸš€ Run Your Bot
### Running Your Bot
```bash
python your_awesome_bot.py
python your_bot_script.py
```
### Event Handlers You Can Override
- `on_join`: When bot enters a channel
- `on_leave`: When bot exits a channel
- `on_ping`: Respond to ping messages
- `on_mention`: Handle direct mentions
- `on_message`: Catch and respond to general messages
### Event Handlers
You can override the following event handlers:
- `on_join`: Triggered when the bot joins a channel
- `on_leave`: Triggered when the bot leaves a channel
- `on_ping`: Responds to ping messages
- `on_mention`: Handles direct mentions
- `on_message`: Processes incoming messages
### πŸ’‘ Pro Tips
- Add `logging.basicConfig(level=logging.DEBUG)` for detailed logs
- The bot automatically reconnects if connection drops
- Customize to your heart's content!
### Additional Information
- For detailed logging, include `logging.basicConfig(level=logging.DEBUG)` in your code.
- The bot is designed to automatically reconnect in case of connection drops.
- Feel free to customize the bot to meet your specific requirements.
### Contributing
Got cool ideas? PRs are welcome! 🀝
### Contribution Guidelines
Contributions are welcome. Please submit pull requests for any enhancements or bug fixes.
### License
MIT - Go wild, have fun! 🎈
This project is licensed under the MIT License.