Teamspeak¶
Main module¶
Teamspeak management.
-
class
sni.teamspeak.teamspeak.TeamspeakClient[source]¶ Bases:
pydantic.main.BaseModelRepresents 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.BaseModelRepresents 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.TeamspeakClientrepresentation of a client. Raises aLookupErrorif 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.TeamspeakGrouprepresentation of a teamspeak group. Raises aLookupErrorif 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.DocumentRepresents 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