From 699966bd2d26683dc20c6d0bd42598f54d786af0 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 15 Sep 2025 23:40:34 -0700 Subject: feat(spam_detector): Use UTC time as limit reset time --- README.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 12f8639..f6dd88a 100644 --- a/README.md +++ b/README.md @@ -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 -- cgit v1.2.3