From cdbfe86d328e75cfd8188670052e36742fe0eb2a Mon Sep 17 00:00:00 2001 From: Maxallica Date: Thu, 12 Feb 2026 18:16:00 +0100 Subject: [PATCH] Added fontawesome Added detail client info (voice) Added host connection link Added compose.yml Adjusted Dockerfile Adjusted entrypoint.sh Adjusted README.md --- Dockerfile | 28 +- README.md | 161 ++++--- cmd/server/config.example.json | 33 +- compose.yml | 23 + dark.png | Bin 56987 -> 101883 bytes entrypoint.sh | 69 ++- go.mod | 4 + go.sum | 6 + http/http-helper.go | 92 ++-- http/router.go | 58 ++- internal/config/config.go | 14 +- internal/domain/models.go | 69 --- internal/mapper/api_to_domain.go | 58 --- internal/mapper/domain_to_api.go | 59 --- internal/ts6/channel.go | 125 ++++-- internal/ts6/client.go | 153 +++++-- internal/ts6/clientInfo.go | 53 --- internal/ts6/http.go | 35 -- internal/ts6/serverinfo.go | 104 +++-- internal/ts6/ssh.go | 421 ++++++++++++++++++ internal/ts6/status.go | 7 - internal/ts6/utilities.go | 22 + internal/view/models.go | 40 -- .../{domain/domain.go => view/utilities.go} | 27 +- internal/view/vm-builder.go | 98 ++++ internal/view/vm.go | 37 ++ internal/web/static/dark.css | 52 ++- internal/web/static/light.css | 52 ++- internal/web/static/ts6viewer.js | 76 +++- internal/web/templates/ts6viewer.html | 34 +- light.png | Bin 56139 -> 91515 bytes 31 files changed, 1281 insertions(+), 729 deletions(-) create mode 100644 compose.yml delete mode 100644 internal/domain/models.go delete mode 100644 internal/mapper/api_to_domain.go delete mode 100644 internal/mapper/domain_to_api.go delete mode 100644 internal/ts6/clientInfo.go delete mode 100644 internal/ts6/http.go create mode 100644 internal/ts6/ssh.go delete mode 100644 internal/ts6/status.go create mode 100644 internal/ts6/utilities.go delete mode 100644 internal/view/models.go rename internal/{domain/domain.go => view/utilities.go} (71%) create mode 100644 internal/view/vm-builder.go create mode 100644 internal/view/vm.go diff --git a/Dockerfile b/Dockerfile index f6f2c43..7e9f850 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,13 @@ # ------------------------- # 1) Builder stage # ------------------------- -FROM golang:1.20-alpine AS builder +FROM golang:1.24-alpine AS builder -# Install CA certificates required for building -RUN apk add --no-cache ca-certificates +ENV GOTOOLCHAIN=auto WORKDIR /app - -# Copy local repository into the build image (portable across OSes) COPY . /app -# Ensure config.example exists; keep a fallback copy -RUN cp cmd/server/config.example.json cmd/server/config.json || true - -# Normalize go.mod 'go' directive to a valid major.minor form to avoid build errors -RUN if [ -f go.mod ]; then \ - sed -E -i 's/^go[[:space:]]+[0-9]+(\.[0-9]+){1,2}$/go 1.20/' go.mod || true; \ - fi - -# Build a static Linux binary for the server RUN cd cmd/server && CGO_ENABLED=0 GOOS=linux go build -o ts6viewer . # ------------------------- @@ -27,22 +15,16 @@ RUN cd cmd/server && CGO_ENABLED=0 GOOS=linux go build -o ts6viewer . # ------------------------- FROM alpine:latest -# Install CA certificates and gettext for envsubst -RUN apk add --no-cache ca-certificates gettext +RUN apk add --no-cache ca-certificates gettext openssh-client -# Set working directory to where the server expects config.json when using relative path WORKDIR /app/cmd/server -# Copy the built app and assets from builder COPY --from=builder /app /app -# Copy entrypoint script and ensure it's executable COPY entrypoint.sh /app/entrypoint.sh -RUN chmod +x /app/entrypoint.sh || true -RUN chmod +x /app/cmd/server/ts6viewer || true +RUN chmod +x /app/entrypoint.sh +RUN chmod +x /app/cmd/server/ts6viewer -# Expose the internal port the app listens on EXPOSE 8080 -# Use the entrypoint to generate config and start the app ENTRYPOINT ["/app/entrypoint.sh"] diff --git a/README.md b/README.md index 977098a..33a4c2a 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,23 @@ -# TS6 Viewer +TS6 Viewer

Dark Theme Light Theme

