
[đ 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.