Update README.md

This commit is contained in:
CJ
2026-05-07 21:58:40 +01:00
parent 40e510d143
commit d767f7ab3f
+132 -2
View File
@@ -1,3 +1,133 @@
# RUST-Wipe-Bot
# Rust Wipe Countdown Discord Webhook
A bot that updates an embed with RUST server wipe countdown.
A lightweight Python script that automatically posts or updates a Discord embed showing the **next Rust monthly wipe**, including:
- A DSTsafe UK timestamp (autoadjusts GMT/BST)
- A relative timestamp (`in 3 weeks`, `in 2 days`, etc.)
- A dynamic colour indicator (green/yellow/red)
- A 10segment emoji progress bar
- A “Last updated” footer timestamp
- Automatic create/edit mode for Discord webhooks
Perfect for Rust community servers that want a clean, automated countdown updated via cron.
---
## How It Works
The script calculates the **first Thursday of next month** — the official Rust wipe day — and sets the wipe time to **19:00 UK time**.
### DSTSafe Date Handling
The script uses:
- `pytz.timezone("Europe/London")`
- `tz.localize(...)`
- UTC conversion only when generating the UNIX timestamp
This ensures the embed always shows **19:00 UK time**, even when the UK switches between GMT and BST.
### Dynamic Colour Logic
The embed colour changes based on how many days remain:
| Days Left | Colour | Meaning |
|----------|--------|---------|
| > 7 | Green | Plenty of time |
| 37 | Yellow | Getting close |
| < 3 | Red | Imminent wipe |
### Emoji Progress Bar
The script calculates the time between:
- **Last wipe** (previous first Thursday @ 19:00)
- **Next wipe**
Then fills a 10segment bar with:
- 🟩 (green)
- 🟨 (yellow)
- 🟥 (red)
depending on how close the wipe is.
Example:
🟩🟩🟩⬜⬜⬜⬜⬜⬜⬜ 30%
### Webhook Create/Edit
The script supports two modes:
- `"create"` — posts a new message
- `"edit"` — updates an existing message using its ID
This allows you to run the script via cron without spamming your channel.
---
## Configuration
Before running the script, update the following fields:
```python
WEBHOOK_URL = ""
MODE = "create"
MESSAGE_ID = ""
```
### 1. WEBHOOK_URL
Paste your Discord webhook URL:
```WEBHOOK_URL = "https://discord.com/api/webhooks/XXXX/XXXX"```
### 2. MODE
- First run:
```MODE = "create"```
- After the message is created, copy its ID and switch to:
```MODE = "edit"```
### 3. MESSAGE_ID
Only required in edit mode.
Rightclick the message → Copy Message Link → extract the ID at the end.
Example:
```https://discord.com/channels/.../1555000080555554444```
So:
```MESSAGE_ID = "1555000080555554444"```
## Installation
Install dependencies:
```pip install requests pytz```
## Running the Script
Manual Run:
```python updater.py```
Cron Automation (Recommended)
Example: update every hour
```0 * * * * /usr/bin/python3 /home/pi/discord-bot/updater.py```
## File Overview
| Function | Purpose |
|----------|--------|
| next_first_thursday() | Calculates next Rust wipe date/time (DSTsafe) |
| get_dynamic_color() | Chooses embed colour based on days remaining |
| build_progress_bar() | Generates emoji progress bar |
| create_message() | Sends a new webhook message |
| edit_message() | Updates an existing webhook message |
| Main block | Chooses create/edit mode and sends the embed |
## Example Output
```
Next server wipe:
Thursday, 4 June 2026 19:00
Relative: in a month
🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 20%
Last updated: 2026-05-07 20:47:27
```