A lightweight, fast, and modern web viewer for **TeamSpeak 6** servers. -TS6 Viewer connects to the TeamSpeak 6 WebQuery API, retrieves live server and channel data, and displays it in a clean, responsive web interface with optional dark/light themes. +TS6 Viewer connects to **ServerQuery (SSH, Port 10022)** and displays live server, channel, and client information. The viewer is designed to be: - Simple to deploy - Fast and lightweight - Fully client‑side auto‑refreshing -- Compatible with any TS6 server exposing WebQuery +- Compatible with any TS6 server - Customizable via a single `config.json` file --- + ## Features - Live TeamSpeak 6 server viewer @@ -25,103 +26,157 @@ The viewer is designed to be: - Channel tree rendering with clients - Spacer and full‑width channel support - Caching + rate‑limit protection -- Works on Windows, Linux, and Docker‑friendly environments +- Pure **ServerQuery (SSH)** backend +- Optional **voice status** (mute status, audio status, talking) --- -## Configuration +# ServerQuery (SSH) -The application uses a `config.json` file located in the same directory as the executable. +TS6 Viewer communicates exclusively via ServerQuery over SSH. -### Example `config.json` +Advantages: +- Persistent SSH connection +- Very fast, even with many clients +- clientlist -voice provides all audio/mute/talker info in a single call +- No REST overhead +- No per-client requests +- No rate limits -```json -{ - "_comment": "TS6 Viewer Configuration File", - "_comment2": "Rename this file to config.json and adjust the values to your setup.", +--- - "server_port": "8080", - "_comment_server_port": "The port on which the TS6 Viewer web interface will be available.", +# Configuration Files in the Project - "theme": "dark", - "_comment_theme": "Choose between 'light' or 'dark' for the viewer theme.", +The repository includes two important configuration templates: - "refresh_interval": 60, - "_comment_refresh_interval": "How often the viewer should auto-refresh (in seconds).", +### `config.example.json` +This file is included in the project and serves as the template for your actual configuration. +You can: - "teamspeak6": { - "base_url": "http://192.168.178.195:57007", - "_comment_base_url": "The WebQuery HTTP endpoint of your TeamSpeak 6 server. Usually http://:10080 or your mapped port.", +- rename it manually to `config.json`, or +- let Docker generate `config.json` automatically using environment variables. - "api_key": "geheim", - "_comment_api_key": "Your TeamSpeak 6 ServerQuery API key. It is shown ONCE in the server logs on first startup. If lost, create a new one.", +--- - "server_id": 1, - "_comment_server_id": "The ID of the virtual server you want to display. Default is usually 1." - } -} +# Docker Support + +The repository includes: + +- Dockerfile.sh — multi‑stage build for Go + Alpine +- entrypoint.sh — generates config.json dynamically using environment variables +- docker-compose.yml — ready to run the viewer with one command + +This allows you to run TS6 Viewer fully containerized. + +--- + +## Dockerfile.sh explained + +The Dockerfile uses two stages: + +### 1) Builder Stage +- Based on golang:1.20-alpine +- Copies the entire repository into /app +- Ensures config.example.json exists +- Normalizes go.mod to avoid Go version parsing issues +- Builds a static Linux binary: cmd/server/ts6viewer + +### 2) Runtime Stage +- Based on alpine:latest +- Installs CA certificates + gettext (envsubst) +- Copies the built binary and assets from the builder +- Copies entrypoint.sh +- Exposes port 8080 +- Starts the viewer via the entrypoint script + +--- + +## entrypoint.sh explained + +The entrypoint script: + +1. Loads environment variables +2. Applies defaults if variables are missing +3. Uses envsubst to generate config.json from config.example.json +4. Starts the TS6 Viewer binary + +Environment variables include: + +- SERVER_PORT +- THEME +- REFRESH_INTERVAL +- HOST +- PORT +- USER +- PASSWORD +- ENABLE_VOICE_STATUS +- SERVER_ID + +This makes the Docker container fully configurable without editing files. + +# docker-compose.yml + +A ready‑to‑use compose file is included in the project. +You can start the viewer with: + +``` +docker compose up -d ``` --- -## Building the Program +# Building the Program -The project is written in **Go**, so building is extremely simple. +The project is written in Go. -### Prerequisites +### Build on Linux -- Go 1.20 or newer -- Git (optional) - ---- - -## Build on Linux -```bash +```sh git clone https://github.com/Maxallica/ts6-viewer.git cd ts6viewer - go build -o ts6viewer ``` -## Build Windows binary on Linux -```bash +### Build Windows binary on Linux +```sh cd "*/ts6-viewer/cmd/server" - GOOS=windows GOARCH=amd64 go build -o ts6viewer.exe ``` -## Running on Linux -```bash +### Running on Linux + +```sh ./ts6viewer ``` -## Build on Windows -```bash +### Build on Windows + +```sh git clone https://github.com/Maxallica/ts6-viewer.git cd ts6viewer - go build -o ts6viewer.exe ``` -## Build Linux binary on Windows -```bash -cd "*/ts6-viewer/cmd/server" +### Build Linux binary on Windows +```sh +cd "*/ts6-viewer/cmd/server" $env:GOOS="linux" $env:GOARCH="amd64" go build -o ts6viewer ``` -## Running on Windows -```bash +### Running on Windows +```sh .\ts6viewer.exe ``` --- -## Navigate to the ts6viewer page -http(s)\://\:\/ts6viewer +## Navigate to the TS6 Viewer page + +http(s)\/\/\:\/ts6viewer --- -## ❤️ Made with love in Germany \ No newline at end of file +## ❤️ Made with love in Germany diff --git a/cmd/server/config.example.json b/cmd/server/config.example.json index 899a462..c122e4f 100644 --- a/cmd/server/config.example.json +++ b/cmd/server/config.example.json @@ -2,23 +2,36 @@ "_comment": "TS6 Viewer Configuration File", "_comment2": "Rename this file to config.json and adjust the values to your setup.", - "server_port": "${SERVER_PORT}", - "_comment_server_port": "The port on which the TS6 Viewer web interface will be available. Usually '8080'", + "server_port": "${SERVER_PORT}", + "_comment_server_port": "The port on which the TS6 Viewer web interface will be available.", - "theme": "${THEME}", - "_comment_theme": "Choose between 'light' or 'dark' for the viewer theme. Usually 'dark'", + "theme": "${THEME}", + "_comment_theme": "Choose between 'light' or 'dark' for the viewer theme.", "refresh_interval": "${REFRESH_INTERVAL}", - "_comment_refresh_interval": "How often the viewer should auto-refresh (in seconds). Usually '60'", + "_comment_refresh_interval": "How often the viewer should auto-refresh (in seconds).", - "teamspeak6": { - "base_url": "${BASE_URL}", - "_comment_base_url": "The WebQuery HTTP endpoint of your TeamSpeak 6 server. Usually http://192.168.178.2:10080.", + "host_connection_link": "${HOST_CONNECTION_LINK}", + "_comment_host_connection_link": "The URL or IP address of your TeamSpeak 6 server. This is used for display purposes and should match the actual server address.", - "api_key": "${API_KEY}", - "_comment_api_key": "Your TeamSpeak 6 ServerQuery API key. It is shown ONCE in the server logs on first startup. If lost, you have to create a whole new server.", + "teamspeak6": { + "host": "${HOST}", + "_comment_host": "The ServerQuery [ssh] host. Usually the IP / domain of your TeamSpeak 6 server or 'localhost' if TS6 Viewer runs on the same machine.", + + "port": "${PORT}", + "_comment_port": "The ServerQuery [ssh] port. Usually 10022 for SSH.", + + "user": "${USER}", + "_comment_user": "The ServerQuery [ssh] user. Usually 'serveradmin' by default.", + + "password": "${PASSWORD}", + "_comment_password": "The ServerQuery [ssh] password. It is shown ONCE in the server logs on first startup.", + + "enable_voice_status": "${ENABLE_VOICE_STATUS}", + "_comment_enable_voice_status": "Fetch microphone and audio output status for each client (TS6 -voice).", "server_id": "${SERVER_ID}", "_comment_server_id": "The ID of the virtual server you want to display. Default is usually '1'." } } + diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..4c81491 --- /dev/null +++ b/compose.yml @@ -0,0 +1,23 @@ +version: "3.9" + +services: + ts6viewer: + image: ts6viewer:latest + container_name: ts6viewer + ports: + - "9000:8080" + + environment: + SERVER_PORT: "8080" + THEME: "dark" + REFRESH_INTERVAL: "60" + HOST_CONNECTION_LINK: "" + + HOST: "192.168.178.2" + PORT: "10022" + USER: "serveradmin" + PASSWORD: "" + ENABLE_VOICE_STATUS: "true" + SERVER_ID: "1" + + restart: unless-stopped diff --git a/dark.png b/dark.png index 4ec32ff3c311f220dc30b874ca0da3f31a5b5235..984b8b528370d8ea728f65e207634e6253662312 100644 GIT binary patch literal 101883 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�dt(>2^8=xhm-->{$3h5hC= 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 RJYesc!PC{xWt~$(69BKPJBk1R literal 56987 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 diff --git a/entrypoint.sh b/entrypoint.sh index 52f8841..e7aa574 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,60 +1,53 @@ #!/bin/sh set -eu -# Paths EXAMPLE="/app/cmd/server/config.example.json" -TARGET_REL="config.json" # relative path in WORKDIR (/app/cmd/server) -TARGET_ABS="/app/cmd/server/config.json" # absolute path for clarity +TARGET_ABS="/app/cmd/server/config.json" BINARY="/app/cmd/server/ts6viewer" -# Export variables used in the template (use environment variables only) -export API_KEY="${API_KEY:-}" export SERVER_PORT="${SERVER_PORT:-8080}" -export BASE_URL="${BASE_URL:-http://127.0.0.1:10080}" -export SERVER_ID="${SERVER_ID:-1}" export THEME="${THEME:-dark}" export REFRESH_INTERVAL="${REFRESH_INTERVAL:-60}" +export HOST_CONNECTION_LINK="${HOST_CONNECTION_LINK:-}" -# Minimal, useful debug output -echo "=== STARTUP ===" -# Mask API key for logs: show first 4 chars if present -if [ -n "$API_KEY" ]; then - echo "API_KEY=****${API_KEY#????}" -else - echo "API_KEY=(empty)" -fi -echo "PORT=${SERVER_PORT} BASE_URL=${BASE_URL} THEME=${THEME}" -echo "Working dir: $(pwd)" -echo +export HOST="${HOST:-localhost}" +export PORT="${PORT:-10022}" +export USER="${USER:-serveradmin}" +export PASSWORD="${PASSWORD:-}" +export ENABLE_VOICE_STATUS="${ENABLE_VOICE_STATUS:-true}" +export SERVER_ID="${SERVER_ID:-1}" -# Quick binary check -if [ -x "$BINARY" ]; then - echo "Binary: OK -> $BINARY" -else - echo "Binary: MISSING or not executable -> $BINARY" >&2 +echo "[entrypoint] starting TS6 Viewer" + +if [ ! -x "$BINARY" ]; then + echo "[entrypoint] ERROR: binary not found or not executable: $BINARY" >&2 + exit 1 fi -# Ensure example exists; if not, start the binary directly if [ ! -f "$EXAMPLE" ]; then - echo "config.example.json not found at $EXAMPLE, starting binary directly" >&2 + echo "[entrypoint] WARNING: config.example.json not found, starting without generated config" >&2 + echo "[entrypoint] Starting server..." exec "$BINARY" fi -# Generate config.json from config.example.json using envsubst -envsubst < "$EXAMPLE" > "$TARGET_ABS" || { - echo "Failed to generate config.json" >&2 +if ! envsubst < "$EXAMPLE" > "$TARGET_ABS"; then + echo "[entrypoint] ERROR: failed to generate config.json" >&2 exit 1 -} +fi -# Ensure relative copy exists for relative loads -cp -f "$TARGET_ABS" "$TARGET_REL" || true +echo "[entrypoint] config.json generated" -# Show compact confirmation and a short preview of the generated config -size=$(wc -c < "$TARGET_ABS" 2>/dev/null || echo 0) -echo "Generated config.json (${size} bytes). Preview:" -echo "-----" -head -n 20 "$TARGET_ABS" || true -echo "-----" +echo "[entrypoint] Loaded configuration:" +echo " SERVER_PORT=$SERVER_PORT" +echo " THEME=$THEME" +echo " REFRESH_INTERVAL=$REFRESH_INTERVAL" +echo " HOST=$HOST" +echo " PORT=$PORT" +echo " USER=$USER" +echo " PASSWORD=*********" +echo " ENABLE_VOICE_STATUS=$ENABLE_VOICE_STATUS" +echo " SERVER_ID=$SERVER_ID" + +echo "[entrypoint] Starting server..." -echo "Starting server..." exec "$BINARY" diff --git a/go.mod b/go.mod index 804be69..6df341d 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,7 @@ module ts6-viewer go 1.25.6 + +require golang.org/x/crypto v0.47.0 + +require golang.org/x/sys v0.40.0 // indirect diff --git a/go.sum b/go.sum index e69de29..d8a4490 100644 --- a/go.sum +++ b/go.sum @@ -0,0 +1,6 @@ +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY= +golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww= diff --git a/http/http-helper.go b/http/http-helper.go index 82f1b70..9579e39 100644 --- a/http/http-helper.go +++ b/http/http-helper.go @@ -1,103 +1,83 @@ package http import ( - "net" + "log" "net/http" "time" "ts6-viewer/internal/config" - "ts6-viewer/internal/domain" - "ts6-viewer/internal/mapper" "ts6-viewer/internal/ts6" "ts6-viewer/internal/view" ) +// getIP extracts the IP address from the request. func getIP(r *http.Request) string { - host, _, err := net.SplitHostPort(r.RemoteAddr) - if err != nil { - return r.RemoteAddr + ip := r.RemoteAddr + if ipForwarded := r.Header.Get("X-Forwarded-For"); ipForwarded != "" { + ip = ipForwarded } - return host + return ip } +// allowRequest checks rate limiting per IP. func allowRequest(ip string) bool { mu.Lock() defer mu.Unlock() - last, exists := lastRequestTime[ip] - if exists && time.Since(last) < rateLimitWindow { + now := time.Now() + last, ok := lastRequestTime[ip] + if ok && now.Sub(last) < rateLimitWindow { return false } - lastRequestTime[ip] = time.Now() + lastRequestTime[ip] = now return true } -func getViewerData(cfg *config.Config, baseURL, apiKey, serverID string) (view.ViewerData, error) { +// getViewerData fetches or returns cached viewer data. +func getViewerData(cfg *config.Config, force bool) (view.VMTS6Viewer, error) { mu.Lock() defer mu.Unlock() - if time.Since(cacheTimestamp) < cacheTTL { + if !force && time.Since(cacheTimestamp) < cacheTTL { + log.Println("[HTTP] Returning cached viewer data") return cacheData, nil } - serverInfo, err := ts6.GetServerInfo(baseURL, apiKey, serverID) + log.Println("[HTTP] Fetching new viewer data from TS6 server") + sshClient, err := ts6.GetPersistentClient(cfg, cfg.Teamspeak6.ServerID) if err != nil { - return view.ViewerData{}, err + log.Printf("[HTTP] Failed to get SSH client: %v\n", err) + return view.VMTS6Viewer{}, err } - apiClients, err := ts6.GetClientList(baseURL, apiKey, serverID) + channels, err := ts6.GetChannelList(cfg, sshClient) if err != nil { - return view.ViewerData{}, err + log.Printf("[HTTP] Failed to get channels: %v\n", err) + return view.VMTS6Viewer{}, err } - apiChannels, err := ts6.GetChannelList(baseURL, apiKey, serverID) + clients, err := ts6.GetClientList(cfg, sshClient) if err != nil { - return view.ViewerData{}, err + log.Printf("[HTTP] Failed to get clients: %v\n", err) + return view.VMTS6Viewer{}, err } - // API → Domain - domainChannels := make([]*domain.Channel, 0, len(apiChannels)) - for _, ch := range apiChannels { - domainChannels = append(domainChannels, mapper.MapAPIChannel(ch)) + info, err := ts6.GetServerInfo(cfg, sshClient) + if err != nil { + log.Printf("[HTTP] Failed to get server info: %v\n", err) + return view.VMTS6Viewer{}, err } - fullClients := make([]*domain.FullClient, 0, len(apiClients)) - for _, c := range apiClients { - // info, err := ts6.GetClientInfo(baseURL, apiKey, serverID, c.CLID) - // if err != nil { - // fmt.Println("clientinfo error:", err) - // } - - domainInfo := &domain.ClientInfo{ - MicMuted: false, - OutputMuted: false, - IsTalking: false, - } - - domainClient := mapper.MapAPIClient(c) - // domainInfo := mapper.MapAPIClientInfo(info) - - fullClients = append(fullClients, &domain.FullClient{ - Client: *domainClient, - Info: domainInfo, - }) - } - - channelTree := domain.BuildChannelTree(domainChannels, fullClients) - - // ServerInfo → Domain - domainServer := mapper.MapAPIServer(serverInfo) - - // Domain → View - viewData := view.ViewerData{ - Server: mapper.MapServerToView(domainServer), - ChannelTree: mapper.MapChannelTreeToView(channelTree), + vmTS6Viewer := view.VMTS6Viewer{ + VMServer: view.BuildVMServer(cfg, info, clients), + VMChannels: view.BuildVMChannels(channels, clients), Theme: cfg.Theme, RefreshInterval: cfg.RefreshInterval, } - // Set cache - cacheData = viewData + cacheData = vmTS6Viewer cacheTimestamp = time.Now() - return viewData, nil + log.Println("[HTTP] Viewer data updated and cached") + + return vmTS6Viewer, nil } diff --git a/http/router.go b/http/router.go index 76ef17c..02eb271 100644 --- a/http/router.go +++ b/http/router.go @@ -16,7 +16,7 @@ import ( ) var ( - cacheData view.ViewerData + cacheData view.VMTS6Viewer cacheTimestamp time.Time cacheTTL = 5 * time.Second @@ -26,84 +26,101 @@ var ( mu sync.Mutex ) +// NewRouter sets up all HTTP routes and returns the router. func NewRouter(cfg config.Config) http.Handler { + // parse refresh interval if ttl, err := time.ParseDuration(cfg.RefreshInterval + "s"); err == nil { cacheTTL = ttl + log.Printf("[HTTP] Cache TTL set to %v\n", cacheTTL) } - baseURL := cfg.Teamspeak6.BaseURL - apiKey := cfg.Teamspeak6.ApiKey - serverID := cfg.Teamspeak6.ServerID refreshIntervalStr := cfg.RefreshInterval - refreshInterval, err := strconv.Atoi(refreshIntervalStr) if err != nil || refreshInterval <= 0 { refreshIntervalStr = "60" + refreshInterval = 60 } + log.Printf("[HTTP] Refresh interval: %d seconds\n", refreshInterval) + mux := http.NewServeMux() + // Load templates wd, err := os.Getwd() if err != nil { - log.Fatal("cannot get working directory:", err) + log.Fatal("[HTTP] Cannot get working directory:", err) } tmplPath := filepath.Join(wd, "..", "..", "internal", "web", "templates", "ts6viewer.html") tmpl := template.Must(template.ParseFiles(tmplPath)) + log.Printf("[HTTP] Loaded template: %s\n", tmplPath) + // Static assets staticPath := filepath.Join(wd, "..", "..", "internal", "web", "static") mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir(staticPath)))) + log.Printf("[HTTP] Static files served from: %s\n", staticPath) // ----------------------------- - // JSON endpoint (/ts6viewer/data + /ts6viewer/data/) + // JSON data endpoint // ----------------------------- dataHandler := func(w http.ResponseWriter, r *http.Request) { ip := getIP(r) + log.Printf("[HTTP] /ts6viewer/data requested from IP: %s\n", ip) - var data view.ViewerData + var data view.VMTS6Viewer var err error + force := r.URL.Query().Get("force") == "1" + if force { + log.Printf("[HTTP] Force refresh requested by IP: %s\n", ip) + } if allowRequest(ip) { - data, err = getViewerData(&cfg, baseURL, apiKey, serverID) + data, err = getViewerData(&cfg, force) } else { + log.Printf("[HTTP] Rate limit hit for IP: %s\n", ip) data = cacheData } if err != nil { + log.Printf("[HTTP] Error getting viewer data: %v\n", err) http.Error(w, err.Error(), http.StatusInternalServerError) return } w.Header().Set("Content-Type", "application/json") - json.NewEncoder(w).Encode(data) + if err := json.NewEncoder(w).Encode(data); err != nil { + log.Printf("[HTTP] Error encoding JSON response: %v\n", err) + } } mux.HandleFunc("/ts6viewer/data", dataHandler) mux.HandleFunc("/ts6viewer/data/", dataHandler) // ----------------------------- - // HTML view (/ts6viewer + /ts6viewer/) + // HTML view endpoint // ----------------------------- viewHandler := func(w http.ResponseWriter, r *http.Request) { ip := getIP(r) + log.Printf("[HTTP] /ts6viewer requested from IP: %s\n", ip) - var data view.ViewerData + var data view.VMTS6Viewer var err error - if allowRequest(ip) { - data, err = getViewerData(&cfg, baseURL, apiKey, serverID) + data, err = getViewerData(&cfg, true) } else { + log.Printf("[HTTP] Rate limit hit for IP: %s\n", ip) data = cacheData } if err != nil { + log.Printf("[HTTP] Error getting viewer data: %v\n", err) http.Error(w, err.Error(), http.StatusInternalServerError) return } w.Header().Set("Content-Type", "text/html; charset=utf-8") if err := tmpl.Execute(w, data); err != nil { - log.Println("Template error:", err) + log.Printf("[HTTP] Template execution error: %v\n", err) } } @@ -111,9 +128,18 @@ func NewRouter(cfg config.Config) http.Handler { mux.HandleFunc("/ts6viewer/", viewHandler) // ----------------------------- - // Health endpoint + // Health check + // ----------------------------- + mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) { + log.Printf("[HTTP] /health check from IP: %s\n", getIP(r)) + w.WriteHeader(http.StatusOK) + }) + + // ----------------------------- + // Root endpoint // ----------------------------- mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + log.Printf("[HTTP] / root requested from IP: %s\n", getIP(r)) w.WriteHeader(http.StatusOK) w.Write([]byte("TS6Viewer is running!")) }) diff --git a/internal/config/config.go b/internal/config/config.go index 91d282d..df5f06c 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -6,15 +6,19 @@ import ( ) type Config struct { - ServerPort string `json:"server_port"` - Theme string `json:"theme"` + ServerPort string `json:"server_port"` + HostConnectionLink string `json:"host_connection_link"` Teamspeak6 struct { - BaseURL string `json:"base_url"` - ApiKey string `json:"api_key"` - ServerID string `json:"server_id"` + Host string `json:"host"` + Port string `json:"port"` + User string `json:"user"` + Password string `json:"password"` + EnableVoiceStatus string `json:"enable_voice_status"` + ServerID string `json:"server_id"` } `json:"teamspeak6"` + Theme string `json:"theme"` RefreshInterval string `json:"refresh_interval"` } diff --git a/internal/domain/models.go b/internal/domain/models.go deleted file mode 100644 index dda520a..0000000 --- a/internal/domain/models.go +++ /dev/null @@ -1,69 +0,0 @@ -package domain - -type ChannelType int - -const ( - NormalChannel ChannelType = iota // Regular TS6 channel - SolidSpacer // ___ - DashSpacer // --- - DotSpacer // ... - DashDotSpacer // -.- - DashDotDotSpacer // -.. - AlignedSpacer // [cSpacer#], [lSpacer#], [rSpacer#] - RepeatingSpacer // [*spacer#]X - BlankSpacer // Empty spacer like [cSpacer0] -) - -type Aligned int - -const ( - AlignLeft Aligned = iota - AlignCenter - AlignRight -) - -type Channel struct { - ID string - ParentID string - Name string - Topic string - - Type ChannelType - Align Aligned - Repeat bool - - Children []*Channel - Clients []*FullClient -} - -type Client struct { - ID string - Nickname string - ChannelID string -} - -type ClientInfo struct { - MicMuted bool - OutputMuted bool - IsTalking bool -} - -type FullClient struct { - Client - Info *ClientInfo -} - -type Server struct { - Name string - ClientsOnline string - MaxClients string - UptimePretty string - ChannelsOnline string - HostBannerURL string - ClientConnections string -} - -type ViewerData struct { - Server *Server - ChannelTree []*Channel -} diff --git a/internal/mapper/api_to_domain.go b/internal/mapper/api_to_domain.go deleted file mode 100644 index 8bcfcc6..0000000 --- a/internal/mapper/api_to_domain.go +++ /dev/null @@ -1,58 +0,0 @@ -package mapper - -import ( - "ts6-viewer/internal/domain" - "ts6-viewer/internal/ts6" -) - -func MapAPIServer(server *ts6.ServerInfo) *domain.Server { - uptimePretty := domain.MakeUptimePretty(server.Uptime) - - return &domain.Server{ - Name: server.Name, - ClientsOnline: server.ClientsOnline, - MaxClients: server.MaxClients, - UptimePretty: uptimePretty, - ChannelsOnline: server.ChannelsOnline, - HostBannerURL: server.HostBannerURL, - ClientConnections: server.ClientConnections, - } -} - -func MapAPIChannel(api ts6.Channel) *domain.Channel { - chType, align, repeat, cleanName := domain.ParseChannelName(api.Name) - - return &domain.Channel{ - ID: api.CID, - ParentID: api.PID, - Name: cleanName, - Topic: api.Topic, - Type: chType, - Align: align, - Repeat: repeat, - } -} - -func MapAPIClient(c ts6.Client) *domain.Client { - return &domain.Client{ - ID: c.CLID, - Nickname: c.Nickname, - ChannelID: c.CID, - } -} - -func MapAPIClientInfo(info *ts6.ClientInfo) *domain.ClientInfo { - if info == nil { - return &domain.ClientInfo{ - MicMuted: false, - OutputMuted: false, - IsTalking: false, - } - } - - return &domain.ClientInfo{ - MicMuted: info.InputMuted == "1" || info.InputHardware == "1", - OutputMuted: info.OutputMuted == "1", - IsTalking: info.IsTalker == "1", - } -} diff --git a/internal/mapper/domain_to_api.go b/internal/mapper/domain_to_api.go deleted file mode 100644 index ebb604d..0000000 --- a/internal/mapper/domain_to_api.go +++ /dev/null @@ -1,59 +0,0 @@ -package mapper - -import ( - "ts6-viewer/internal/domain" - "ts6-viewer/internal/view" -) - -func MapServerToView(s *domain.Server) *view.ServerView { - return &view.ServerView{ - Name: s.Name, - ClientsOnline: s.ClientsOnline, - MaxClients: s.MaxClients, - UptimePretty: s.UptimePretty, - ChannelsOnline: s.ChannelsOnline, - HostBannerURL: s.HostBannerURL, - ClientConnections: s.ClientConnections, - } -} - -func MapClientToView(c *domain.FullClient) *view.ClientView { - v := &view.ClientView{ - Nickname: c.Nickname, - } - - if c.Info != nil { - v.MicMuted = c.Info.MicMuted - v.OutputMuted = c.Info.OutputMuted - v.IsTalking = c.Info.IsTalking - } - - return v -} - -func MapChannelToView(ch *domain.Channel) *view.ChannelView { - out := &view.ChannelView{ - Name: ch.Name, - Type: ch.Type, - Align: ch.Align, - Repeat: ch.Repeat, - } - - for _, c := range ch.Clients { - out.Clients = append(out.Clients, MapClientToView(c)) - } - - for _, child := range ch.Children { - out.Children = append(out.Children, MapChannelToView(child)) - } - - return out -} - -func MapChannelTreeToView(tree []*domain.Channel) []*view.ChannelView { - out := make([]*view.ChannelView, 0, len(tree)) - for _, ch := range tree { - out = append(out, MapChannelToView(ch)) - } - return out -} diff --git a/internal/ts6/channel.go b/internal/ts6/channel.go index 769c919..03ba577 100644 --- a/internal/ts6/channel.go +++ b/internal/ts6/channel.go @@ -2,47 +2,108 @@ package ts6 import ( "fmt" + "strings" + "ts6-viewer/internal/config" ) -// Channel represents a TeamSpeak channel type Channel struct { - CID string `json:"cid"` - PID string `json:"pid"` - ChannelOrder string `json:"channel_order"` - Name string `json:"channel_name"` - Topic string `json:"channel_topic"` - FlagPermanent string `json:"channel_flag_permanent"` - FlagSemiPermanent string `json:"channel_flag_semi_permanent"` - FlagDefault string `json:"channel_flag_default"` - FlagPassword string `json:"channel_flag_password"` - MaxClients string `json:"channel_maxclients"` - MaxFamilyClients string `json:"channel_maxfamilyclients"` - NeededTalkPower string `json:"channel_needed_talk_power"` + CID string + PID string + ChannelOrder string + Name string + Topic string + FlagPermanent string + FlagSemiPermanent string + FlagDefault string + FlagPassword string + FlagMaxClientsUnlimited string + FlagMaxFamilyClientsUnlimited string + MaxClients string + MaxFamilyClients string + NeededTalkPower string + Codec string + CodecQuality string + TotalClients string + IconID string + SecondsEmpty string } -// ChannelListResponse represents the TS6 API response -type ChannelListResponse struct { - Body []Channel `json:"body"` - Status Status `json:"status"` -} +// GetChannelList retrieves all channels using ServerQuery (SSH) +func GetChannelList(cfg *config.Config, ssh *SSHClient) ([]Channel, error) { -// GetChannelList returns all channels for a virtual server -func GetChannelList(baseURL, apiKey string, serverID string) ([]Channel, error) { - var resp ChannelListResponse - - err := doGET( - baseURL, - apiKey, - fmt.Sprintf("/%s/channellist", serverID), - &resp, - ) + raw, err := ssh.exec("channellist -topic -flags -limits -voice -icon -secondsempty") if err != nil { - return nil, err + return nil, fmt.Errorf("failed to execute channellist: %w", err) } - if resp.Status.Code != 0 { - return nil, fmt.Errorf("ts6 error %d: %s", resp.Status.Code, resp.Status.Message) + parts := strings.Split(strings.TrimSpace(raw), "|") + channels := make([]Channel, 0, len(parts)) + + for _, p := range parts { + + fields := strings.Fields(p) + ch := Channel{} + + for _, f := range fields { + if !strings.Contains(f, "=") { + continue + } + + kv := strings.SplitN(f, "=", 2) + key := kv[0] + val := UnescapeTS6(kv[1]) + + switch key { + + case "cid": + ch.CID = val + case "pid": + ch.PID = val + case "channel_order": + ch.ChannelOrder = val + case "channel_name": + ch.Name = val + case "channel_topic": + ch.Topic = val + + case "channel_flag_permanent": + ch.FlagPermanent = val + case "channel_flag_semi_permanent": + ch.FlagSemiPermanent = val + case "channel_flag_default": + ch.FlagDefault = val + case "channel_flag_password": + ch.FlagPassword = val + case "channel_flag_maxclients_unlimited": + ch.FlagMaxClientsUnlimited = val + case "channel_flag_maxfamilyclients_unlimited": + ch.FlagMaxFamilyClientsUnlimited = val + + case "channel_maxclients": + ch.MaxClients = val + case "channel_maxfamilyclients": + ch.MaxFamilyClients = val + + case "channel_needed_talk_power": + ch.NeededTalkPower = val + + case "channel_codec": + ch.Codec = val + case "channel_codec_quality": + ch.CodecQuality = val + case "total_clients": + ch.TotalClients = val + + case "channel_icon_id": + ch.IconID = val + + case "seconds_empty": + ch.SecondsEmpty = val + } + } + + channels = append(channels, ch) } - return resp.Body, nil + return channels, nil } diff --git a/internal/ts6/client.go b/internal/ts6/client.go index 98edb82..d913343 100644 --- a/internal/ts6/client.go +++ b/internal/ts6/client.go @@ -1,57 +1,136 @@ package ts6 import ( - "encoding/json" "fmt" + "strings" + "ts6-viewer/internal/config" ) -// Client represents an online TeamSpeak client type Client struct { - CID string `json:"cid"` - CLID string `json:"clid"` - DatabaseID string `json:"client_database_id"` - Nickname string `json:"client_nickname"` - ClientType string `json:"client_type"` + CLID string + CID string + DatabaseID string + Nickname string + Type string + UniqueIdentifier string + + Away string + AwayMessage string + + InputMuted string + OutputMuted string + OutputOnlyMuted string + InputHardware string + OutputHardware string + TalkPower string + IsTalking string + + ServerGroups string + ChannelGroupID string + + IdleTime string + ConnectionTime string + + Country string + IconID string + + Version string + Platform string } -// ClientListResponse represents the TS6 API response -type ClientListResponse struct { - Body []Client `json:"body"` - Status Status `json:"status"` -} +func GetClientList(cfg *config.Config, ssh *SSHClient) ([]Client, error) { -// GetClientList returns all connected clients for a virtual server -func GetClientList(baseURL, apiKey string, serverID string) ([]Client, error) { - var raw map[string]any + voiceCmd := "" + if cfg.Teamspeak6.EnableVoiceStatus == "true" { + voiceCmd = "-voice" + } - err := doGET( - baseURL, - apiKey, - fmt.Sprintf("/%s/clientlist", serverID), - &raw, - ) + raw, err := ssh.exec("clientlist -uid -away -groups -times -info -country -icon " + voiceCmd) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to execute clientlist: %w", err) } - var resp ClientListResponse - b, _ := json.Marshal(raw) - json.Unmarshal(b, &resp) + parts := strings.Split(strings.TrimSpace(raw), "|") + clients := make([]Client, 0, len(parts)) - if resp.Status.Code != 0 { - return nil, fmt.Errorf( - "ts6 error %d: %s", - resp.Status.Code, - resp.Status.Message, - ) - } + for _, p := range parts { - filtered := make([]Client, 0, len(resp.Body)) - for _, c := range resp.Body { - if c.DatabaseID != "1" { - filtered = append(filtered, c) + fields := strings.Fields(p) + cl := Client{} + + for _, f := range fields { + if !strings.Contains(f, "=") { + continue + } + + kv := strings.SplitN(f, "=", 2) + key := kv[0] + val := UnescapeTS6(kv[1]) + + switch key { + + case "clid": + cl.CLID = val + case "cid": + cl.CID = val + case "client_database_id": + cl.DatabaseID = val + case "client_nickname": + cl.Nickname = val + case "client_type": + cl.Type = val + case "client_unique_identifier": + cl.UniqueIdentifier = val + + case "client_away": + cl.Away = val + case "client_away_message": + cl.AwayMessage = val + + case "client_input_muted": + cl.InputMuted = val + case "client_output_muted": + cl.OutputMuted = val + case "client_outputonly_muted": + cl.OutputOnlyMuted = val + case "client_input_hardware": + cl.InputHardware = val + case "client_output_hardware": + cl.OutputHardware = val + case "client_talk_power": + cl.TalkPower = val + case "client_is_talking": + cl.IsTalking = val + + case "client_servergroups": + cl.ServerGroups = val + case "client_channel_group_id": + cl.ChannelGroupID = val + + case "client_idle_time": + cl.IdleTime = val + case "client_connection_connected_time": + cl.ConnectionTime = val + + case "client_country": + cl.Country = val + case "client_icon_id": + cl.IconID = val + + case "client_version": + cl.Version = val + case "client_platform": + cl.Platform = val + } } + + // Query Clients rausfiltern + if cl.Type == "1" { + continue + } + + clients = append(clients, cl) } - return filtered, nil + return clients, nil } diff --git a/internal/ts6/clientInfo.go b/internal/ts6/clientInfo.go deleted file mode 100644 index cb33ded..0000000 --- a/internal/ts6/clientInfo.go +++ /dev/null @@ -1,53 +0,0 @@ -package ts6 - -import ( - "encoding/json" - "fmt" -) - -type ClientInfo struct { - CID string `json:"cid"` - CLID string `json:"clid"` - DatabaseID string `json:"client_database_id"` - Nickname string `json:"client_nickname"` - ClientType string `json:"client_type"` - - InputMuted string `json:"client_input_muted"` - InputHardware string `json:"client_input_hardware"` - OutputMuted string `json:"client_output_muted"` - OutputOnlyMuted string `json:"client_outputonly_muted"` - IsTalker string `json:"client_is_talker"` -} - -type ClientInfoResponse struct { - Body ClientInfo `json:"body"` - Status Status `json:"status"` -} - -func GetClientInfo(baseURL, apiKey, serverID, clid string) (*ClientInfo, error) { - var raw map[string]any - - err := doGET( - baseURL, - apiKey, - fmt.Sprintf("/%s/clientinfo?clid=%s", serverID, clid), - &raw, - ) - if err != nil { - return nil, err - } - - var resp ClientInfoResponse - b, _ := json.Marshal(raw) - json.Unmarshal(b, &resp) - - if resp.Status.Code != 0 { - return nil, fmt.Errorf( - "ts6 error %d: %s", - resp.Status.Code, - resp.Status.Message, - ) - } - - return &resp.Body, nil -} diff --git a/internal/ts6/http.go b/internal/ts6/http.go deleted file mode 100644 index 910e640..0000000 --- a/internal/ts6/http.go +++ /dev/null @@ -1,35 +0,0 @@ -package ts6 - -import ( - "encoding/json" - "fmt" - "net/http" - "time" -) - -// doGET performs an authenticated HTTP GET request against TS6 -func doGET(baseURL, apiKey, path string, out any) error { - req, err := http.NewRequest(http.MethodGet, baseURL+path, nil) - if err != nil { - return err - } - - req.Header.Set("x-api-key", apiKey) - req.Header.Set("Accept", "application/json") - - client := &http.Client{ - Timeout: 10 * time.Second, - } - - resp, err := client.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return fmt.Errorf("http error: %s", resp.Status) - } - - return json.NewDecoder(resp.Body).Decode(out) -} diff --git a/internal/ts6/serverinfo.go b/internal/ts6/serverinfo.go index 362b4ac..109a2db 100644 --- a/internal/ts6/serverinfo.go +++ b/internal/ts6/serverinfo.go @@ -3,67 +3,77 @@ package ts6 import ( "fmt" "strconv" + "strings" + "ts6-viewer/internal/config" ) -// ServerInfo represents basic virtual server information type ServerInfo struct { - ServerID string `json:"virtualserver_id"` - Name string `json:"virtualserver_name"` - Uptime string `json:"virtualserver_uptime"` - ClientsOnline string `json:"virtualserver_clientsonline"` - MaxClients string `json:"virtualserver_maxclients"` - ChannelsOnline string `json:"virtualserver_channelsonline"` - HostBannerURL string `json:"virtualserver_hostbanner_url"` - HostBannerGfxURL string `json:"virtualserver_hostbanner_gfx_url"` - NeededIdentitySecurity string `json:"virtualserver_needed_identity_security_level"` - QueryClientConnections string `json:"virtualserver_query_client_connections"` - ClientConnections string `json:"virtualserver_client_connections"` + ServerID string + Name string + Uptime string + ClientsOnline string + MaxClients string + ChannelsOnline string + HostBannerURL string + HostBannerGfxURL string + NeededIdentitySecurity string + QueryClientConnections string + ClientConnections string } -// ServerInfoResponse represents the TS6 API response -type ServerInfoResponse struct { - Body []ServerInfo `json:"body"` - Status Status `json:"status"` -} - -// GetServerInfo retrieves information about a virtual server -func GetServerInfo(baseURL, apiKey string, serverID string) (*ServerInfo, error) { - var resp ServerInfoResponse - - err := doGET( - baseURL, - apiKey, - fmt.Sprintf("/%s/serverinfo", serverID), - &resp, - ) +func GetServerInfo(cfg *config.Config, c *SSHClient) (*ServerInfo, error) { + raw, err := c.exec("serverinfo") if err != nil { - return nil, err + return nil, fmt.Errorf("failed to execute serverinfo: %w", err) } - if resp.Status.Code != 0 { - return nil, fmt.Errorf( - "ts6 error %d: %s", - resp.Status.Code, - resp.Status.Message, - ) - } + blocks := strings.Split(raw, "|") + first := strings.TrimSpace(blocks[0]) + fields := strings.Fields(first) - if len(resp.Body) != 1 { - return nil, fmt.Errorf( - "unexpected serverinfo result count: %d", - len(resp.Body), - ) - } + info := &ServerInfo{} - info := resp.Body[0] + for _, f := range fields { + if !strings.Contains(f, "=") { + continue + } + + kv := strings.SplitN(f, "=", 2) + key := kv[0] + val := UnescapeTS6(kv[1]) + + switch key { + case "virtualserver_id": + info.ServerID = val + case "virtualserver_name": + info.Name = val + case "virtualserver_uptime": + info.Uptime = val + case "virtualserver_clientsonline": + info.ClientsOnline = val + case "virtualserver_maxclients": + info.MaxClients = val + case "virtualserver_channelsonline": + info.ChannelsOnline = val + case "virtualserver_hostbanner_url": + info.HostBannerURL = val + case "virtualserver_hostbanner_gfx_url": + info.HostBannerGfxURL = val + case "virtualserver_needed_identity_security_level": + info.NeededIdentitySecurity = val + case "virtualserver_query_client_connections": + info.QueryClientConnections = val + case "virtualserver_client_connections": + info.ClientConnections = val + } + } if n, err := strconv.Atoi(info.ClientsOnline); err == nil { - n-- - if n < 0 { - n = 0 + if n > 0 { + n-- } info.ClientsOnline = strconv.Itoa(n) } - return &info, nil + return info, nil } diff --git a/internal/ts6/ssh.go b/internal/ts6/ssh.go new file mode 100644 index 0000000..f9d4826 --- /dev/null +++ b/internal/ts6/ssh.go @@ -0,0 +1,421 @@ +package ts6 + +import ( + "bufio" + "fmt" + "io" + "log" + "math/rand" + "net" + "regexp" + "strconv" + "strings" + "sync" + "time" + + "ts6-viewer/internal/config" + + "golang.org/x/crypto/ssh" +) + +// SSHClient represents a persistent SSH ServerQuery connection. +type SSHClient struct { + cfg *config.Config + serverID string + + ssh *ssh.Client + session *ssh.Session + stdin io.WriteCloser + reader *bufio.Reader + + mu sync.Mutex // protects command execution and reconnect +} + +var ( + globalClient *SSHClient + globalMu sync.Mutex + + floodWaitRegex = regexp.MustCompile(`wait (\d+)ms`) + errIDRegex = regexp.MustCompile(`^error id=(\d+)`) +) + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +// GetPersistentClient returns a singleton SSH connection. +func GetPersistentClient(cfg *config.Config, serverID string) (*SSHClient, error) { + globalMu.Lock() + defer globalMu.Unlock() + + if globalClient != nil && !globalClient.IsClosed() { + log.Println("[SSH] Reusing existing persistent connection") + return globalClient, nil + } + + log.Println("[SSH] Creating new persistent SSH connection") + + client, err := newSSHClientWithUse(cfg, serverID) + if err != nil { + log.Printf("[SSH] Connection creation failed: %v\n", err) + return nil, err + } + + globalClient = client + log.Println("[SSH] Persistent SSH connection established") + + return globalClient, nil +} + +// newSSHClientWithUse establishes a new SSH connection and selects the server. +func newSSHClientWithUse(cfg *config.Config, serverID string) (*SSHClient, error) { + client, err := newSSHClientBase(cfg) + if err != nil { + return nil, err + } + + if err := client.Use(serverID); err != nil { + client.Close() + return nil, err + } + + client.cfg = cfg + client.serverID = serverID + + go client.keepAlive() + + return client, nil +} + +// Use selects the virtual server by ID. +func (c *SSHClient) Use(serverID string) error { + c.mu.Lock() + defer c.mu.Unlock() + + if c.IsClosed() { + return fmt.Errorf("ssh connection is closed") + } + + log.Printf("[SSH] Selecting virtual server: %s\n", serverID) + + _, err := c.stdin.Write([]byte(fmt.Sprintf("use %s\n", serverID))) + if err != nil { + return fmt.Errorf("failed to send use command: %w", err) + } + + timeout := time.After(5 * time.Second) + + for { + select { + case <-timeout: + return fmt.Errorf("timeout while waiting for use response") + default: + line, err := c.reader.ReadString('\n') + if err != nil { + return fmt.Errorf("failed to read use response: %w", err) + } + + line = strings.TrimSpace(line) + + if strings.HasPrefix(line, "error id=") { + if line != "error id=0 msg=ok" { + return fmt.Errorf("use command failed: %s", line) + } + log.Println("[SSH] Virtual server selected successfully") + return nil + } + } + } +} + +// newSSHClientBase creates a raw SSH connection and performs login. +func newSSHClientBase(cfg *config.Config) (*SSHClient, error) { + host := cfg.Teamspeak6.Host + port := cfg.Teamspeak6.Port + user := cfg.Teamspeak6.User + password := cfg.Teamspeak6.Password + + addr := net.JoinHostPort(host, port) + + log.Printf("[SSH] Connecting to %s\n", addr) + + sshConfig := &ssh.ClientConfig{ + User: user, + Auth: []ssh.AuthMethod{ssh.Password(password)}, + HostKeyCallback: ssh.InsecureIgnoreHostKey(), + Timeout: 10 * time.Second, + } + + dialer := &net.Dialer{ + Timeout: 10 * time.Second, + KeepAlive: 30 * time.Second, + } + + rawConn, err := dialer.Dial("tcp", addr) + if err != nil { + log.Printf("[SSH] TCP dial failed: %v\n", err) + return nil, err + } + + sshConn, chans, reqs, err := ssh.NewClientConn(rawConn, addr, sshConfig) + if err != nil { + rawConn.Close() + log.Printf("[SSH] SSH handshake failed: %v\n", err) + return nil, err + } + + client := ssh.NewClient(sshConn, chans, reqs) + + session, err := client.NewSession() + if err != nil { + client.Close() + return nil, err + } + + stdin, err := session.StdinPipe() + if err != nil { + client.Close() + return nil, err + } + + stdout, err := session.StdoutPipe() + if err != nil { + client.Close() + return nil, err + } + + if err := session.Shell(); err != nil { + client.Close() + return nil, err + } + + c := &SSHClient{ + ssh: client, + session: session, + stdin: stdin, + reader: bufio.NewReader(stdout), + } + + log.Println("[SSH] Waiting for welcome message") + + for { + line, err := c.reader.ReadString('\n') + if err != nil { + c.Close() + return nil, err + } + if strings.Contains(line, "Welcome") || strings.Contains(line, "TS3") { + break + } + } + + log.Println("[SSH] Sending login command") + + if _, err := c.stdin.Write([]byte(fmt.Sprintf("login %s %s\n", user, password))); err != nil { + c.Close() + return nil, err + } + + for { + line, err := c.reader.ReadString('\n') + if err != nil { + c.Close() + return nil, err + } + line = strings.TrimSpace(line) + if strings.HasPrefix(line, "error id=") { + if line != "error id=0 msg=ok" { + c.Close() + return nil, fmt.Errorf("login failed: %s", line) + } + break + } + } + + log.Printf("[SSH] Login successful to %s\n", addr) + + return c, nil +} + +// keepAlive sends periodic version commands to prevent idle timeout. +func (c *SSHClient) keepAlive() { + ticker := time.NewTicker(30 * time.Second) + defer ticker.Stop() + + for range ticker.C { + if c.IsClosed() { + return + } + log.Println("[SSH] Sending keepalive ping") + _, err := c.Exec("version") + if err != nil { + log.Printf("[SSH] Keepalive failed: %v. Attempting reconnect\n", err) + _ = c.reconnect() + } + } +} + +// Exec executes a ServerQuery command safely. +func (c *SSHClient) Exec(cmd string) (string, error) { + c.mu.Lock() + defer c.mu.Unlock() + + log.Printf("[SSH] Executing command: %s\n", cmd) + return c.execSafe(cmd) +} + +// exec sends a raw command and reads the response. +func (c *SSHClient) exec(cmd string) (string, error) { + _, err := c.stdin.Write([]byte(cmd + "\n")) + if err != nil { + return "", err + } + + var lines []string + var last string + + for { + line, err := c.reader.ReadString('\n') + if err != nil { + return "", err + } + line = strings.TrimSpace(line) + lines = append(lines, line) + last = line + if strings.HasPrefix(line, "error id=") { + break + } + } + + raw := strings.Join(lines, "\n") + + if strings.HasPrefix(last, "error id=") && last != "error id=0 msg=ok" { + return raw, fmt.Errorf("%s", last) + } + + return raw, nil +} + +// execSafe handles flood and reconnect logic. +func (c *SSHClient) execSafe(cmd string) (string, error) { + const ( + maxFloodRetries = 5 + maxReconnects = 2 + maxWaitMs = 10000 + jitterMs = 250 + ) + + floodRetries := 0 + reconnects := 0 + + for { + raw, err := c.exec(cmd) + if err == nil { + return raw, nil + } + + if m := errIDRegex.FindStringSubmatch(err.Error()); len(m) == 2 { + id, _ := strconv.Atoi(m[1]) + if id == 524 { + wait := 1000 + if match := floodWaitRegex.FindStringSubmatch(err.Error()); len(match) == 2 { + if ms, convErr := strconv.Atoi(match[1]); convErr == nil { + wait = ms + } + } + + backoff := wait * (1 << floodRetries) + if backoff > maxWaitMs { + backoff = maxWaitMs + } + + jitter := rand.Intn(jitterMs + 1) + sleepMs := backoff + jitter + + log.Printf("[SSH] Flood detected. Backing off %d ms\n", sleepMs) + + time.Sleep(time.Duration(sleepMs) * time.Millisecond) + + floodRetries++ + if floodRetries >= maxFloodRetries { + if reconnects >= maxReconnects { + return "", fmt.Errorf("max flood retries reached: %w", err) + } + log.Println("[SSH] Flood retry limit reached. Reconnecting") + c.Close() + time.Sleep(300 * time.Millisecond) + _ = c.reconnect() + floodRetries = 0 + reconnects++ + } + continue + } + return raw, err + } + + if isConnectionError(err) { + if reconnects >= maxReconnects { + return "", err + } + log.Printf("[SSH] Connection error detected: %v. Reconnecting\n", err) + c.Close() + time.Sleep(300 * time.Millisecond) + _ = c.reconnect() + reconnects++ + continue + } + + return "", err + } +} + +// reconnect recreates the SSH connection. +func (c *SSHClient) reconnect() error { + globalMu.Lock() + defer globalMu.Unlock() + + log.Println("[SSH] Attempting reconnect") + + if c.cfg == nil { + return fmt.Errorf("missing configuration for reconnect") + } + + newClient, err := newSSHClientWithUse(c.cfg, c.serverID) + if err != nil { + log.Printf("[SSH] Reconnect failed: %v\n", err) + return err + } + + globalClient = newClient + log.Println("[SSH] Reconnect successful") + + return nil +} + +// isConnectionError detects network-level failures. +func isConnectionError(err error) bool { + msg := strings.ToLower(err.Error()) + return strings.Contains(msg, "eof") || + strings.Contains(msg, "broken pipe") || + strings.Contains(msg, "connection reset") || + strings.Contains(msg, "use of closed network connection") +} + +// IsClosed checks whether the client is closed. +func (c *SSHClient) IsClosed() bool { + return c == nil || c.ssh == nil +} + +// Close terminates the SSH session. +func (c *SSHClient) Close() { + log.Println("[SSH] Closing SSH connection") + + if c.session != nil { + _ = c.session.Close() + c.session = nil + } + if c.ssh != nil { + _ = c.ssh.Close() + c.ssh = nil + } +} diff --git a/internal/ts6/status.go b/internal/ts6/status.go deleted file mode 100644 index 3f856d2..0000000 --- a/internal/ts6/status.go +++ /dev/null @@ -1,7 +0,0 @@ -package ts6 - -// Status represents the standard TS6 API status block -type Status struct { - Code int `json:"code"` - Message string `json:"message"` -} diff --git a/internal/ts6/utilities.go b/internal/ts6/utilities.go new file mode 100644 index 0000000..8f9a308 --- /dev/null +++ b/internal/ts6/utilities.go @@ -0,0 +1,22 @@ +package ts6 + +import ( + "strings" +) + +func UnescapeTS6(s string) string { + replacer := strings.NewReplacer( + `\s`, " ", + `\p`, "|", + `\/`, "/", + `\:`, ":", + `\.`, ".", + `\(`, "(", + `\)`, ")", + `\?`, "?", + `\!`, "!", + `\-`, "-", + `\_`, "_", + ) + return replacer.Replace(s) +} diff --git a/internal/view/models.go b/internal/view/models.go deleted file mode 100644 index 5962a44..0000000 --- a/internal/view/models.go +++ /dev/null @@ -1,40 +0,0 @@ -package view - -import ( - "ts6-viewer/internal/domain" -) - -type ViewerData struct { - Server *ServerView - ChannelTree []*ChannelView - Theme string - RefreshInterval string -} - -type ServerView struct { - Name string - ClientsOnline string - MaxClients string - UptimePretty string - ChannelsOnline string - HostBannerURL string - ClientConnections string -} - -type ClientView struct { - Nickname string - Platform string - Version string - MicMuted bool - OutputMuted bool - IsTalking bool -} - -type ChannelView struct { - Name string - Type domain.ChannelType - Align domain.Aligned - Repeat bool - Clients []*ClientView - Children []*ChannelView -} diff --git a/internal/domain/domain.go b/internal/view/utilities.go similarity index 71% rename from internal/domain/domain.go rename to internal/view/utilities.go index 0008f41..414230c 100644 --- a/internal/domain/domain.go +++ b/internal/view/utilities.go @@ -1,4 +1,4 @@ -package domain +package view import ( "fmt" @@ -9,7 +9,6 @@ import ( var reCmd = regexp.MustCompile(`(?i)\[([clr]|\*)?spacer([^\]]*?)\]`) -// ParseChannelName parses TeamSpeak spacer syntax. func ParseChannelName(name string) (ChannelType, Aligned, bool, string) { name = strings.TrimSpace(name) @@ -73,27 +72,3 @@ func MakeUptimePretty(secondsStr string) string { return fmt.Sprintf("%dD %02d:%02d:%02d", days, hours, minutes, seconds) } - -func BuildChannelTree(channels []*Channel, clients []*FullClient) []*Channel { - lookup := make(map[string]*Channel) - for _, ch := range channels { - lookup[ch.ID] = ch - } - - for _, cl := range clients { - if ch, ok := lookup[cl.ChannelID]; ok { - ch.Clients = append(ch.Clients, cl) - } - } - - var roots []*Channel - for _, ch := range channels { - if ch.ParentID == "0" { - roots = append(roots, ch) - } else if parent, ok := lookup[ch.ParentID]; ok { - parent.Children = append(parent.Children, ch) - } - } - - return roots -} diff --git a/internal/view/vm-builder.go b/internal/view/vm-builder.go new file mode 100644 index 0000000..35af5b5 --- /dev/null +++ b/internal/view/vm-builder.go @@ -0,0 +1,98 @@ +package view + +import ( + "sort" + "strconv" + "ts6-viewer/internal/config" + "ts6-viewer/internal/ts6" +) + +type ChannelType int + +const ( + NormalChannel ChannelType = iota // Regular TS6 channel + SolidSpacer // ___ + DashSpacer // --- + DotSpacer // ... + DashDotSpacer // -.- + DashDotDotSpacer // -.. + AlignedSpacer // [cSpacer#], [lSpacer#], [rSpacer#] + RepeatingSpacer // [*spacer#]X + BlankSpacer // Empty spacer like [cSpacer0] +) + +type Aligned int + +const ( + AlignLeft Aligned = iota + AlignCenter + AlignRight +) + +func BuildVMChannels(channels []ts6.Channel, clients []ts6.Client) []*VMChannel { + // Channels + viewMap := make(map[string]*VMChannel) + for _, ch := range channels { + viewMap[ch.CID] = BuildVMChannel(ch) + } + + // Clients + for _, c := range clients { + if vch, ok := viewMap[c.CID]; ok { + vch.Clients = append(vch.Clients, BuildVMClient(c)) + } + } + + // Sort clients in each channel alphabetically + for _, vch := range viewMap { + sort.Slice(vch.Clients, func(i, j int) bool { + return vch.Clients[i].Nickname < vch.Clients[j].Nickname + }) + } + + // Build tree + var roots []*VMChannel + for _, ch := range channels { + vch := viewMap[ch.CID] + if ch.PID == "0" { + roots = append(roots, vch) + } else if parent, ok := viewMap[ch.PID]; ok { + parent.Children = append(parent.Children, vch) + } + } + + return roots +} + +func BuildVMServer(cfg *config.Config, info *ts6.ServerInfo, clients []ts6.Client) *VMServer { + return &VMServer{ + Name: info.Name, + ClientsOnline: strconv.Itoa(len(clients)), + MaxClients: info.MaxClients, + UptimePretty: MakeUptimePretty(info.Uptime), + ChannelsOnline: info.ChannelsOnline, + HostBannerURL: info.HostBannerURL, + HostConnectionLink: cfg.HostConnectionLink, + ClientConnections: info.ClientConnections, + } +} + +func BuildVMChannel(ch ts6.Channel) *VMChannel { + chType, align, repeat, cleanName := ParseChannelName(ch.Name) + + return &VMChannel{ + Name: cleanName, + Type: chType, + Align: align, + Repeat: repeat, + } +} + +func BuildVMClient(c ts6.Client) *VMClient { + return &VMClient{ + Nickname: c.Nickname, + MicMuted: c.InputMuted == "1" || c.InputHardware == "0", + OutputMuted: c.OutputMuted == "1", + IsTalking: c.IsTalking == "1", + } +} diff --git a/internal/view/vm.go b/internal/view/vm.go new file mode 100644 index 0000000..e53229f --- /dev/null +++ b/internal/view/vm.go @@ -0,0 +1,37 @@ +package view + +type VMTS6Viewer struct { + VMServer *VMServer + VMChannels []*VMChannel + Theme string + RefreshInterval string +} + +type VMServer struct { + Name string + ClientsOnline string + MaxClients string + UptimePretty string + ChannelsOnline string + HostBannerURL string + HostConnectionLink string + ClientConnections string +} + +type VMClient struct { + Nickname string + Platform string + Version string + MicMuted bool + OutputMuted bool + IsTalking bool +} + +type VMChannel struct { + Name string + Type ChannelType + Align Aligned + Repeat bool + Clients []*VMClient + Children []*VMChannel +} diff --git a/internal/web/static/dark.css b/internal/web/static/dark.css index 68e6b22..163e732 100644 --- a/internal/web/static/dark.css +++ b/internal/web/static/dark.css @@ -58,14 +58,14 @@ h1, h2 { white-space: nowrap; } -.banner-url { +.banner-url, .host-connection-link { display: block; width: 100%; text-align: center; padding: 4px 0; } -.banner-url a { +.banner-url a, .host-connection-link a { display: inline-block; color: #6aa9ff; text-decoration: none; @@ -106,15 +106,36 @@ h1, h2 { padding-left: 26px; } -.status-dot { - position: absolute; - left: 10px; - top: 50%; - transform: translateY(-50%); - width: 12px; - height: 12px; - background-color: #4CAF50; - border-radius: 50%; +.status-online { + color: #4CAF50; + margin-right: 6px; + font-size: 12px; + padding-left: 1px; + padding-right: 0.5px; +} + +.status-mic { + color: #888; + margin-right: 6px; + font-size: 12px; +} + +.status-mic::before { + color: #d9534f; +} + +.status-audio { + color: #888; + margin-right: 6px; + font-size: 12px; +} + +.status-audio::before { + color: #d9534f; +} + +.client-name { + vertical-align: middle; } .spacer { @@ -132,9 +153,9 @@ h1, h2 { line-height: 16px; } -.spacer-left { text-align: left; } +.spacer-left { text-align: left; } .spacer-center { text-align: center; } -.spacer-right { text-align: right; } +.spacer-right { text-align: right; } .blank-spacer { height: 16px; @@ -166,11 +187,6 @@ h1, h2 { } @media (max-width: 600px) { - .status-dot { - width: 12px; - height: 12px; - } - .server-info { max-width: 90%; font-size: 16px; diff --git a/internal/web/static/light.css b/internal/web/static/light.css index f7fc85c..c22e518 100644 --- a/internal/web/static/light.css +++ b/internal/web/static/light.css @@ -63,14 +63,14 @@ h1, h2 { white-space: nowrap; } -.banner-url { +.banner-url, .host-connection-link { display: block; width: 100%; text-align: center; padding: 4px 0; } -.banner-url a { +.banner-url a, .host-connection-link a { display: inline-block; color: #6aa9ff; text-decoration: none; @@ -106,15 +106,36 @@ h1, h2 { padding-left: 26px; } -.status-dot { - position: absolute; - left: 10px; - top: 50%; - transform: translateY(-50%); - width: 12px; - height: 12px; - background-color: #4CAF50; - border-radius: 50%; +.status-online { + color: #4CAF50; + margin-right: 6px; + font-size: 12px; + padding-left: 1px; + padding-right: 0.5px; +} + +.status-mic { + color: #777; + margin-right: 6px; + font-size: 12px; +} + +.status-mic::before { + color: #d9534f; +} + +.status-audio { + color: #777; + margin-right: 6px; + font-size: 12px; +} + +.status-audio::before { + color: #d9534f; +} + +.client-name { + vertical-align: middle; } .spacer { @@ -132,9 +153,9 @@ h1, h2 { line-height: 16px; } -.spacer-left { text-align: left; } +.spacer-left { text-align: left; } .spacer-center { text-align: center; } -.spacer-right { text-align: right; } +.spacer-right { text-align: right; } .blank-spacer { height: 16px; @@ -166,11 +187,6 @@ h1, h2 { } @media (max-width: 600px) { - .status-dot { - width: 12px; - height: 12px; - } - .server-info { max-width: 90%; font-size: 16px; diff --git a/internal/web/static/ts6viewer.js b/internal/web/static/ts6viewer.js index deee978..83e2567 100644 --- a/internal/web/static/ts6viewer.js +++ b/internal/web/static/ts6viewer.js @@ -31,7 +31,7 @@ setInterval(() => { counter = refreshTime; refreshText.textContent = counter; sessionStorage.setItem("refreshCounter", counter); - fetchViewerData(); + fetchViewerData(true); } }, 1000); @@ -111,41 +111,64 @@ function debug(msg) { box.innerHTML += msg + "
"; } - // ========================================== // Fetch viewer data from backend // ========================================== -async function fetchViewerData() { +async function fetchViewerData(force = false) { + const url = force ? "/ts6viewer/data?force=1" : "/ts6viewer/data"; + try { - const response = await fetch("/ts6viewer/data"); + const response = await fetch(url); const data = await response.json(); - updateServerInfo(data.Server); - updateChannelTree(data.ChannelTree); - + updateServerInfo(data.VMServer); + updateChannelTree(data.VMChannels); updateAllSpacers(); } catch (err) { console.error("Polling error:", err); } } - // ========================================== // Update server info box // ========================================== -function updateServerInfo(server) { - document.querySelector(".server-info").innerHTML = ` -

