forked from an/flokati
markov.go: multiple line responses
This commit is contained in:
parent
7fe45e2bc7
commit
c85e1adcc4
|
@ -49,8 +49,11 @@ func markovHandleMessage(m *Message) {
|
|||
responseText := markovChain.Generate(*markovAnswerLen, text)
|
||||
if responseText != "" {
|
||||
go func() {
|
||||
time.Sleep(time.Duration(rand.Intn(8)+2) * time.Second)
|
||||
SayCh <- m.Channel + "\n" + responseText
|
||||
responses := strings.Split(responseText, "\n")
|
||||
for _, s := range responses {
|
||||
time.Sleep(time.Duration(rand.Intn(8)+2) * time.Second)
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue