All source listed below is under MIT license if no LICENSE file stating different is available.
🐍 SnekBot: Your Instant Chat Companion 🚀
🔥 Create Your Own Bot in 5 Minutes Flat!
Why SnekBot?
- 💨 Lightning-fast setup
- 🤖 Fully async and production-ready
- 🌈 Super flexible and easy to customize
- 🛡️ Handles network issues like a boss
Prerequisites
- Python 3.8+ (because we're modern like that)
- A sense of adventure 🏴☠️
Quick Installation Magic ✨
1. Prep Your Environment
# Ubuntu/Debian users, get ready!
sudo apt install python3 python3-venv python3-pip -y
# Create your bot's magical realm
python3 -m venv venv
source venv/bin/activate
2. Summon SnekBot
pip install git+https://molodetz.nl/retoor/snekbot.git
🤖 Bot Creation Wizard
import asyncio
from snekbot.bot import Bot
class CoolSnekBot(Bot):
async def on_join(self, channel_uid):
await self.send_message(
channel_uid,
"Yo! I'm here to make this chat awesome! 🎉"
)
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}! 👋")
elif "bye" in message:
await self.send_message(channel_uid, f"Catch you later, {sender_nick}! 🤙")
# Launch your bot into the wild!
bot = CoolSnekBot(
url="wss://your-snek-instance.com/rpc.ws",
username="your_awesome_bot",
password="super_secret_password"
)
asyncio.run(bot.run())
🚀 Run Your Bot
python your_awesome_bot.py
Event Handlers You Can Override
on_join
: When bot enters a channelon_leave
: When bot exits a channelon_ping
: Respond to ping messageson_mention
: Handle direct mentionson_message
: Catch and respond to general 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!
Contributing
Got cool ideas? PRs are welcome! 🤝
License
MIT - Go wild, have fun! 🎈
dist | |
src | |
.gitignore | |
example.py | |
LICENSE.txt | |
Makefile | |
pyproject.toml | |
README.md |