From 5d61c3fea6be87967067dcf8305c4d176e3ad11c Mon Sep 17 00:00:00 2001 From: Slfhstd Date: Wed, 11 Mar 2026 21:06:04 +0000 Subject: [PATCH] changelog --- CHANGELOG.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea5c723..8759166 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,65 @@ -# Changelog - TestPostsBot V2 +# Changelog - TestPostsBot -## Overview +## Version 2.1.0 - Update Checker System + +### New Features + +#### 1. Update Checker System +- Bot now periodically checks for new versions from a centralized update server +- Automatically sends modmail notifications to subreddit modteam when updates are available +- Includes changelog URL in notification for easy reference +- 24-hour cooldown prevents spam (max 1 notification per day) +- Runs as a background daemon thread alongside main bot operations +- Tracks last update notification timestamp to file for persistence across restarts + +#### 2. Version Management +- Bot version is now centralized at the top of `bot.py` in a dedicated section +- `BOT_VERSION` and `BOT_NAME` constants used throughout the bot +- Easy single-location reference for version updates +- Version automatically included in update checker calls and user agent string + +#### 3. Infrastructure +- Created separate `update_server/` project for version management service +- Flask-based REST API serving version information via `/api/version/` +- `versions.json` file stores version details for all bots +- Docker support with Dockerfile for containerized deployment +- Includes comprehensive README with deployment options + +### New Files +- **update_checker.py** - Background module that checks for and notifies about updates + +### Modified Files + +#### bot.py +- Added version constants section at top for easy reference +- Added import for `update_checker` module +- Added `start_update_checker()` call in `main()` function +- User agent now uses version constants: `{BOT_NAME}/{BOT_VERSION}` + +#### requirements.txt +- Added `requests` library for HTTP requests to update server + +#### docker-compose.yml + +- Volume mounts for persistent `versions.json` and log files + +### Configuration +Update checker timing is configurable in `update_checker.py`: +- `UPDATE_CHECK_INTERVAL = 60` seconds (check frequency) +- `UPDATE_COOLDOWN = 86400` seconds (24 hours between notifications) + +### How It Works +1. On startup, bot creates background thread running update checker +2. Every hour, thread polls `https://updts.slfhstd.uk/api/version/TestPostsBot` +3. If version differs from current `BOT_VERSION`, and 24 hours have passed since last notification, sends modmail +4. Modmail includes current version, available version, and changelog URL +5. Last notification timestamp stored in `DB/.last_update_check.txt` + +--- + +## Version 2.0.0 - Trigger-Based Redesign + +### Overview Complete refactor of TestPostsBot to be a continuously running, trigger-based posting bot that responds to moderator commands via chat messages. ## Major Features Added