markov.go: undo multiple line responses

This commit is contained in:
an 2019-08-26 23:11:58 +02:00
parent c85e1adcc4
commit 59bf94f173
1 changed files with 3 additions and 10 deletions

View File

@ -49,11 +49,8 @@ func markovHandleMessage(m *Message) {
responseText := markovChain.Generate(*markovAnswerLen, text) responseText := markovChain.Generate(*markovAnswerLen, text)
if responseText != "" { if responseText != "" {
go func() { go func() {
responses := strings.Split(responseText, "\n") time.Sleep(time.Duration(rand.Intn(8)+2) * time.Second)
for _, s := range responses { SayCh <- m.Channel + "\n" + responseText
time.Sleep(time.Duration(rand.Intn(8)+2) * time.Second)
SayCh <- m.Channel + "\n" + s
}
}() }()
} }
} }
@ -231,11 +228,7 @@ func (c *MarkovChain) Generate(n int, in string) string {
return start + " ... pfrrrz" return start + " ... pfrrrz"
} else { } else {
xlog.Debug("Found words: [%s]", strings.Join(words, " ")) xlog.Debug("Found words: [%s]", strings.Join(words, " "))
answer := start + " " + strings.Join(words, " ") return start + " " + strings.Join(words, " ")
if rand.Intn(100) < 25 {
answer = answer + "\n" + c.Generate(n, answer)
}
return answer
} }
} }