markov.go: multiple line responses
continuous-integration/drone/push Build is passing Details

This commit is contained in:
an 2019-08-26 19:43:31 +02:00
parent 7fe45e2bc7
commit c85e1adcc4
1 changed files with 10 additions and 3 deletions

View File

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