Files
PHP_Bot-ModInterface/README.md
2025-10-05 14:48:21 +02:00

274 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
![Logo](/images/logo.png)
[📄 CHANGELOG.md](CHANGELOG.md) · [📄 INSTALL.md](INSTALL.md) · [📄 ROADMAP.md](ROADMAP.md)
# Twitch PHP Bot 🇩🇰
En letvægts **Twitch Chat Bot** skrevet i **PHP**, der kører direkte på en webserver som **XAMPP** eller **Apache**, uden Node.js eller eksterne services.
Webinterface til styring af kommandoer, timers, polls, giveaways, loyalty points og brugere.
---
## ✨ Funktioner
- Twitch IRC chat-bot (PHP socket)
- Dashboard med login og rettigheder
- Kommandoer med placeholders (`@$user`, `@$target`, `{uptime}`, `!points`, …)
- Live log (SSE + WebSocket fallback)
- Timers, Polls, Giveaways
- Loyalty points + Bets, Slots, Raffle
- Helix API-integration (subs, mods, VIPs, cheerers, uptime, osv.)
- Rettighedsstyring (Admin / Mod / User)
- SQLite database ingen ekstern DB
- Dansk/Engelsk dokumentation
---
## ⚙️ Krav
- PHP **8.1+**
- Extensions: `pdo_sqlite`, `curl`, `mbstring`, `json`
- Webserver (XAMPP, Apache, Nginx …)
- Twitch OAuth-token: [https://twitchapps.com/tmi/](https://twitchapps.com/tmi/)
- (Valgfrit) Node.js + `ws` for WebSocket live-log
---
## 🚀 Installation
Se [INSTALL.md](INSTALL.md) for komplette trin.
---
## 🔐 Login
Efter første installation:
- Brugernavn: `admin`
- Adgangskode: `demo`
(kan ændres under **Indstillinger**)
---
## 📁 Struktur
```
/bot
├── /data
│ ├── app.db
│ ├── bot.log
│ └── settings.json
├── /web
├── bot.php # PHP-socket bot
├── ws_server.js # WebSocket server
├── .env # Twitch credentials
```
---
### `/web` Mappestruktur
| Fil | Beskrivelse |
|------|--------------|
| **api.php** | Helix/Twitch API-helper (HTTP/2, cache, retry). Påkrævet. |
| **bets.php** | UI til Bets (points-betting): åbne/lukke bets, se indsatser, resolve vindere. Valgfri. |
| **commands.php** | UI til chat-kommandoer (opret/redigér/slet). Understøtter placeholders og rettigheder. Nødvendig for brugerdefinerede kommandoer. |
| **control.php** | Start/Stop/Restart botten fra web-UI. Nødvendig hvis du styrer botten fra web. |
| **create_admin.php** | Engangs-script til at oprette første admin (standard: admin/lan2025). Slet efter opsætning. |
| **db.php** | DB-helper til SQLite (WAL, busy_timeout). Nødvendig. |
| **events.php** | SSE-endpoint til live-loggen. Valgfri, giver realtid. |
| **eventsub_setup.php** | Registrerer EventSub-abonnementer (subs, bits, osv.). Valgfri, krævet for live-statistik. |
| **eventsub.php** | EventSub webhook-endpoint. Påkrævet hvis du bruger EventSub. |
| **guard.php** | Session/login-tjek. Nødvendig. |
| **help.php** | Hjælpeside med placeholders (`@$user`, `{uptime}`, `{random(1,100)}`). Valgfri. |
| **index.php** | Dashboard (Uptime, bits/subs, live-log, genveje). Nødvendig. |
| **log.php** | Viser bot.log med paging. Valgfri men nyttig. |
| **login.php** | Login-formular. Nødvendig. |
| **logout.php** | Rydder session. Nødvendig. |
| **migrate_users.php** | Engangs-migration (sikrer kolonner). Slet efter opsætning. |
| **permissions.php** | UI til rettigheder (Admin/Mod/User/Sub/VIP). Valgfri men anbefalet. |
| **points.php** | UI til Loyalty Points (!points). Valgfri, krævet for bets/slots/raffle. |
| **poll.php** | UI til Polls. Valgfri. |
| **raffle.php** | UI til Raffle (!buy X). Valgfri (kræver points). |
| **send.php** | Simpel “send test-besked til chatten”. Valgfri men nyttig. |
| **settings.php** | Indstillinger: watchdog, timeout, brugerstyring. Nødvendig for admin. |
| **slots.php** | Slot-spil (!spin). Valgfri (kræver points). |
| **style.css** | Dark theme. Nødvendig. |
| **timers.php** | UI til timers (auto-beskeder). Valgfri. |
| **validate.php** | Checker OAuth-tokenets gyldighed og scopes. Valgfri. |
---
### 🧭 Hurtig oversigt
**Første opsætning**
- Kør `migrate_users.php`
- Kør `create_admin.php` → log ind → slet begge scripts
- Konfigurer i `settings.php`
- *(Valgfrit)* `eventsub_setup.php` (kræver offentlig URL + `EVENTSUB_SECRET` i `.env`)
**Daglig brug**
- `index.php`: Dashboard + live-log
- `commands.php`: Vedligehold kommandoer
- `permissions.php`: Rettigheder
- Moduler: `timers.php`, `poll.php`, `giveaway.php`, `points.php`, `bets.php`, `raffle.php`, `slots.php`
- `log.php`, `validate.php`: Fejlsøgning
**Slet efter opsætning**
- `migrate_users.php`, `create_admin.php`
**Valgfri moduler**
- `bets.php`, `poll.php`, `raffle.php`, `slots.php`, `points.php`, `help.php`, `send.php`, `log.php`, `eventsub_setup.php`
*(Fjerner du en side, så fjern linket i `index.php`)*
---
## 📄 Filer
- [CHANGELOG.md](CHANGELOG.md) versionshistorik
- [ROADMAP.md](ROADMAP.md) planlagte funktioner
- [LICENSE](LICENSE) Egen licens © 2025 TechNest.dk
---
## 🧡 Credits
Udviklet af **Thomas #Udvikler / Dalle175 #Software Tester**
Med hjælp fra **ChatGPT (OpenAI) / kodestruktur / fejlretning**
Licens **Custom Proprietære Licens**
---
# Twitch PHP Bot 🇬🇧
A lightweight **Twitch Chat Bot** written in **PHP**, running directly on a web server such as **XAMPP** or **Apache**, with **no Node.js** or external services required.
Includes a full web interface to manage commands, timers, polls, giveaways, loyalty points, and user access.
---
## ✨ Features
- Twitch IRC chat bot (PHP socket)
- Dashboard with login and role-based access
- Command editor with placeholders (`@$user`, `@$target`, `{uptime}`, `!points`, …)
- Live log (SSE + WebSocket fallback)
- Timers, Polls, Giveaways
- Loyalty points + Bets, Slots, Raffle
- Helix API integration (subs, bits, mods, VIPs, cheerers, uptime, etc.)
- Role management (Admin / Mod / User)
- SQLite database no external DB needed
- Danish/English documentation
---
## ⚙️ Requirements
- PHP **8.1+**
- Extensions: `pdo_sqlite`, `curl`, `mbstring`, `json`
- Web server (XAMPP, Apache, Nginx, etc.)
- Twitch OAuth token: [https://twitchapps.com/tmi/](https://twitchapps.com/tmi/)
- *(Optional)* Node.js + `ws` for WebSocket live log
---
## 🚀 Installation
See [INSTALL.md](INSTALL.md) for full step-by-step instructions.
---
## 🔐 Login
After first setup:
- **Username:** `admin`
- **Password:** `demo`
(can be changed under **Settings**)
---
## 📁 Structure
```
/bot
├── /data
│ ├── app.db
│ ├── bot.log
│ └── settings.json
├── /web
├── bot.php # PHP socket bot
├── ws_server.js # WebSocket server
├── .env # Twitch credentials
```
---
### `/web` Folder Overview
| File | Description |
|------|--------------|
| **api.php** | Helix/Twitch API helper (HTTP/2, cache, retry). Required. |
| **bets.php** | UI for points betting (open/close bets, view wagers, resolve winners). Optional. |
| **commands.php** | Manage chat commands (create/edit/delete). Supports placeholders and roles. Required for custom commands. |
| **control.php** | Start/Stop/Restart bot from web UI. Required if controlling bot from web. |
| **create_admin.php** | One-time script to create initial admin (default: admin/lan2025). Delete after first setup. |
| **db.php** | SQLite helper (WAL mode, busy timeout). Required. |
| **events.php** | SSE endpoint for live log. Optional, improves real-time updates. |
| **eventsub_setup.php** | Registers EventSub subscriptions (subs, bits, etc.). Optional, needed for live stats. |
| **eventsub.php** | EventSub webhook endpoint. Required if using EventSub. |
| **guard.php** | Session/login check. Required. |
| **help.php** | Placeholder documentation (`@$user`, `{uptime}`, `{random(1,100)}`). Optional. |
| **index.php** | Dashboard (uptime, subs/bits, live log, shortcuts). Required. |
| **log.php** | View bot.log with pagination. Optional but useful. |
| **login.php** | Login form. Required. |
| **logout.php** | Logout script. Required. |
| **migrate_users.php** | One-time migration script (ensures DB columns). Delete after setup. |
| **permissions.php** | Manage command access per role (Admin/Mod/User/Sub/VIP). Optional but recommended. |
| **points.php** | Loyalty points UI (!points). Optional; required for bets/slots/raffle. |
| **poll.php** | Poll management UI. Optional. |
| **raffle.php** | Raffle module (!buy X). Optional; requires points. |
| **send.php** | Send test messages to chat. Optional but handy. |
| **settings.php** | Settings: watchdog, timeout, user management. Required for admin control. |
| **slots.php** | Slot machine game (!spin). Optional; requires points. |
| **style.css** | Dark theme styling. Required. |
| **timers.php** | Timed chat messages. Optional. |
| **validate.php** | Checks OAuth validity and scopes. Optional, useful for debugging. |
---
### 🧭 Quick “When to Use What”
**First-time setup**
- Run `migrate_users.php`
- Run `create_admin.php` → log in → delete both scripts
- Configure in `settings.php`
- *(Optional)* `eventsub_setup.php` (requires public URL + `EVENTSUB_SECRET` in `.env`)
**Daily use**
- `index.php`: Dashboard + live log
- `commands.php`: Manage commands
- `permissions.php`: Role access
- Modules: `timers.php`, `poll.php`, `giveaway.php`, `points.php`, `bets.php`, `raffle.php`, `slots.php`
- `log.php`, `validate.php`: Debugging
**Safe to delete after setup**
- `migrate_users.php`, `create_admin.php`
**Optional modules**
- `bets.php`, `poll.php`, `raffle.php`, `slots.php`, `points.php`, `help.php`, `send.php`, `log.php`, `eventsub_setup.php`
*(If removed, also remove links in `index.php`)*
---
## 📄 Files
- [CHANGELOG.md](CHANGELOG.md) version history
- [ROADMAP.md](ROADMAP.md) planned features
- [LICENSE](LICENSE) Custom License © 2025 TechNest.dk
---
## 🧡 Credits
Developed by **Thomas #developer / Dalle175 #software tester **
With help from **ChatGPT (OpenAI) / code structure / debugging**
License **Custom Proprietary License**