Files
Modreplybot/README.md
T

96 lines
2.8 KiB
Markdown
Raw Normal View History

2026-03-08 18:16:19 +00:00
# ModReplyBot Reddit Bot
2026-03-08 18:08:24 +00:00
2026-03-08 23:28:58 +00:00
ModReplyBot is a Reddit bot for moderators that watches for mod comments containing triggers, approves posts, and leaves stickied comments. It also posts automatic comments based on post tags, and notifies mods when its configuration changes. All configuration is handled via a subreddit wiki page and environment variables.
2026-03-08 18:08:24 +00:00
## Features
2026-03-08 23:28:58 +00:00
- Responds only to moderator comments containing triggers (ignores non-mod comments)
2026-03-08 18:08:24 +00:00
- Approves posts and leaves stickied comments
2026-03-08 23:28:58 +00:00
- Posts automatic comments based on tags in post titles (e.g., [Bedrock], [Java])
- Triggers, tag comments, and bot config are managed via a subreddit wiki page
- Notifies mods via modmail when the config wiki page changes
- Persistent database for auto-commented posts (survives restarts and container recreations)
2026-03-08 18:08:24 +00:00
- Docker and baremetal support
## Configuration
2026-03-08 23:28:58 +00:00
### 1. Wiki Page Configuration
Edit your subreddit wiki page (name set by `REDDIT_WIKI_PAGE` env variable) with YAML like:
2026-03-08 18:08:24 +00:00
```
triggers:
- trigger: help
comment: |
Thank you for your report!
This post is now approved.
- trigger: question
comment: |
This post has been approved.
Your question will be answered soon.
2026-03-08 23:28:58 +00:00
post_tags:
- tag: Bedrock, Java
comment: |
__[Click here if your post says "Sorry, this post was removed by Reddits filters"](...)__
2026-03-08 18:08:24 +00:00
```
2026-03-08 23:28:58 +00:00
- Triggers: Bot responds to mod comments containing !trigger (e.g., !help) with the configured comment.
- post_tags: Bot posts the comment automatically on new posts with matching tags in the title.
2026-03-08 18:08:24 +00:00
### 2. Environment Variables
Create a `.env` file (or set env variables directly) with:
```
REDDIT_CLIENT_ID=your_client_id
REDDIT_CLIENT_SECRET=your_client_secret
REDDIT_USERNAME=your_username
REDDIT_PASSWORD=your_password
2026-03-08 18:16:19 +00:00
REDDIT_USER_AGENT=modreplybot by /u/your_username
2026-03-08 18:08:24 +00:00
REDDIT_SUBREDDIT=your_subreddit
2026-03-08 23:28:58 +00:00
REDDIT_WIKI_PAGE=modbot-config
2026-03-08 18:08:24 +00:00
```
## Installation
### Docker Compose (Recommended)
1. Copy `.env.example` to `.env` and fill in your values.
2. Run:
```
docker compose up -d
```
2026-03-08 23:28:58 +00:00
- The DB folder is mounted for persistent database storage.
2026-03-08 18:08:24 +00:00
### Docker Run
1. Copy `.env.example` to `.env` and fill in your values.
2. Run:
```
2026-03-08 23:28:58 +00:00
docker run --env-file .env -v $(pwd)/DB:/app/DB slfhstd.uk/slfhstd/modreplybot:latest
2026-03-08 18:08:24 +00:00
```
### Baremetal (Direct Python)
1. Install Python 3.11+
2. Install dependencies:
```
pip install -r requirements.txt
```
3. Set environment variables or create a `.env` file.
4. Run:
```
2026-03-08 23:28:58 +00:00
python modreplybot.py
2026-03-08 18:08:24 +00:00
```
## Troubleshooting
- Ensure your Reddit credentials are correct and have moderator permissions.
- The bot must be able to read the wiki page and approve posts.
- Check logs for errors.
2026-03-08 23:28:58 +00:00
- The bot only responds to mod comments for triggers.
- Database is stored in DB/commented_posts.txt and survives container restarts.
2026-03-08 18:08:24 +00:00
## License
MIT