Update README.md
This commit is contained in:
@@ -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 DST‑safe UK timestamp (auto‑adjusts GMT/BST)
|
||||
- A relative timestamp (`in 3 weeks`, `in 2 days`, etc.)
|
||||
- A dynamic colour indicator (green/yellow/red)
|
||||
- A 10‑segment 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**.
|
||||
|
||||
### DST‑Safe 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 |
|
||||
| 3–7 | 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 10‑segment 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.
|
||||
|
||||
Right‑click 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 (DST‑safe) |
|
||||
| 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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user