teamtalkbot/bot/TeamTalk/structs.py
Umiko 5d410ab994
Some checks are pending
Build-nightly / docker (push) Waiting to run
Fix user rights to upload file, hopefully...
2025-05-05 02:50:37 +07:00

408 lines
18 KiB
Python

from enum import Enum, Flag
import TeamTalkPy
major, minor, patch, build = TeamTalkPy.ttstr(TeamTalkPy.getVersion()).split(".")
class State(Enum):
NOT_CONNECTED = 0
CONNECTING = 1
RECONNECTING = 2
CONNECTED = 3
class Flags(Flag):
CLOSED = TeamTalkPy.ClientFlags.CLIENT_CLOSED
SND_INPUT_READY = TeamTalkPy.ClientFlags.CLIENT_SNDINPUT_READY
SND_OUTPUT_READY = TeamTalkPy.ClientFlags.CLIENT_SNDOUTPUT_READY
SND_INOUTPUT_DUPLEX = TeamTalkPy.ClientFlags.CLIENT_SNDINOUTPUT_DUPLEX
SND_INPUT_VOICE_ACTIVATED = TeamTalkPy.ClientFlags.CLIENT_SNDINPUT_VOICEACTIVATED
SND_INPUT_VOICE_ACTIVE = TeamTalkPy.ClientFlags.CLIENT_SNDINPUT_VOICEACTIVE
SND_OUTPUT_MUTE = TeamTalkPy.ClientFlags.CLIENT_SNDOUTPUT_MUTE
SND_OUTPUT_AUTO_3D_POSITION = TeamTalkPy.ClientFlags.CLIENT_SNDOUTPUT_AUTO3DPOSITION
VIDEO_CAPTURE_READY = TeamTalkPy.ClientFlags.CLIENT_VIDEOCAPTURE_READY
TX_VOICE = TeamTalkPy.ClientFlags.CLIENT_TX_VOICE
TX_VIDEO_CAPTURE = TeamTalkPy.ClientFlags.CLIENT_TX_VIDEOCAPTURE
TX_DESKTOP = TeamTalkPy.ClientFlags.CLIENT_TX_DESKTOP
DESKTOP_ACTIVE = TeamTalkPy.ClientFlags.CLIENT_DESKTOP_ACTIVE
MUX_AUDIO_FILE = TeamTalkPy.ClientFlags.CLIENT_MUX_AUDIOFILE
CONNECTING = TeamTalkPy.ClientFlags.CLIENT_CONNECTING
CONNECTED = TeamTalkPy.ClientFlags.CLIENT_CONNECTED
CONNECTION = TeamTalkPy.ClientFlags.CLIENT_CONNECTION = (
TeamTalkPy.ClientFlags.CLIENT_CONNECTING
or TeamTalkPy.ClientFlags.CLIENT_CONNECTED
)
AUTHORIZED = TeamTalkPy.ClientFlags.CLIENT_AUTHORIZED
STREAM_AUDIO = TeamTalkPy.ClientFlags.CLIENT_STREAM_AUDIO
STREAM_VIDEO = TeamTalkPy.ClientFlags.CLIENT_STREAM_VIDEO
class ChannelType(Flag):
ClassRoom = TeamTalkPy.ChannelType.CHANNEL_CLASSROOM
Default = TeamTalkPy.ChannelType.CHANNEL_DEFAULT
Hidden = TeamTalkPy.ChannelType.CHANNEL_HIDDEN
NoRecording = TeamTalkPy.ChannelType.CHANNEL_NO_RECORDING
NoVoiceActivation = TeamTalkPy.ChannelType.CHANNEL_NO_VOICEACTIVATION
OperatorRecnvOnly = TeamTalkPy.ChannelType.CHANNEL_OPERATOR_RECVONLY
Permanent = TeamTalkPy.ChannelType.CHANNEL_PERMANENT
SoloTransmit = TeamTalkPy.ChannelType.CHANNEL_SOLO_TRANSMIT
class Channel:
def __init__(
self, id: int, name: str, topic: str, max_users: int, type: ChannelType
) -> None:
self.id = id
self.name = name
self.topic = topic
self.max_users = max_users
self.type = type
class ErrorType(Enum):
Success = TeamTalkPy.ClientError.CMDERR_SUCCESS
SyntaxError = TeamTalkPy.ClientError.CMDERR_SYNTAX_ERROR
UnknownCommand = TeamTalkPy.ClientError.CMDERR_UNKNOWN_COMMAND
MissingParameter = TeamTalkPy.ClientError.CMDERR_MISSING_PARAMETER
IncompatibleProtocols = TeamTalkPy.ClientError.CMDERR_INCOMPATIBLE_PROTOCOLS
UnknownAudioCodec = TeamTalkPy.ClientError.CMDERR_UNKNOWN_AUDIOCODEC
InvalidUsername = TeamTalkPy.ClientError.CMDERR_INVALID_USERNAME
IncorrectChannelPassword = TeamTalkPy.ClientError.CMDERR_INCORRECT_CHANNEL_PASSWORD
InvalidAccount = TeamTalkPy.ClientError.CMDERR_INVALID_ACCOUNT
MaxServerUsersExceeded = TeamTalkPy.ClientError.CMDERR_MAX_SERVER_USERS_EXCEEDED
MaxChannelUsersExceeded = TeamTalkPy.ClientError.CMDERR_MAX_CHANNEL_USERS_EXCEEDED
ServerBanned = TeamTalkPy.ClientError.CMDERR_SERVER_BANNED
NotAuthorised = TeamTalkPy.ClientError.CMDERR_NOT_AUTHORIZED
MaxDiskusageExceeded = TeamTalkPy.ClientError.CMDERR_MAX_DISKUSAGE_EXCEEDED
IncorrectOperatorPassword = TeamTalkPy.ClientError.CMDERR_INCORRECT_OP_PASSWORD
AudioCodecBitrateLimitExceeded = (
TeamTalkPy.ClientError.CMDERR_AUDIOCODEC_BITRATE_LIMIT_EXCEEDED
)
MaxLoginsPerIpAddressExceeded = (
TeamTalkPy.ClientError.CMDERR_MAX_LOGINS_PER_IPADDRESS_EXCEEDED
)
MaxChannelsExceeded = TeamTalkPy.ClientError.CMDERR_MAX_CHANNELS_EXCEEDED
CommandFlood = TeamTalkPy.ClientError.CMDERR_COMMAND_FLOOD
ChannelBanned = TeamTalkPy.ClientError.CMDERR_CHANNEL_BANNED
NotLoggedin = TeamTalkPy.ClientError.CMDERR_NOT_LOGGEDIN
AlreadyLoggedin = TeamTalkPy.ClientError.CMDERR_ALREADY_LOGGEDIN
NotInChannel = TeamTalkPy.ClientError.CMDERR_NOT_IN_CHANNEL
AlreadyInChannel = TeamTalkPy.ClientError.CMDERR_ALREADY_IN_CHANNEL
ChannelAlreadyExists = TeamTalkPy.ClientError.CMDERR_CHANNEL_ALREADY_EXISTS
ChannelNotFound = TeamTalkPy.ClientError.CMDERR_CHANNEL_NOT_FOUND
UserNotFound = TeamTalkPy.ClientError.CMDERR_USER_NOT_FOUND
BanNotFound = TeamTalkPy.ClientError.CMDERR_BAN_NOT_FOUND
FileTransferNotFound = TeamTalkPy.ClientError.CMDERR_FILETRANSFER_NOT_FOUND
OpenFileFailed = TeamTalkPy.ClientError.CMDERR_OPENFILE_FAILED
AccountNotFound = TeamTalkPy.ClientError.CMDERR_ACCOUNT_NOT_FOUND
FileNotFound = TeamTalkPy.ClientError.CMDERR_FILE_NOT_FOUND
FileAlreadyExists = TeamTalkPy.ClientError.CMDERR_FILE_ALREADY_EXISTS
FileSharingDisabled = TeamTalkPy.ClientError.CMDERR_FILESHARING_DISABLED
ChannelHasUsers = TeamTalkPy.ClientError.CMDERR_CHANNEL_HAS_USERS
LoginServiceUnavailable = TeamTalkPy.ClientError.CMDERR_LOGINSERVICE_UNAVAILABLE
ChannelCannotBeHidden = TeamTalkPy.ClientError.CMDERR_CHANNEL_CANNOT_BE_HIDDEN
SndInputFailure = TeamTalkPy.ClientError.INTERR_SNDINPUT_FAILURE
SndOutputFailure = TeamTalkPy.ClientError.INTERR_SNDOUTPUT_FAILURE
AudioCodecInitFailed = TeamTalkPy.ClientError.INTERR_AUDIOCODEC_INIT_FAILED
SpeexDSPInitFailed = TeamTalkPy.ClientError.INTERR_SPEEXDSP_INIT_FAILED
TTMesageQueueOverflow = TeamTalkPy.ClientError.INTERR_TTMESSAGE_QUEUE_OVERFLOW
SndEffectFailure = TeamTalkPy.ClientError.INTERR_SNDEFFECT_FAILURE
class Error:
def __init__(self, message: str, type: ErrorType, command_id: int) -> None:
self.message = message
self.type = type
self.command_id = command_id
class UserType(Enum):
Null = 0
Default = 1
Admin = 2
class UserState(Flag):
Null = TeamTalkPy.UserState.USERSTATE_NONE
Voice = TeamTalkPy.UserState.USERSTATE_VOICE
MuteVoice = TeamTalkPy.UserState.USERSTATE_MUTE_VOICE
MuteMediaFile = TeamTalkPy.UserState.USERSTATE_MUTE_MEDIAFILE
Desktop = TeamTalkPy.UserState.USERSTATE_DESKTOP
VideoCapture = TeamTalkPy.UserState.USERSTATE_VIDEOCAPTURE
AudioFile = TeamTalkPy.UserState.USERSTATE_MEDIAFILE_AUDIO
VideoFile = TeamTalkPy.UserState.USERSTATE_MEDIAFILE_VIDEO
MediaFile = TeamTalkPy.UserState.USERSTATE_MEDIAFILE
class UserStatusMode(Flag):
Available = 0
Away = 1
Question = 2
VideoTx = 512
Desktop = 1024
StreamMediaFile = 2048
M = Available
F = 256
N = 4096
class UserRightPre15(Flag):
Null = TeamTalkPy.UserRight.USERRIGHT_NONE
MultiLogin = TeamTalkPy.UserRight.USERRIGHT_MULTI_LOGIN
ViewAllUsers = TeamTalkPy.UserRight.USERRIGHT_VIEW_ALL_USERS
CreateTemporaryChannel = TeamTalkPy.UserRight.USERRIGHT_CREATE_TEMPORARY_CHANNEL
ModifyChannels = TeamTalkPy.UserRight.USERRIGHT_MODIFY_CHANNELS
BroadcastTextMessage = TeamTalkPy.UserRight.USERRIGHT_TEXTMESSAGE_BROADCAST
KickUsers = TeamTalkPy.UserRight.USERRIGHT_KICK_USERS
BanUsers = TeamTalkPy.UserRight.USERRIGHT_BAN_USERS
MoveUsers = TeamTalkPy.UserRight.USERRIGHT_MOVE_USERS
OperatorEnable = TeamTalkPy.UserRight.USERRIGHT_OPERATOR_ENABLE
UploadFiles = TeamTalkPy.UserRight.USERRIGHT_UPLOAD_FILES
DownloadFiles = TeamTalkPy.UserRight.USERRIGHT_DOWNLOAD_FILES
UpdateServerProperties = TeamTalkPy.UserRight.USERRIGHT_UPDATE_SERVERPROPERTIES
TransmitVoice = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_VOICE
TransmitVideoCapture = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_VIDEOCAPTURE
TransmitDesktop = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_DESKTOP
TransmitDesktopInput = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_DESKTOPINPUT
TransmitMediaFileAudio = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE_AUDIO
TransmitMediaFileVideo = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE_VIDEO
TransmitMediaFile = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE
LockedNickname = TeamTalkPy.UserRight.USERRIGHT_LOCKED_NICKNAME
LockedStatus = TeamTalkPy.UserRight.USERRIGHT_LOCKED_STATUS
RecordVoice = TeamTalkPy.UserRight.USERRIGHT_RECORD_VOICE
ViewHiddenChannels = TeamTalkPy.UserRight.USERRIGHT_VIEW_HIDDEN_CHANNELS
if major == "5" and minor >= "15":
class UserRight15(Flag):
Null = TeamTalkPy.UserRight.USERRIGHT_NONE
MultiLogin = TeamTalkPy.UserRight.USERRIGHT_MULTI_LOGIN
ViewAllUsers = TeamTalkPy.UserRight.USERRIGHT_VIEW_ALL_USERS
CreateTemporaryChannel = TeamTalkPy.UserRight.USERRIGHT_CREATE_TEMPORARY_CHANNEL
ModifyChannels = TeamTalkPy.UserRight.USERRIGHT_MODIFY_CHANNELS
BroadcastTextMessage = TeamTalkPy.UserRight.USERRIGHT_TEXTMESSAGE_BROADCAST
KickUsers = TeamTalkPy.UserRight.USERRIGHT_KICK_USERS
BanUsers = TeamTalkPy.UserRight.USERRIGHT_BAN_USERS
MoveUsers = TeamTalkPy.UserRight.USERRIGHT_MOVE_USERS
OperatorEnable = TeamTalkPy.UserRight.USERRIGHT_OPERATOR_ENABLE
UploadFiles = TeamTalkPy.UserRight.USERRIGHT_UPLOAD_FILES
DownloadFiles = TeamTalkPy.UserRight.USERRIGHT_DOWNLOAD_FILES
UpdateServerProperties = TeamTalkPy.UserRight.USERRIGHT_UPDATE_SERVERPROPERTIES
TransmitVoice = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_VOICE
TransmitVideoCapture = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_VIDEOCAPTURE
TransmitDesktop = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_DESKTOP
TransmitDesktopInput = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_DESKTOPINPUT
TransmitMediaFileAudio = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE_AUDIO
TransmitMediaFileVideo = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE_VIDEO
TransmitMediaFile = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE
LockedNickname = TeamTalkPy.UserRight.USERRIGHT_LOCKED_NICKNAME
LockedStatus = TeamTalkPy.UserRight.USERRIGHT_LOCKED_STATUS
RecordVoice = TeamTalkPy.UserRight.USERRIGHT_RECORD_VOICE
ViewHiddenChannels = TeamTalkPy.UserRight.USERRIGHT_VIEW_HIDDEN_CHANNELS
textMessageUser = TeamTalkPy.UserRight.USERRIGHT_TEXTMESSAGE_USER
textMessageChannel = TeamTalkPy.UserRight.USERRIGHT_TEXTMESSAGE_CHANNEL
UserRight = UserRight15
else:
UserRight = UserRightPre15
class UserRight15(Flag):
Null = TeamTalkPy.UserRight.USERRIGHT_NONE
MultiLogin = TeamTalkPy.UserRight.USERRIGHT_MULTI_LOGIN
ViewAllUsers = TeamTalkPy.UserRight.USERRIGHT_VIEW_ALL_USERS
CreateTemporaryChannel = TeamTalkPy.UserRight.USERRIGHT_CREATE_TEMPORARY_CHANNEL
ModifyChannels = TeamTalkPy.UserRight.USERRIGHT_MODIFY_CHANNELS
BroadcastTextMessage = TeamTalkPy.UserRight.USERRIGHT_TEXTMESSAGE_BROADCAST
KickUsers = TeamTalkPy.UserRight.USERRIGHT_KICK_USERS
BanUsers = TeamTalkPy.UserRight.USERRIGHT_BAN_USERS
MoveUsers = TeamTalkPy.UserRight.USERRIGHT_MOVE_USERS
OperatorEnable = TeamTalkPy.UserRight.USERRIGHT_OPERATOR_ENABLE
UploadFiles = TeamTalkPy.UserRight.USERRIGHT_UPLOAD_FILES
DownloadFiles = TeamTalkPy.UserRight.USERRIGHT_DOWNLOAD_FILES
UpdateServerProperties = TeamTalkPy.UserRight.USERRIGHT_UPDATE_SERVERPROPERTIES
TransmitVoice = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_VOICE
TransmitVideoCapture = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_VIDEOCAPTURE
TransmitDesktop = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_DESKTOP
TransmitDesktopInput = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_DESKTOPINPUT
TransmitMediaFileAudio = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE_AUDIO
TransmitMediaFileVideo = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE_VIDEO
TransmitMediaFile = TeamTalkPy.UserRight.USERRIGHT_TRANSMIT_MEDIAFILE
LockedNickname = TeamTalkPy.UserRight.USERRIGHT_LOCKED_NICKNAME
LockedStatus = TeamTalkPy.UserRight.USERRIGHT_LOCKED_STATUS
RecordVoice = TeamTalkPy.UserRight.USERRIGHT_RECORD_VOICE
ViewHiddenChannels = TeamTalkPy.UserRight.USERRIGHT_VIEW_HIDDEN_CHANNELS
textMessageUser = TeamTalkPy.UserRight.USERRIGHT_TEXTMESSAGE_USER
textMessageChannel = TeamTalkPy.UserRight.USERRIGHT_TEXTMESSAGE_CHANNEL
if major == "5" and minor >= "15":
UserRight = UserRight15
else:
UserRight = UserRightPre15
class UserAccount:
def __init__(
self,
username: str,
password: str,
note: str,
type: UserType,
rights: UserRight,
init_channel: str,
) -> None:
self.username = username
self.password = password
self.note = note
self.type = type
self.rights = rights
self.init_channel = init_channel
class User:
def __init__(
self,
id: int,
nickname: str,
username: str,
status: str,
gender: UserStatusMode,
state: UserState,
channel: Channel,
client_name: str,
version: int,
user_account: UserAccount,
type: UserType,
is_admin: bool,
is_banned: bool,
) -> None:
self.id = id
self.nickname = nickname
self.username = username
self.channel = channel
self.status = status
self.gender = gender
self.state = state
self.client_name = client_name
self.version = version
self.user_account = user_account
self.type = type
self.is_admin = is_admin
self.is_banned = is_banned
class MessageType(Enum):
NONE = 0
User = TeamTalkPy.TextMsgType.MSGTYPE_USER
Channel = TeamTalkPy.TextMsgType.MSGTYPE_CHANNEL
Broadcast = TeamTalkPy.TextMsgType.MSGTYPE_BROADCAST
Custom = TeamTalkPy.TextMsgType.MSGTYPE_CUSTOM
class Message:
def __init__(
self, text: str, user: User, channel: Channel, type: MessageType
) -> None:
self.text = text
self.channel = channel
self.user = user
self.type = type
class File:
def __init__(
self, id: int, name: str, channel: Channel, size: int, username: str
) -> None:
self.id = id
self.name = name
self.channel = channel
self.size = size
self.username = username
class EventType(Enum):
NONE = TeamTalkPy.ClientEvent.CLIENTEVENT_NONE
CON_SUCCESS = TeamTalkPy.ClientEvent.CLIENTEVENT_CON_SUCCESS
CON_FAILED = TeamTalkPy.ClientEvent.CLIENTEVENT_CON_FAILED
CON_LOST = TeamTalkPy.ClientEvent.CLIENTEVENT_CON_LOST
CON_MAX_PAYLOAD_UPDATED = TeamTalkPy.ClientEvent.CLIENTEVENT_CON_MAX_PAYLOAD_UPDATED
PROCESSING = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_PROCESSING
ERROR = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_ERROR
SUCCESS = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_SUCCESS
MYSELF_LOGGEDIN = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_MYSELF_LOGGEDIN
MYSELF_LOGGEDOUT = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_MYSELF_LOGGEDOUT
MYSELF_KICKED = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_MYSELF_KICKED
USER_LOGGEDIN = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_USER_LOGGEDIN
USER_LOGGEDOUT = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_USER_LOGGEDOUT
USER_UPDATE = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_USER_UPDATE
USER_JOINED = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_USER_JOINED
USER_LEFT = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_USER_LEFT
USER_TEXT_MESSAGE = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_USER_TEXTMSG
CHANNEL_NEW = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_CHANNEL_NEW
CHANNEL_UPDATE = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_CHANNEL_UPDATE
CHANNEL_REMOVE = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_CHANNEL_REMOVE
SERVER_UPDATE = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_SERVER_UPDATE
SERVER_STATISTICS = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_SERVERSTATISTICS
FILE_NEW = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_FILE_NEW
FILE_REMOVE = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_FILE_REMOVE
USER_ACCOUNT = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_USERACCOUNT
BANNED_USER = TeamTalkPy.ClientEvent.CLIENTEVENT_CMD_BANNEDUSER
STATE_CHANGE = TeamTalkPy.ClientEvent.CLIENTEVENT_USER_STATECHANGE
USER_VIDEO_CAPTURE = TeamTalkPy.ClientEvent.CLIENTEVENT_USER_VIDEOCAPTURE
USER_MEDIAFILE_VIDEO = TeamTalkPy.ClientEvent.CLIENTEVENT_USER_MEDIAFILE_VIDEO
USER_DESKTOP_WINDOW = TeamTalkPy.ClientEvent.CLIENTEVENT_USER_DESKTOPWINDOW
USER_DESKTOP_CURSOR = TeamTalkPy.ClientEvent.CLIENTEVENT_USER_DESKTOPCURSOR
USER_DESKTOP_INPUT = TeamTalkPy.ClientEvent.CLIENTEVENT_USER_DESKTOPINPUT
USER_RECORD_MEDIAFILE = TeamTalkPy.ClientEvent.CLIENTEVENT_USER_RECORD_MEDIAFILE
USER_AUDIO_BLOCK = TeamTalkPy.ClientEvent.CLIENTEVENT_USER_AUDIOBLOCK
INTERNAL_ERROR = TeamTalkPy.ClientEvent.CLIENTEVENT_INTERNAL_ERROR
VOICE_ACTIVATION = TeamTalkPy.ClientEvent.CLIENTEVENT_VOICE_ACTIVATION
HOTKEY = TeamTalkPy.ClientEvent.CLIENTEVENT_HOTKEY
HOTKEY_TEST = TeamTalkPy.ClientEvent.CLIENTEVENT_HOTKEY_TEST
FILE_TRANSFER = TeamTalkPy.ClientEvent.CLIENTEVENT_FILETRANSFER
DESKTOP_WINDOW_TRANSFER = TeamTalkPy.ClientEvent.CLIENTEVENT_DESKTOPWINDOW_TRANSFER
STREAM_MEDIAFILE = TeamTalkPy.ClientEvent.CLIENTEVENT_STREAM_MEDIAFILE
LOCAL_MEDIAFILE = TeamTalkPy.ClientEvent.CLIENTEVENT_LOCAL_MEDIAFILE
AUDIO_INPUT = TeamTalkPy.ClientEvent.CLIENTEVENT_AUDIOINPUT
USER_FIRST_STREAM_VOICE_PACKET = (
TeamTalkPy.ClientEvent.CLIENTEVENT_USER_FIRSTVOICESTREAMPACKET
)
class Event:
def __init__(
self,
event_type: EventType,
source: int,
channel: Channel,
error: Error,
file: File,
message: Message,
user: User,
user_account: UserAccount,
):
self.event_type = event_type
self.source = source
# ("ttType", INT32),
# ("uReserved", UINT32),
self.channel = channel
self.error = error
# desktop_input
# ("filetransfer", FileTransfer),
# ("mediafileinfo", MediaFileInfo),
self.file = file
# ("serverproperties", ServerProperties),
# ("serverstatistics", ServerStatistics),
self.message: Message = message
self.user = user
self.user_account = user_account
# ("banneduser", BannedUser),
# ("bActive", BOOL),
# ("nBytesRemain", INT32),
# ("nStreamID", INT32),
# ("nPayloadSize", INT32),
# ("nStreamType", INT32),
# ("audioinputprogress", AudioInputProgress),