104 lines
4.0 KiB
Go
104 lines
4.0 KiB
Go
package ts3
|
|
|
|
type HostInfo struct {
|
|
ConnectionBandwidthReceivedLastMinuteTotal int `json:"connection_bandwidth_received_last_minute_total,string"`
|
|
ConnectionBandwidthReceivedLastSecondTotal int `json:"connection_bandwidth_received_last_second_total,string"`
|
|
ConnectionBandwidthSentLastMinuteTotal int `json:"connection_bandwidth_sent_last_minute_total,string"`
|
|
ConnectionBandwidthSentLastSecondTotal int `json:"connection_bandwidth_sent_last_second_total,string"`
|
|
ConnectionBytesReceivedTotal int `json:"connection_bytes_received_total,string"`
|
|
ConnectionBytesSentTotal int `json:"connection_bytes_sent_total,string"`
|
|
ConnectionFiletransferBandwidthReceived int `json:"connection_filetransfer_bandwidth_received,string"`
|
|
ConnectionFiletransferBandwidthSent int `json:"connection_filetransfer_bandwidth_sent,string"`
|
|
ConnectionFiletransferBytesReceivedTotal int `json:"connection_filetransfer_bytes_received_total,string"`
|
|
ConnectionFiletransferBytesSentTotal int `json:"connection_filetransfer_bytes_sent_total,string"`
|
|
ConnectionPacketsReceivedTotal int `json:"connection_packets_received_total,string"`
|
|
ConnectionPacketsSentTotal int `json:"connection_packets_sent_total,string"`
|
|
HostTimestampUtc int `json:"host_timestamp_utc,string"`
|
|
InstanceUptime int `json:"instance_uptime,string"`
|
|
VirtualserversRunningTotal int `json:"virtualservers_running_total,string"`
|
|
VirtualserversTotalChannelsOnline int `json:"virtualservers_total_channels_online,string"`
|
|
VirtualserversTotalClientsOnline int `json:"virtualservers_total_clients_online,string"`
|
|
VirtualserversTotalMaxclients int `json:"virtualservers_total_maxclients,string"`
|
|
}
|
|
|
|
// hostinfo `manage_scope, write_scope, read_scope`
|
|
func (c *TeamspeakHttpClient) HostInfo() (*HostInfo, error) {
|
|
var hostInfo []HostInfo
|
|
err := c.request("hostinfo", &hostInfo)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &hostInfo[0], nil
|
|
}
|
|
|
|
type Version struct {
|
|
Build string `json:"build"`
|
|
Platform string `json:"platform"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
// version `manage_scope, write_scope, read_scope`
|
|
func (c *TeamspeakHttpClient) Version() (*Version, error) {
|
|
var version []Version
|
|
err := c.request("version", &version)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &version[0], nil
|
|
}
|
|
|
|
type WhoamiInfo struct {
|
|
ClientChannelId int `json:"client_channel_id,string"`
|
|
ClientDatabaseId int `json:"client_database_id,string"`
|
|
ClientId int `json:"client_id,string"`
|
|
ClientLoginName string `json:"client_login_name"`
|
|
ClientNickname string `json:"client_nickname"`
|
|
ClientOriginServerId int `json:"client_origin_server_id,string"`
|
|
ClientUniqueIdentifier string `json:"client_unique_identifier"`
|
|
VirtualserverId int `json:"virtualserver_id,string"`
|
|
VirtualserverPort int `json:"virtualserver_port,string"`
|
|
VirtualserverStatus string `json:"virtualserver_status"`
|
|
VirtualserverUniqueIdentifier string `json:"virtualserver_unique_identifier"`
|
|
}
|
|
|
|
// whoami `manage_scope, write_scope, read_scope`
|
|
func (c *TeamspeakHttpClient) Whoami() (*WhoamiInfo, error) {
|
|
var whoami []WhoamiInfo
|
|
err := c.request("whoami", &whoami)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &whoami[0], nil
|
|
}
|
|
|
|
type Subsystem string
|
|
|
|
// noinspection GoUnusedConst
|
|
const (
|
|
SubsystemVoice Subsystem = "voice"
|
|
SubsystemQuery Subsystem = "query"
|
|
SubsystemFiletransfer Subsystem = "filetransfer"
|
|
)
|
|
|
|
type BindingListRequest struct {
|
|
Subsystem Subsystem `schema:"subsystem,omitempty"`
|
|
}
|
|
|
|
type Binding struct {
|
|
IP string `json:"ip"`
|
|
}
|
|
|
|
// bindinglist `manage_scope, read_scope`
|
|
func (c *TeamspeakHttpClient) BindingList(request BindingListRequest) (*[]Binding, error) {
|
|
var bindings []Binding
|
|
err := c.requestWithParams("bindinglist", request, &bindings)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &bindings, nil
|
|
}
|