178 lines
5.8 KiB
Markdown
178 lines
5.8 KiB
Markdown

|
||
|
||
[📄 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
|
||
├── /data
|
||
│ ├── app.db
|
||
│ ├── bot.log
|
||
│ └── settings.json
|
||
├── /web
|
||
├── bot.php # PHP-socket bot
|
||
├── ws_server.js # WebSocket server
|
||
├── .env # Twitch credentials
|
||
|
||
###
|
||
/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.
|