From: Sergey Matveev Date: Sun, 12 Mar 2023 18:32:08 +0000 (+0300) Subject: Simpler statuses aggregation X-Git-Url: http://www.git.stargrave.org/?p=mmc.git;a=commitdiff_plain;h=ad007b4b852ee6c2656c9b5f5ad81fbec0646806 Simpler statuses aggregation --- diff --git a/cmd/mmc/main.go b/cmd/mmc/main.go index c4ac2d5..01b7d32 100644 --- a/cmd/mmc/main.go +++ b/cmd/mmc/main.go @@ -257,20 +257,17 @@ func main() { log.Println("OpenFile:", *userStatusFifo, err) continue } - var onlines []string - var aways []string + statuses := make(map[string][]string) for name, status := range UserStatus { - switch status { - case "online": - onlines = append(onlines, name) - case "away": - aways = append(aways, name) + statuses[status] = append(statuses[status], name) + } + for status := range statuses { + if status == "offline" { + continue } + sort.Strings(statuses[status]) + fmt.Fprintln(fd, status+":", strings.Join(statuses[status], " ")) } - sort.Strings(onlines) - sort.Strings(aways) - fmt.Fprintln(fd, "O:", strings.Join(onlines, " ")) - fmt.Fprintln(fd, "A:", strings.Join(aways, " ")) fd.Close() } }() @@ -555,13 +552,6 @@ func main() { } case model.WebsocketEventStatusChange: status := data["status"].(string) - switch status { - case "online": - case "offline": - case "away": - default: - log.Println(user.Username, "unknown status:", status) - } UserStatus[user.Username] = status if *notifyCmd != "" { exec.Command(*notifyCmd, fmt.Sprintf( diff --git a/cmd/start b/cmd/start index 52e6c00..b37c2d7 100755 --- a/cmd/start +++ b/cmd/start @@ -12,6 +12,6 @@ mkfifo debug users/status -e "s#CATFILE#$cmd/catfile#" \ -e "s#DLPANE#$cmd/dlpane#" < "$cmd"/tmux.conf > tmux.conf $TMUX -f tmux.conf new-session -d -n ROOT -s mmc "cat debug | tai64n | tai64nlocal" -$TMUX split-window -h 'while : ; do cat users/status | spc -e grn,"^O:.*" -e cya,"^A:.*" ; sleep 30 ; clear ; done' +$TMUX split-window -h 'while : ; do cat users/status | spc -e grn,"^online:.*" -e cya,"^away:.*" ; sleep 30 ; clear ; done' $TMUX split-window -v "$cmd/mmc/mmc -debug debug -user-status users/status -newwin $cmd/newwin -notify $cmd/notify | tai64n | tai64nlocal" $TMUX attach-session