2026-03-10 22:38:05 +00:00
2026-03-10 22:29:35 +00:00
2026-03-10 18:37:11 +00:00
2026-03-08 21:32:51 +00:00
2026-03-10 22:34:21 +00:00
2026-03-10 18:37:11 +00:00
2026-03-08 21:32:51 +00:00
2026-03-10 22:29:35 +00:00
2026-03-10 22:29:35 +00:00
2026-03-10 22:38:05 +00:00
2026-03-08 18:08:24 +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.

Features

  • Responds to moderator comments containing trigger phrases (starting with !)
  • Responds to moderator reports containing trigger phrases (starting with !)
  • Approves posts and leaves stickied comments
  • 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 or is invalid
  • Persistent database for auto-commented posts (survives restarts and container recreations)
  • Docker and baremetal support

Configuration

1. Wiki Page Configuration

Edit your subreddit wiki page (name set by REDDIT_WIKI_PAGE env variable) with YAML like:

triggers:
  - trigger: help
    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
  • Triggers: Bot responds to mod comments and mod reports containing !trigger (e.g., !help) with the configured comment and actions.
  • post_tags: Bot posts the comment automatically on new posts with matching tags in the title and can set flair.
  • 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

  1. Copy .env.example to .env and fill in your values.
  2. Run:
docker compose up -d
  • 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
  1. Set environment variables or create a .env file.
  2. Run:
python modreplybot.py

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

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

## Moderator Guide
See `ModGuide.md` for a detailed guide to configuring triggers, auto-post tags, and wiki options.

## License
MIT
S
Description
No description provided
Readme 150 KiB
V2.2.3 Latest
2026-04-04 15:54:49 +01:00
Languages
Python 99.3%
Dockerfile 0.7%