diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 44 |
1 files changed, 22 insertions, 22 deletions
@@ -16,14 +16,16 @@ A modular Reddit bot for automated post moderation built with Python and PRAW. The bot supports two roleplay limiting modes: #### Surge-Based Limiting (Default) + Intelligent surge detection that adjusts limits based on subreddit activity: - **Normal Activity** (< 20 roleplay posts): Users can post up to 5 roleplay posts per time window - **Moderate Surge** (20+ roleplay posts): Users limited to 3 roleplay posts per time window -- **High Surge** (40+ roleplay posts): Users limited to 1 roleplay post per time window +- **High Surge** (40+ roleplay posts): Users limited to 1 roleplay post per time window - **Extreme Surge** (60+ roleplay posts): All roleplay posts temporarily blocked #### Static Limiting (Optional) + Fixed limit that doesn't change based on activity: - **Fixed Limit**: Users can post a configurable number of roleplay posts per time window (default: 1) @@ -72,7 +74,6 @@ REDDIT_USER_AGENT=UmaBot/0.1.0 SUBREDDIT_NAME=your_subreddit_name # Bot Messages -SPAM_MESSAGE=Your post has been removed for posting too frequently. Please wait before posting again. ROLEPLAY_MESSAGE=Your post has been removed. Only one roleplay post is allowed per user. # Bot Settings @@ -127,7 +128,7 @@ class MyCustomRule(Rule): def should_remove(self, submission): # Your logic here return False - + def get_removal_message(self, submission): return "Your post was removed for violating our custom rule." ``` @@ -170,25 +171,24 @@ The bot can be deployed on any platform that supports Python: ### Environment Variables -| Variable | Description | Default | -|----------|-------------|---------| -| `REDDIT_CLIENT_ID` | Reddit API client ID | Required | -| `REDDIT_CLIENT_SECRET` | Reddit API client secret | Required | -| `REDDIT_USERNAME` | Reddit bot username | Required | -| `REDDIT_PASSWORD` | Reddit bot password | Required | -| `REDDIT_USER_AGENT` | User agent string | `UmaBot/0.1.0` | -| `SUBREDDIT_NAME` | Target subreddit name | Required | -| `SPAM_MESSAGE` | Message for spam removals | Customizable | -| `ROLEPLAY_MESSAGE` | Message for roleplay removals | Customizable | -| `CHECK_INTERVAL` | Seconds between checks | `60` | -| `MAX_POSTS_PER_DAY` | Max posts per user in time window | `3` | -| `MAX_ROLEPLAY_POSTS_PER_DAY` | Max roleplay posts per user in time window | `1` | -| `POST_LIMIT_WINDOW_HOURS` | Time window for post limits (hours) | `24` | -| `ROLEPLAY_LIMIT_WINDOW_HOURS` | Time window for roleplay limits (hours) | `24` | -| `ROLEPLAY_SURGE_THRESHOLD_1` | First surge threshold for roleplay posts | `20` | -| `ROLEPLAY_SURGE_THRESHOLD_2` | Second surge threshold for roleplay posts | `40` | -| `ROLEPLAY_SURGE_THRESHOLD_3` | Third surge threshold for roleplay posts | `60` | -| `DRY_RUN` | Enable dry-run mode | `false` | +| Variable | Description | Default | +| ----------------------------- | ------------------------------------------ | -------------- | +| `REDDIT_CLIENT_ID` | Reddit API client ID | Required | +| `REDDIT_CLIENT_SECRET` | Reddit API client secret | Required | +| `REDDIT_USERNAME` | Reddit bot username | Required | +| `REDDIT_PASSWORD` | Reddit bot password | Required | +| `REDDIT_USER_AGENT` | User agent string | `UmaBot/0.1.0` | +| `SUBREDDIT_NAME` | Target subreddit name | Required | +| `ROLEPLAY_MESSAGE` | Message for roleplay removals | Customizable | +| `CHECK_INTERVAL` | Seconds between checks | `60` | +| `MAX_POSTS_PER_DAY` | Max posts per user in time window | `3` | +| `MAX_ROLEPLAY_POSTS_PER_DAY` | Max roleplay posts per user in time window | `1` | +| `POST_LIMIT_WINDOW_HOURS` | Time window for post limits (hours) | `24` | +| `ROLEPLAY_LIMIT_WINDOW_HOURS` | Time window for roleplay limits (hours) | `24` | +| `ROLEPLAY_SURGE_THRESHOLD_1` | First surge threshold for roleplay posts | `20` | +| `ROLEPLAY_SURGE_THRESHOLD_2` | Second surge threshold for roleplay posts | `40` | +| `ROLEPLAY_SURGE_THRESHOLD_3` | Third surge threshold for roleplay posts | `60` | +| `DRY_RUN` | Enable dry-run mode | `false` | ## Development |