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)
|
responseText := markovChain.Generate(*markovAnswerLen, text)
|
||||||
if responseText != "" {
|
if responseText != "" {
|
||||||
go func() {
|
go func() {
|
||||||
|
responses := strings.Split(responseText, "\n")
|
||||||
|
for _, s := range responses {
|
||||||
time.Sleep(time.Duration(rand.Intn(8)+2) * time.Second)
|
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"
|
return start + " ... pfrrrz"
|
||||||
} else {
|
} else {
|
||||||
xlog.Debug("Found words: [%s]", strings.Join(words, " "))
|
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