Metadata-Version: 2.4
Name: snekbot
Version: 1.1.0
Summary: Bot API for Snek chat
Author-email: retoor <retoor@molodetz.nl>
Keywords: chat,snek,molodetz,bot
Requires-Python: >=3
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: aiohttp
Dynamic: license-file

# SnekBot: Your Instant Chat Companion

## Create Your Own Bot in Minutes

### 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 or higher
- Basic understanding of Python programming

### Installation Instructions

#### 1. Prepare Your Environment
```bash
# For Ubuntu/Debian users:
sudo apt install python3 python3-venv python3-pip -y

# Create a virtual environment for your bot
python3 -m venv venv
source venv/bin/activate
```

#### 2. Install SnekBot
```bash
pip install git+https://molodetz.nl/retoor/snekbot.git
```

### Bot Development
To create your bot, use the following template:

```python
import asyncio
from snekbot.bot import Bot

class CustomSnekBot(Bot):
    async def on_join(self, channel_uid):
        await self.send_message(
            channel_uid,
            "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"Greetings, {sender_nick}!")
        elif "bye" in message:
            await self.send_message(channel_uid, f"Goodbye, {sender_nick}!")

# Initialize your bot
bot = CustomSnekBot(
    url="wss://your-snek-instance.com/rpc.ws", 
    username="your_bot_username", 
    password="your_secure_password"
)
asyncio.run(bot.run())
```

### Running Your Bot
```bash
python your_bot_script.py
```

### 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

### 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.

### Contribution Guidelines
Contributions are welcome. Please submit pull requests for any enhancements or bug fixes.

### License
This project is licensed under the MIT License.
