Webprogrammierung für Teamspeak mit der ts3admin.class

  • Die Uptime ist in den Informationen enthalten, die man abfragen kann. Dabei kann man zwischen den Hostinformationen und den Instanzinformationen unterscheiden, welche durchaus unterschiedlich sein können.


    Was den Ping angeht, so finde ich eine solche Funktion an sich zwar durchaus interessant, aber nicht passend zu diesem Anwendungsfall.
    Der Ping ist nutzerabhängig, und somit nicht wirklich aussagekräftig. Daher würde mich interessieren, aus welchem Grund dir diese Information wichtig ist.

  • PHP
    1. <?php
    2. $tsviewerid = "1054187"; //Hier die TS Viewer ID eintragen
    3. if (preg_match('/<div class="subsection">\s<label>[\wäöü ]{1,}<\/label>\s<span>([\.0-9]{2,5}) %<\/span>\s<i class="flaticon-info27 tooltip-hover" data-tooltip-content="[\wäöü ]{1,}"><\/i>\s<\/div>/iUs', file_get_contents("https://www.tsviewer.com/index.php?page=ts_viewer&ID=".$id), $out)) {
    4. echo "Server Uptime: ".$out[1]."%";
    5. }


    Du musst halt noch die richtige TS Viewer ID eintragen

  • PHP
    1. <?php
    2. $id = "1054187";
    3. if (preg_match('/<div class="subsection">\s<label>[\wäöü ]{1,}<\/label>\s<span>([\.0-9]{2,5}) %<\/span>\s<i class="flaticon-info27 tooltip-hover" data-tooltip-content="[\wäöü ]{1,}"><\/i>\s<\/div>/iUs', file_get_contents("https://www.tsviewer.com/index.php?page=ts_viewer&ID=".$id), $out)) {
    4. echo "Server Uptime: ".$out[1]."%";
    5. }


    so solls gehen

  • Ich müsste auch mal etwas dazu fragen. Hab das Topic über eine bekannte Suchmaschine gefunden und hoffe, dass hier noch jemand aktiv ist.


    Für die Ausgabe einer Liste aller Channels und darin befindlicher Nutzer verwende ich zumindest für die Channel


    Code
    1. $ts3->channelList("-topic -flags -voice -limits -icon");


    Das resultierende Array finde ich ehrlich gesagt ziemlich schwierig. Ist es nicht irgendwie möglich die Channels in einem Array bereits so sortiert und gruppiert auszugeben, wie sie in TS hinterlegt sind (Channel B ist in Channel A etc.pp.)? Abgebildet wird das ja über die Eigenschaften in dem Array was bei channelList() raus kommt, nur muss man es erst selbst umsortieren. Gibt es dazu schon irgendwo etwas fertiges? Oder hat es einer von euch selbst schonmal sauber umgesetzt?

  • Hi @Zwirni,
    benötigst du die ganzen Parameter?


    Ohne Parameter liefert das Array nämlich auch die Sortierung zurück:

    Code
    1. Output: (without parameters)Array{ [cid] => 2 [pid] => 0 [channel_order] => 1 # <<--- Sortierung [channel_name] => Test [total_clients] => 0 [channel_needed_subscribe_power] => 0}


    Ansonsten muss du wohl mit einer foreach-Loop durch jeden Channel gehen und dessen channel_order mit Hilfe der Funktion channelInfo( $cid) auslesen:

    Code
    1. Output:
    2. Array
    3. {
    4. ...
    5. [channel_order] => 1
    6. ...
    7. }


    Weitere Informationen findest du in der Dokumentation: ts3admin.class: ts3admin Class Reference