diff --git a/modules/markov.go b/modules/markov.go index 176f3ac..56171b7 100644 --- a/modules/markov.go +++ b/modules/markov.go @@ -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 } }