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

180 lines
5.8 KiB
Markdown
Raw 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.
---
## ✨ Features
- 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 / Requirements
- 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 <br>
├── /data <br>
│ ├── app.db <br>
│ ├── bot.log <br>
│ └── settings.json <br>
├── /web <br>
├── bot.php # PHP-socket bot <br>
├── ws_server.js # WebSocket server <br>
├── .env # Twitch credentials <br>
###
```
/web
api.php
Helix/Twitch API-helper (HTTP/2, cache, retry). Bruges af dashboardsider til uptime, lister m.m. Nødvendig.
bets.php
UI til Bets (points-betting): åbne/lukke bets, se indsatser, resolve vindere. Valgfri feature (kræver points).
commands.php
UI til chat-kommandoer (opret/redigér/slet). Understøtter placeholders og rettigheder. Nødvendig hvis du vil have brugerdefinerede kommandoer.
control.php
Start/Stop/Restart bot-processen fra web-UI. Læser/skrivet “stop.flag” og launcher botten. Nødvendig hvis du styrer botten fra web.
create_admin.php
Engangs-script til at oprette første admin-bruger (admin/lan2025 som standard). Kun til første opsætning → slet bagefter.
db.php
DB-helper til SQLite (WAL, busy_timeout). Bruges af alle sider der læser/skriver i DB. Nødvendig.
events.php
Server-Sent Events (SSE) endpoint til live-loggen i dashboard. Frigiver session-lås. Valgfri, men giver smooth live-log uden reload.
eventsub_setup.php
Lille side der registrerer EventSub-abonnementer (subs, bits, osv.) mod din offentlige callback-URL. Valgfri, men kræves for bits/subs-statistik på index.
eventsub.php
EventSub webhook-endpoint. Modtager Twitch-events, validerer HMAC, skriver til events i DB. Nødvendig hvis du bruger EventSub.
guard.php
Session/login-tjek (frigiver session-låsen med session_write_close()). Nødvendig.
help.php
Hjælpeside med liste over placeholders (fx @$user, {uptime}, {random(1,100)}) og syntaks. Valgfri, men praktisk reference.
index.php
Dashboard (Uptime, bits/subs denne stream, live-log, genveje til moduler). Nødvendig.
log.php
Viser hele data/bot.log med lidt paging. Brugbar til fejlsøgning. Valgfri men anbefalet.
login.php
Login-formular (brugernavn/password via users-tabellen). Nødvendig for adgangskontrol.
logout.php
Rydder session og sender tilbage til login. Nødvendig.
migrate_users.php Engangs-migration: sikrer kolonnerne password, password_hash, role findes i users. Kun til første opsætning → slet bagefter.
permissions.php
UI til rettigheder for kommandoer/roller (Admin/Mod/User/VIP/Sub/Chatter). Valgfri, men anbefales hvis du vil styre hvem der må bruge hvad.
points.php
UI til Loyalty Points (saldoer, transaktioner). Chat-kommando !points. Valgfri kræves for Bets/Slots/Raffle.
poll.php
UI til at oprette/afslutte polls (og vise status). Valgfri.
raffle.php
UI til Raffle med points-billetter (!buy X). Valgfri (kræver points).
send.php
Simpelt “send test-besked til chatten” fra web-UI (god til at teste chat:edit). Valgfri men nyttig.
settings.php
Indstillinger: Watchdog on/off + timeout, Min profil (skift eget username/password), og Brugerstyring (Admin kan oprette/redigere/slette brugere, ændre roller, nulstille passwords). Nødvendig for administration.
slots.php
Emote/slot-spil for points (!spin amount). Valgfri (kræver points).
style.css
Dark theme for hele UI. Nødvendig for udseende (kan naturligvis tilpasses).
timers.php
UI til automatiske chat-beskeder pr. tidsinterval. Valgfri.
validate.php
Checker at OAuth-tokenet er gyldigt og hvilke scopes du har. Valgfri men god til fejlsøgning.
### Hurtig “hvornår bruger jeg hvad?”
Første gang
migrate_users.php
create_admin.php (log ind → slet begge scripts)
settings.php: sæt watchdog/timeout, opret evt. flere brugere
eventsub_setup.php (hvis du vil have bits/subs) kræver offentlig URL og EVENTSUB_SECRET i .env
### Daglig brug
index.php: status + live log
commands.php: vedligehold kommandoer
permissions.php: hvem må bruge hvad
timers.php, poll.php, giveaway.php, points.php, bets.php, raffle.php, slots.php: relevante moduler
log.php / validate.php: fejlsøgning
### Kan de slettes?
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
(Men hvis du fjerner en side, så fjern også linket til den i index.php.)
```
## 📄 Filer
- [CHANGELOG.md](CHANGELOG.md) versionshistorik
- [ROADMAP.md](ROADMAP.md) planlagte funktioner
- [LICENSE](LICENSE) MIT-licens
---
## 🧡 Credits
Udviklet af **Thomas / DjGulvBasS**
Med hjælp fra **ChatGPT (OpenAI)**
MIT Licenseol that runs directly on your Windows server alongside Mix It Up Bot.