Teamspeak¶
Main module¶
Teamspeak management.
-
class
sni.teamspeak.teamspeak.
TeamspeakClient
[source]¶ Bases:
pydantic.main.BaseModel
Represents a teamspeak client as reported by the teamspeak query server.
-
cid
: int = None¶
-
clid
: int = None¶
-
client_database_id
: int = None¶
-
client_nickname
: str = None¶
-
client_type
: int = None¶
-
-
class
sni.teamspeak.teamspeak.
TeamspeakGroup
[source]¶ Bases:
pydantic.main.BaseModel
Represents a teamspeak group as reported by the teamspeak query server.
-
iconid
: int = None¶
-
name
: str = None¶
-
savedb
: int = None¶
-
sgid
: int = None¶
-
type
: int = None¶
-
-
sni.teamspeak.teamspeak.
cached_teamspeak_query
(connection: ts3.query.TS3Connection, query: Callable, ttl: int = 60, *, args=[], kwargs={}) → Any[source]¶ Returns a parsed query result, and caches the result.
-
sni.teamspeak.teamspeak.
client_list
(connection: ts3.query.TS3Connection) → List[sni.teamspeak.teamspeak.TeamspeakClient][source]¶ Returns the list of clients currently connected to the teamspeak server.
See also
sni.teamspeak.TeamspeakClient
-
sni.teamspeak.teamspeak.
close_teamspeak_connection
(connection: ts3.query.TS3Connection) → None[source]¶ Closes a Teamspeak connection. Wraps
ts3.query.TS3Connection.close()
in a try… except block to catch spurious connection reset exceptions.
-
sni.teamspeak.teamspeak.
complete_authentication_challenge
(connection: ts3.query.TS3Connection, usr: sni.user.models.User)[source]¶ Complete an authentication challenge, see
sni.teamspeak.new_authentication_challenge()
.
-
sni.teamspeak.teamspeak.
ensure_group
(connection: ts3.query.TS3Connection, name: str) → sni.teamspeak.teamspeak.TeamspeakGroup[source]¶ Ensures that a teamspeak group exists, and returns a
sni.teamspeak.teamspeak.TeamspeakGroup
.
-
sni.teamspeak.teamspeak.
find_client
(connection: ts3.query.TS3Connection, *, nickname: Optional[str] = None, client_database_id: Optional[int] = None) → sni.teamspeak.teamspeak.TeamspeakClient[source]¶ Returns the
sni.teamspeak.TeamspeakClient
representation of a client. Raises aLookupError
if the client is not found, or if multiple client with the same nickname are found.
-
sni.teamspeak.teamspeak.
find_group
(connection: ts3.query.TS3Connection, *, name: Optional[str] = None, group_id: Optional[int] = None) → sni.teamspeak.teamspeak.TeamspeakGroup[source]¶ Returns the
sni.teamspeak.TeamspeakGroup
representation of a teamspeak group. Raises aLookupError
if the group is not found.
-
sni.teamspeak.teamspeak.
group_list
(connection: ts3.query.TS3Connection) → List[sni.teamspeak.teamspeak.TeamspeakGroup][source]¶ Returns the list of groups in the teamspeak server.
See also
sni.teamspeak.TeamspeakGroup
-
sni.teamspeak.teamspeak.
new_authentication_challenge
(usr: sni.user.models.User) → str[source]¶ Initiates an authentication challenge. The challenge proceeds as follows:
A user (
sni.user
) asks to start a challenge by calling this method.This methods returns a UUID, and the user has 60 seconds to change its teamspeak nickname to that UUID.
The user notifies SNI that (s)he has done so.
The server checks (see
sni.teamspeak.complete_authentication_challenge()
), and if sucessful, the corresponding teamspeak client is registered in the database and bound to that user. The nickname is also automatically assigned.
Database models¶
Teamspeak database models
-
class
sni.teamspeak.models.
TeamspeakAuthenticationChallenge
(*args, **values)[source]¶ Bases:
mongoengine.document.Document
Represents a teamspeak authentication challenge, akin to
sni.uac.token.StateCode
.See also
sni.teamspeak.new_authentication_challenge()
-
challenge_nickname
¶
-
created_on
¶ Timestamp of the creation of this document
-
user
¶ “Corresponding user
-
Jobs¶
Recurrent teamspeak jobs
Database signals¶
Database signals. See Mongoengine signals