TsPy - TeamSpeak 3 Plugin met Python Scripting

TsPy - TeamSpeak 3 Plugin

Krachtige Python Scripting voor TeamSpeak 3

Download van GitHub

🎯 Overzicht

TsPy is een professionele TeamSpeak 3 client plugin die Python scripting mogelijkheden naar je TeamSpeak client brengt. Schrijf aangepaste scripts om taken te automatiseren, reageer op gebeurtenissen en creëer interactieve audio monitoring.

✨ Belangrijkste Functies

🐍

Python 3.10+ Integratie

Volledige embedded Python interpreter met aangepaste ts3api module

🎤

Audio Monitoring

Real-time audio niveau visualisatie met PyGame UI

📡

Event Systeem

Reageer op TeamSpeak events (verbindingen, berichten, spraakstatus, etc.)

⚙️

Command Systeem

Uitbreidbaar command systeem met /tspy commando's

🏗️

Moderne Architectuur

Schone, modulaire C11 codebase met CMake build systeem

📊

Uitgebreid Logging

Professioneel logging systeem voor debugging

📋 Vereisten

Build Vereisten

  • CMake 3.20 of hoger
  • Visual Studio 2022 (MSVC 19.39+)
  • TeamSpeak 3 Client (API versie 26)
  • Python 3.10+ (development libraries)

Runtime Vereisten

  • TeamSpeak 3 Client
  • Python 3.10+ (geïnstalleerd op systeem)
  • PyGame (voor audio monitor): pip install pygame

🚀 Snel Starten

De Plugin Bouwen

# Navigeer naar de project directory
cd E:\Projects\HamRadio\TsPy

# Configureer CMake (alleen eerste keer)
cmake -S . -B build -G "Visual Studio 17 2022" -A x64

# Bouw de plugin
cmake --build build --config Release

# Installeer naar TeamSpeak plugins folder
.\install.ps1

De Plugin Gebruiken

  1. Start TeamSpeak - De plugin laadt automatisch
  2. Check status: /tspy status in chat
  3. Laad een script: /tspy python load <script_naam>
  4. Probeer audio monitor: /tspy python load audio_monitor

🐍 Python Scripting

Beschikbare API Functies

De ts3api module biedt deze functies:

import ts3api

# Informatie
client_id = ts3api.get_client_id(server_id)
name = ts3api.get_client_name(server_id, client_id)

# Berichten versturen
ts3api.print_message("Hallo TeamSpeak!")
ts3api.send_channel_message(server_id, "Hallo kanaal!")
ts3api.send_server_message(server_id, "Hallo server!")

# Audio (v1.5.0+)
level = ts3api.get_audio_level(server_id)  # Retourneert dB (-60 tot 0)
ts3api.start_recording(server_id)
ts3api.stop_recording(server_id)

# Logging
ts3api.log("Debug bericht", level=0)  # 0=INFO, 1=WARNING, 2=ERROR

Event Handlers

Je scripts kunnen deze event handlers implementeren:

def on_connect(server_id, client_id):
    """Wordt aangeroepen wanneer je verbindt met een server"""
    print(f"Verbonden met server {server_id}")

def on_disconnect(server_id):
    """Wordt aangeroepen wanneer je verbinding verbreekt"""
    print(f"Verbinding verbroken van server {server_id}")

def on_client_move(server_id, client_id, old_channel, new_channel):
    """Wordt aangeroepen wanneer een client van kanaal wisselt"""
    print(f"Client {client_id} verplaatst naar kanaal {new_channel}")

def on_text_message(server_id, from_id, to_id, target_mode, message):
    """Wordt aangeroepen bij een tekstbericht"""
    print(f"Bericht van {from_id}: {message}")

def on_talk_status_change(server_id, status, client_id):
    """Wordt aangeroepen wanneer iemand start/stopt met praten"""
    if status == 1:  # STATUS_TALKING
        print(f"Client {client_id} is aan het praten")

💡 Voorbeeld Scripts

Simpele Groeter

# greeter.py
import ts3api

def on_connect(server_id, client_id):
    ts3api.send_channel_message(
        server_id, 
        "Hallo iedereen! 👋"
    )

Echo Bot

# echobot.py
import ts3api

def on_text_message(server_id, from_id, 
                     to_id, target_mode, message):
    if not "(auto-reply)" in message:
        reply = f"Echo: {message}"
        ts3api.send_channel_message(
            server_id, 
            reply
        )

🎤 Audio Monitor

Het audio_monitor.py voorbeeldscript biedt een real-time audio monitoring UI

Functies

  • VU Meter - Real-time microfoon niveau visualisatie (-60dB tot 0dB)
  • Kleurcodering - Groen (veilig), Geel (luid), Rood (clipping)
  • Opname Controle - Klik op knop om spraakopname te starten/stoppen
  • Spraak Status - Live lijst van momenteel pratende clients met indicatoren

Gebruik

# Kopieer eerst het voorbeeld naar je scripts folder:
Copy-Item "examples\audio_monitor.py" "$env:APPDATA\TS3Client\plugins\scripts\"

# Laad het vervolgens in TeamSpeak:
/tspy python load audio_monitor

Een PyGame venster opent met real-time audio monitoring. Druk op ESC of sluit het venster om te stoppen.

⚙️ Beschikbare Commando's

Commando Beschrijving
/tspy help Toon beschikbare commando's
/tspy status Toon plugin status
/tspy python status Toon Python engine status
/tspy python load <script> Laad een Python script
/tspy python reload <script> Herlaad een actief script
/tspy python unload <script> Verwijder een script

🐛 Probleemoplossing

Plugin laadt niet

  • Zorg dat TeamSpeak volledig afgesloten is voor installatie
  • Check de TeamSpeak client log: %APPDATA%\TS3Client\logs\
  • Verifieer dat Python 3.10+ geïnstalleerd is en in PATH staat

Python scripts werken niet

  • Verifieer Python engine status: /tspy python status
  • Check plugin log: %APPDATA%\TS3Client\plugins\tspy_plugin.log
  • Zorg dat scripts in: %APPDATA%\TS3Client\plugins\scripts\ staan

Audio monitor problemen

  • Installeer pygame: pip install pygame
  • Check microfoon permissies in TeamSpeak
  • Verifieer dat je verbonden bent met een server

Build fouten

  • Zorg dat Visual Studio 2022 geïnstalleerd is
  • Update CMake naar laatste versie
  • Verifieer dat Python development libraries geïnstalleerd zijn
  • Check Python versie: python --version

📊 Versie Geschiedenis

v1.5.0 (Huidig) - Audio Monitoring

  • ✅ Audio API: get_audio_level, start_recording, stop_recording
  • ✅ Spraak status events voor real-time spreker detectie
  • ✅ PyGame audio monitor met VU meter en opname controle
  • ✅ Kleurgecodeerde visualisatie van audio niveaus

v1.4.0 - Event Systeem Compleet

  • ✅ Volledige event dispatcher voor Python scripts
  • ✅ 6 event types: connect, disconnect, client_move, text_message, talk_status
  • ✅ Loop preventie voor bot berichten

v1.3.1 - Python Commando's

  • /tspy python commando systeem
  • ✅ Script laden/herladen/verwijderen
  • ✅ Python engine status rapportage

v1.3.0 - Python Integratie

  • ✅ Embedded Python 3.10+ interpreter
  • ✅ Aangepaste ts3api module met TeamSpeak functies
  • ✅ Auto-loading van tspy_init.py

Klaar om te Beginnen?

Download TsPy vandaag en breng Python scripting naar je TeamSpeak!

GitHub Repository Releases