Skip to content
This repository has been archived by the owner on Jan 24, 2024. It is now read-only.

Commit

Permalink
improve log messages
Browse files Browse the repository at this point in the history
  • Loading branch information
irgendwr committed Mar 29, 2020
1 parent 4ea752b commit 11e8393
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 22 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Expand Up @@ -5,7 +5,7 @@
*.so
*.dylib
ts3-evict

*.tar.gz

# go releaser
dist/
Expand Down
40 changes: 22 additions & 18 deletions cmd/evict.go
Expand Up @@ -12,16 +12,18 @@ import (
)

type onlineClient struct {
ID int `ms:"cid"`
CLID int `ms:"clid"`
DatabaseID int `ms:"client_database_id"`
Nickname string `ms:"client_nickname"`
Type int `ms:"client_type"`
Away bool `ms:"client_away"`
AwayMessage string `ms:"client_away_message"`
LastConnected int64 `ms:"client_lastconnected"`
IdleTime int64 `ms:"client_idle_time"`
Servergroups string `ms:"client_servergroups"`
ID int `ms:"cid"`
CLID int `ms:"clid"`
UniqueIdentifier string `ms:"client_unique_identifier"`
ConnectionClientIP string `ms:"connection_client_ip"`
DatabaseID int `ms:"client_database_id"`
Nickname string `ms:"client_nickname"`
Type int `ms:"client_type"`
Away bool `ms:"client_away"`
AwayMessage string `ms:"client_away_message"`
LastConnected int64 `ms:"client_lastconnected"`
IdleTime int64 `ms:"client_idle_time"`
Servergroups string `ms:"client_servergroups"`
}

func evict(cfg config) error {
Expand All @@ -37,7 +39,9 @@ func evict(cfg config) error {
func (s server) evict(cfg config) error {
s.fillDefaults(cfg)

c, err := ts3.NewClient(fmt.Sprintf("%s:%d", s.IP, s.QueryPort))
addr := fmt.Sprintf("%s:%d", s.IP, s.QueryPort)
log.Printf("Checking %s...\n", addr)
c, err := ts3.NewClient(addr)
if err != nil {
return err
}
Expand All @@ -52,7 +56,7 @@ func (s server) evict(cfg config) error {
var mutex sync.Mutex

if err := c.UsePort(port); err != nil {
log.Printf("Invalid port '%d' on host '%s'\n", port, s.IP)
log.Printf("Error: Invalid port '%d' on host '%s'\n", port, s.IP)
continue
}

Expand All @@ -70,7 +74,7 @@ func (s server) evict(cfg config) error {
}

var clients []*onlineClient
if _, err := c.ExecCmd(ts3.NewCmd("clientlist").WithOptions("-times", "-groups").WithResponse(&clients)); err != nil {
if _, err := c.ExecCmd(ts3.NewCmd("clientlist").WithOptions("-uid", "-times", "-groups", "-info").WithResponse(&clients)); err != nil {
return err
}

Expand All @@ -88,10 +92,10 @@ func (s server) evict(cfg config) error {
continue
}

log.Printf("messaging client %s...\n", client.Nickname)
log.Printf("Messaging %s...\n", client.Nickname)
mutex.Lock()
if _, err := c.ExecCmd(ts3.NewCmd("sendtextmessage").WithArgs(ts3.NewArg("targetmode", 1), ts3.NewArg("target", client.CLID), ts3.NewArg("msg", cfg.Message))); err != nil {
log.Printf("Unable to send text message: %s\n", err)
log.Printf("Error: Unable to send message: %s\n", err)
}
mutex.Unlock()

Expand All @@ -101,22 +105,22 @@ func (s server) evict(cfg config) error {

time.Sleep(time.Duration(cfg.Delay) * time.Second)

log.Printf("evicting client %s...\n", client.Nickname)
log.Printf("Evicting %s | %s | %s ...\n", client.Nickname, client.UniqueIdentifier, client.ConnectionClientIP)

switch cfg.Action {
case "none":
break
case "ban":
mutex.Lock()
if _, err := c.ExecCmd(ts3.NewCmd("banclient").WithArgs(ts3.NewArg("clid", client.CLID))); err != nil {
log.Printf("Unable to ban %s: %s\n", client.Nickname, err)
log.Printf("Error: Unable to ban %s: %s\n", client.Nickname, err)
}
mutex.Unlock()
default:
case "kick":
mutex.Lock()
if _, err := c.ExecCmd(ts3.NewCmd("clientkick").WithArgs(ts3.NewArg("clid", client.CLID), ts3.NewArg("reasonid", 5 /* server kick*/))); err != nil {
log.Printf("Unable to kick %s: %s\n", client.Nickname, err)
log.Printf("Error: Unable to kick %s: %s\n", client.Nickname, err)
}
mutex.Unlock()
}
Expand Down
6 changes: 3 additions & 3 deletions cmd/root.go
Expand Up @@ -61,19 +61,19 @@ var rootCmd = &cobra.Command{
var cfg config
err := viper.Unmarshal(&cfg)
if err != nil {
log.Fatalf("Unable to read config: %s\n", err)
log.Fatalf("Error: Unable to read config: %s\n", err)
}

// if cfg.DefaultUsername == "" || cfg.DefaultPassword == "" {
// log.Fatalln("Please set your server-query username and password in the config file (" + defaultCfgFile + "." + defaultCfgFileType + ").")
// }

if !(cfg.Action == "kick" || cfg.Action == "ban" || cfg.Action == "none") {
log.Fatalln("Please set a valid action: either kick, ban or none.")
log.Fatalln("Error: Please set a valid action: either kick, ban or none.")
}

if err := evict(cfg); err != nil {
log.Fatalln(err)
log.Fatalf("Error: %s\n", err)
}
},
}
Expand Down

0 comments on commit 11e8393

Please sign in to comment.