2025-10-05 14:02:44 +02:00
2025-09-15 21:35:58 +02:00
2025-09-15 22:11:05 +02:00
2025-09-15 22:07:35 +02:00
2025-10-05 14:02:44 +02:00
2025-10-05 13:52:44 +02:00
2025-09-15 22:43:31 +02:00
2025-10-05 14:01:47 +02:00
2025-09-15 22:57:15 +02:00

Logo

📄 CHANGELOG.md · 📄 INSTALL.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/
  • (Valgfrit) Node.js + ws for WebSocket-live-log

🚀 Installation

Se 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


🧡 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.

Description
Twitch PHP Bot is a lightweight, self-hosted Twitch chat bot built entirely in PHP, designed to run directly on XAMPP, Apache, or any PHP-compatible web server — no Node.js or external dependencies required. This initial release includes a full-featured dashboard, role-based access, and several integrated modules to manage your stream interactions.
Readme 9.9 MiB
Languages
PHP 96.2%
CSS 2.6%
JavaScript 1.1%
Batchfile 0.1%