diff --git a/txt/txt.go b/txt/txt.go new file mode 100644 index 0000000..f79a94d --- /dev/null +++ b/txt/txt.go @@ -0,0 +1,24 @@ +package txt + +const ( + CommandHelp = "!help" + CommandState = "!state" + CommandClose = "!closed" + + StateUnknown = "Ich weiß leider nicht ob der Space offen ist." + StateOpen = "Space ist OFFEN." + StateClosed = "Space ist zu." + + TransitionToOpen = "Space ist jetzt OFFEN!" + TransitionToClosed = "Space ist jetzt ZU!" + + HelpMessage = `Spacebot hat folgende Kommandos: + +!help - Diese Nachricht. +!state - Ist der Space offen? +!closed - Space ist zu. + +Gern geschehen.` + + ErrorNonPublic = "Bitte mach das öffentlich, damit jeder weiß von wem die Information ist." +) diff --git a/xmpp/xmpp.go b/xmpp/xmpp.go index e1de527..f377098 100644 --- a/xmpp/xmpp.go +++ b/xmpp/xmpp.go @@ -9,29 +9,10 @@ import ( "time" "git.hacknology.de/projekte/spaceapi" + "git.hacknology.de/projekte/spaceapi/txt" "github.com/mattn/go-xmpp" ) -const ( - commandHelp = "!help" - commandState = "!state" - commandClose = "!closed" - - helpMessage = `Spacebot hat folgende Kommandos: - -!help - Diese Nachricht. -!state - Ist der Space offen? -!closed - Space ist zu. - -Gern geschehen.` - - errorNonPublic = "Bitte mach das öffentlich, damit jeder weiß von wem die Information ist." - - stateUnknown = "Ich weiß leider nicht ob der Space offen ist." - stateOpen = "Space ist OFFEN." - stateClosed = "Space ist zu." -) - // Listener returns a storage listener that broadcasts changes in the state to an XMPP MUC. func Listener(storage *spaceapi.Storage, jid, password, target, handle string) (spaceapi.Listener, error) { xmppHost, err := lookupHost(jid) @@ -63,9 +44,9 @@ func Listener(storage *spaceapi.Storage, jid, password, target, handle string) ( return } - msg := "Space ist jetzt OFFEN!" + msg := txt.TransitionToOpen if !*new.State.Open { - msg = "Space ist jetzt ZU!" + msg = txt.TransitionToClosed } sendChan <- msg @@ -121,20 +102,20 @@ func clientLoop(storage *spaceapi.Storage, sendChan <-chan string, clientOpts xm func handleMessage(storage *spaceapi.Storage, client *xmpp.Client, target string, chat xmpp.Chat) error { switch chat.Text { - case commandHelp: - if err := sendMessage(client, chat.Remote, helpMessage); err != nil { + case txt.CommandHelp: + if err := sendMessage(client, chat.Remote, txt.HelpMessage); err != nil { return fmt.Errorf("error sending reply: %s", err) } - case commandState: + case txt.CommandState: state := storage.Status().State - msg := stateUnknown + msg := txt.StateUnknown if state.Open != nil { switch *state.Open { case true: - msg = stateOpen + msg = txt.StateOpen case false: - msg = stateClosed + msg = txt.StateClosed } } @@ -148,9 +129,9 @@ func handleMessage(storage *spaceapi.Storage, client *xmpp.Client, target string if err := sendFunc(client, replyTarget, msg); err != nil { return fmt.Errorf("error sending reply: %s", err) } - case commandClose: + case txt.CommandClose: if chat.Type != "groupchat" { - if err := sendMessage(client, chat.Remote, errorNonPublic); err != nil { + if err := sendMessage(client, chat.Remote, txt.ErrorNonPublic); err != nil { return fmt.Errorf("error sending reply: %s", err) }