![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
├── /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.