Changelog

  • 2.0.0b2

    • added SSH support (issue 70)
    • added TS3BaseConnection.open_uri()
    • changed The constructor of TS3BaseConnection accepts now a URI instead of a host and port to keep things simple, especially with the new SSH parameters.
    • fixed timeout handling
    • fixed error propagation

    Update Guide

    # Old code
    with TS3ServerConnection("localhost") as ts3conn:
        pass
    
    # New code (1)
    with TS3ServerConnection("telnet://localhost:10011") as ts3conn:
        pass
    
    # New code (2)
    with TS3ServerConnection("ssh://serveradmin:abc123@localhost:10011") as ts3conn:
        pass
    
  • 2.0.0b1

    • added Support for the TS3 Client Query API (issue 48)
    • renamed TS3Connection to TS3ServerConnection
    • added TS3ClientConnection
    • removed the monstrous commands module, use TS3QueryBuilder instead.
    • removed the TS3Escape class, use the TS3QueryBuilder and the escape() and unespace() functions instead.

    Version 2.0.0 introduces support for the client query API and pipelining query commands. This come at the costs and benefits of having a new query API.

    Update Guide

    # Old code
    ts3conn.login(client_login_name="serveradmin", client_login_password="abc")
    ts3conn.clientlist(away=True, uid=True)
    ts3conn.clientkick(reasonmsg="Haha.", clid=42)
    
    # New code
    ts3conn.exec_("login", client_login_name="serveradmin", client_login_password="abc")
    ts3conn.exec_("clientlist", "away", "uid")
    ts3conn.exec_("clientkick", reasonmsg="Haha", clid=42)
    
    query = ts3conn.query("clientkick", reasonmsg="Haha").pipe(clid=42).pipe(clid=43)
    resp = query.fetch()
    

    In short:

    1. The command is the first parameter of exec_()
    2. The options are simple string arguments after the command.
    3. The parameters are given as keyworkd arguments.

    Update or not?

    Version 1.0.0 is quite stable. If you don’t need the client query API or support for pipelining, then there is no reason to update, but you should fix the version in your requirements.txt file.

    If you start a new project, use version 2.0.0. It has only a slightly different API but offers more features, while keeping the readability.

  • 1.0.4

  • 1.0.0

    All threads have been removed and the event handling has been reworked. Please take a look at the examples and the GitHub README for the new event queue.

    • removed TS3ResponseRecvError

      Use the TS3TimeoutError and TS3RecvError exceptions now.

    • added TS3TimeoutError exception

    • added TS3RecvError exception

    • removed TS3BaseConnection.keepalive()

      This method has been removed, because of the bad use of threads. You are now responsible to sent the keepalive message by calling TS3BaseConnection.send_keepalive() at least once in 10 minutes.

    • added TS3BaseConnection.send_keepalive()

    • removed TS3BaseConnection.on_event()

      use the new TS3BaseConnection.wait_for_event() now.

    • removed TS3BaseConnection.wait_for_resp()

      This method is an inplementation detail.

    • removed TS3BaseConnection.stop_recv()

      This method is no longer needed.

    • removed TS3BaseConnection.recv_in_thread()

      This method is no longer needed.

    • removed TS3BaseConnection.last_resp