Princess Bot
Author: retoor retoor@molodetz.nl
An automated social media interaction bot for the devRant platform. Monitors a target user's posts and generates LLM-powered responses.
Overview
Princess Bot monitors rants and comments from a specified user on devRant, generates contextual responses using the Grok language model, and posts replies automatically. The bot maintains state to prevent duplicate responses.
Architecture
The bot operates on a polling model with the following components:
| Component | Description |
|---|---|
| Api | devRant API client for authentication and content retrieval |
| GrokAPIClient | LLM integration for response generation |
| AsyncDataSet | Async SQLite wrapper for state persistence |
Usage
Quick Start
make
This creates a virtual environment, installs dependencies, and starts the bot.
Manual Setup
python3 -m venv .venv
source .venv/bin/activate
pip install -e ../../.
pip install -r requirements.txt
python princess.py
Configuration
Create a .env file with the following variables:
| Variable | Description |
|---|---|
USERNAME |
devRant account username |
PASSWORD |
devRant account password |
TARGET |
Username of the user to monitor |
LLM_KEY |
API key for Grok language model |
Example:
USERNAME=your_username
PASSWORD=your_password
TARGET=target_username
LLM_KEY=your_grok_api_key
Stopping
Press Ctrl+C to terminate the bot.
Data Storage
Uses SQLite via AsyncDataSet with:
- Responded message tracking for deduplication
- Persistent state across restarts
Requirements
- Python 3.10+
- python-dotenv
- aiosqlite
- aiohttp (via parent devranta package)
Cleanup
make clean
Removes the virtual environment. Database file (princess.db) is preserved.
File Structure
princess/
├── princess.py # Main bot implementation
├── ads.py # AsyncDataSet database wrapper
├── grk.py # Grok API client
├── requirements.txt # Dependencies
├── Makefile # Build automation
├── .env # Configuration (create manually)
├── .venv/ # Virtual environment (created on first run)
└── princess.db # SQLite database (created on first run)
| .. | ||
| ads.py | ||
| grk.py | ||
| Makefile | ||
| princess.py | ||
| README.md | ||
| requirements.txt | ||