Dateien, Icons und Avatare auflisten

  • Heyho!


    Bräuchte mal eure Hilfe, ob das überhaupt funktioniert, so wie ich möchte :)


    Ich möchte in meinem Webinterface via ServerQuery den gesamten benutzten Speicher von einem TS-Server abfragen.


    Was schon mal funktioniert hat, ist

    Code
    ftgetfilelist cid=0 cpw= path=\/


    Allerding werden mir nur die Avatare ausgespuckt. Ich möchte gerne eine gesamte liste von allen Dateien, Avataren und Icons angezeigt bekommen.


    Ich hätte da zwar noch eine Idee, die aber unschöner ist, denn da frage ich jeden einzelnen Channel um Files ab, und das ist ziemlich Serverlastig ^^


    Schönen Sonntag
    MfG, Aredon

    • Offizieller Beitrag

    Hallo,
    dein Befehl macht schon das richtige. Er liefert auch alle Dateien, wie du es dir wünscht, allerdings nur für den Channel, den du bei "cid" angibst. 0 ist eben der Server selbst, wo nur die Avatare gespeichert werden. ;)


    Du musst daher pro virtuellen Server alle Channel einzeln abfragen:

    Code
    ftgetfilelist cid=0 cpw= path=\/ftgetfilelist cid=312 cpw= path=\/ftgetfilelist cid=313 cpw= path=\/ftgetfilelist cid=471 cpw= path=\/...


    Und wenn dann noch ein Passwort für den Channel gesetzt ist, musst du natürlich auch noch das Passwort mit angeben.


    Nachfolgend mal ein Pseudocode für das Abfragen aller Channel aller (virtuellen) TS3 Server:

    Code
    $ts3server_list = getAllVirtualServerIDs()foreach($ts3server_list as $virtualserver_id){    use $virtualserver_id    $channel_list = getAllChannelIDs()    foreach($channel_list as $channel_id)    {        ftgetfilelist cid=$channel_id cpw= path=\/    }}


    Meiner Meinung nach ist das sehr umständlich, zeitaufwändig und Ressourcen lastig. Mit einem Linux Befehl wäre das viel einfacher:

    Code
    find /home/teamspeak/files/ -type f


    Der findet und listet einfach alle Dateien (= Type "f", wie "File") im files/ Verzeichnis deines TS3 Servers auf. Natürlich kannst du das auch spezifizieren, indem du nur einen speziellen virtuellen Server abfragst:

    Code
    find /home/teamspeak/files/virtualserver_1/ -type f


    Das ganze sieht zum Beispiel so aus:

    Code
    $ find /home/teamspeak/files/virtualserver_1/ -type f/home/teamspeak/files/virtualserver_1/channel_289/server.png/home/teamspeak/files/virtualserver_1/channel_289/connectionLost.png/home/teamspeak/files/virtualserver_1/channel_289/chat.png/home/teamspeak/files/virtualserver_1/channel_289/Vollmacht.pdf/home/teamspeak/files/virtualserver_1/channel_289/Affilate System Bilder/affisystem.png/home/teamspeak/files/virtualserver_1/channel_289/auslastung.png/home/teamspeak/files/virtualserver_1/channel_289/csgobanner.png/home/teamspeak/files/virtualserver_1/channel_289/psc.txt


    Wenn du nur die Dateinamen ohne Pfadangabe willst, kannst du das so machen:

    Code
    for file in $(find /home/teamspeak/files/virtualserver_1/ -type f); do basename $file; done
  • Das ist wieder mal schade, seitens von TeamSpeak, dass da wieder die hälfte fehlt... bzw. die es nicht leichter gemacht hätten.
    Danke jedenfalls schon mal :)
    Wie bekomm ich dann die Icons?

  • Die Icons sind jedoch nicht Channelabhängig upgeloaded? Die sind doch auch in der Serverordnerstruktur in dem "internal" Ordner.

  • Dieses Thema enthält 7 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.