${server.Name}

+function updateServerInfo(vmServer) { + let bannerHtml = ""; + if (vmServer.HostBannerURL && vmServer.HostBannerURL.trim() !== "") { + bannerHtml = ` +
`; + } -
User: ${server.ClientsOnline} / ${server.MaxClients}
-
Client Connections: ${server.ClientConnections}
-
Uptime: ${server.UptimePretty}
-
ChannelsOnline: ${server.ChannelsOnline}
- + let serverNameHtml = ""; + if (vmServer.HostConnectionLink && vmServer.HostConnectionLink.trim() !== "") { + serverNameHtml = ` +

+ + ${vmServer.Name} + +

`; + } else { + serverNameHtml = `

${vmServer.Name}

`; + } + + document.querySelector(".server-info").innerHTML = ` + ${serverNameHtml} + +
User: ${vmServer.ClientsOnline} / ${vmServer.MaxClients}
+
Client Connections: ${vmServer.ClientConnections}
+
Uptime: ${vmServer.UptimePretty}
+
ChannelsOnline: ${vmServer.ChannelsOnline}
+ + ${bannerHtml} `; } - // ========================================== // Render channel tree // ========================================== @@ -188,13 +211,25 @@ function renderChannel(ch) { } html += '>' + ch.Name + ''; - + if (ch.Clients && ch.Clients.length > 0) { html += '
'; for (const c of ch.Clients) { - html += '
' + - c.Nickname + + let icon = ''; + + if (c.OutputMuted) { + icon = ''; + } else if (c.MicMuted) { + icon = ''; + } else { + icon = ''; + } + + html += '
' + + icon + + '' + c.Nickname + '' + '
'; + } html += '
'; } @@ -210,7 +245,6 @@ function renderChannel(ch) { return html; } - // ========================================== // Initial load // ========================================== diff --git a/internal/web/templates/ts6viewer.html b/internal/web/templates/ts6viewer.html index 88ccb17..301637d 100644 --- a/internal/web/templates/ts6viewer.html +++ b/internal/web/templates/ts6viewer.html @@ -36,7 +36,11 @@ - + @@ -46,17 +50,31 @@
-

{{.Server.Name}}

+ {{ if .VMServer.HostConnectionLink }} +

+ + {{ .VMServer.Name }} + +

+ {{ else }} +

{{ .VMServer.Name }}

+ {{ end }} -
User: {{.Server.ClientsOnline}} / {{.Server.MaxClients}}
-
Client Connections: {{.Server.ClientConnections}}
-
Uptime: {{.Server.UptimePretty}}
-
ChannelsOnline: {{.Server.ChannelsOnline}}
- +
User: {{.VMServer.ClientsOnline}} / {{.VMServer.MaxClients}}
+
Client Connections: {{.VMServer.ClientConnections}}
+
Uptime: {{.VMServer.UptimePretty}}
+
ChannelsOnline: {{.VMServer.ChannelsOnline}}
+ {{ if .VMServer.HostBannerURL }} + + {{ end }}
- {{range .ChannelTree}} + {{range .VMChannels}} {{template "channel" .}} {{end}}
diff --git a/light.png b/light.png index 8c3660d71794a24b51861158a015f3d9d42ad678..b087eb52e2026d617d037fc89ae8ae0295967c84 100644 GIT binary patch literal 91515 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 Bfe8Qr literal 56139 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 fh5QqpA0EbN_% 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