Files
Modreplybot/README.md
T

125 lines
4.0 KiB
Markdown
Raw Permalink Normal View History

2026-03-08 18:08:24 +00:00
2026-03-10 18:37:11 +00:00
# ModReplyBot
ModReplyBot is a Reddit bot for moderators that automates post approval and stickied comments based on subreddit wiki configuration. It responds to mod comments and mod reports containing trigger phrases, and auto-comments on posts with configured tags. All configuration is managed via a subreddit wiki page and environment variables.
2026-03-08 18:08:24 +00:00
## Features
2026-03-10 18:37:11 +00:00
- Responds to moderator comments containing trigger phrases (starting with `!`)
- Responds to moderator reports containing trigger phrases (starting with `!`)
2026-03-08 18:08:24 +00:00
- Approves posts and leaves stickied comments
2026-03-10 18:37:11 +00:00
- Posts automatic comments based on tags in post titles (e.g., `[Bedrock]`, `[Java]`)
2026-03-08 23:28:58 +00:00
- Triggers, tag comments, and bot config are managed via a subreddit wiki page
2026-03-10 18:37:11 +00:00
- Notifies mods via modmail when the config wiki page changes or is invalid
2026-03-08 23:28:58 +00:00
- 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-10 22:36:57 +00:00
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
2026-03-10 22:36:57 +00:00
```yaml
2026-03-08 18:08:24 +00:00
triggers:
- trigger: help
2026-03-10 22:36:57 +00:00
comment: |
Thank you for your report!
This post is now approved.
status: enabled
flair_id: 12345678-aaaa-bbbb-cccc-1234567890ab
stickied: true
lock_post: false
lock_comment: false
- trigger: wc
comment: |
Welcome to the community!
status: log-only
post_tags:
- tag: Bedrock, Java
comment: |
__[Click here if your post says "Sorry, this post was removed by Reddits filters"](...)__
status: enabled
flair_id: 12345678-aaaa-bbbb-cccc-1234567890ab
2026-03-12 22:56:57 +00:00
# New: Ignore tags
ignore_tags:
- tag: Off-Topic
- tag: Meme
2026-03-10 22:36:57 +00:00
```
- Triggers: Bot responds to mod comments and mod reports containing `!trigger` (e.g., `!help`) with the configured comment and actions.
2026-03-12 22:56:57 +00:00
2026-03-10 22:36:57 +00:00
- post_tags: Bot posts the comment automatically on new posts with matching tags in the title and can set flair.
2026-03-12 22:56:57 +00:00
- ignore_tags: Bot will ignore (not comment on) posts with these tags in the title. Tags are case-insensitive and match `[Tag]` in the post title or flair.
2026-03-10 22:36:57 +00:00
- Status options: `enabled`, `log-only`, `disabled`.
- Optional actions: `flair_id`, `stickied`, `lock_post`, `lock_comment`.
### 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
REDDIT_USER_AGENT=modreplybot by /u/your_username
REDDIT_SUBREDDIT=your_subreddit
REDDIT_WIKI_PAGE=modreplybot-config
LOG_LEVEL=Default
```
## Installation
### Docker Compose (Recommended)
1. Copy `.env.example` to `.env` and fill in your values.
2. Run:
```
docker compose up -d
```
2026-03-08 18:08:24 +00:00
2026-03-10 22:36:57 +00:00
* The DB folder is mounted for persistent database storage.
### Docker Run
1. Copy `.env.example` to `.env` and fill in your values.
2. Run:
```
docker run --env-file .env -v $(pwd)/DB:/app/DB slfhstd.uk/slfhstd/modreplybot:latest
```
### 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-10 22:40:17 +00:00
```
python modreplybot.py
```
2026-03-10 22:29:35 +00:00
2026-03-10 22:38:05 +00:00
## Chat-Based Config Reload
- To reload the wiki config, send a chat message containing `reload-config` to the bot account from a moderator account.
- The bot will reply to the chat message indicating whether the config is valid or not.
- Chat message IDs are tracked in `/DB/chat_wiki_requests.txt` to prevent duplicate reloads after restarts.
2026-03-10 22:29:35 +00:00
2026-03-10 22:38:05 +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.
- The bot only responds to mod comments and mod reports for triggers.
- Database is stored in `/DB/commented_posts.txt` and `/DB/chat_wiki_requests.txt` and survives container restarts.
- If the wiki config is invalid, the bot will reply to the chat message with an error.
2026-03-10 22:29:35 +00:00
2026-03-10 22:38:05 +00:00
## Moderator Guide
See `ModGuide.md` for a detailed guide to configuring triggers, auto-post tags, and wiki options.
2026-03-10 22:29:35 +00:00
2026-03-10 22:38:05 +00:00
## License
MIT