X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fmarkov.rb;h=dcf3b77679dc7e5ad304fa96a74f5efd8ba16d3b;hb=aac060923bb64774d4a54a1dd8e5c1dfc2a70a4f;hp=3ce2ba4ffcdfb985b58a74eaf236ed6ac960f732;hpb=6597d0ddca268bada27cb5d7750a3fcce89dd658;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/markov.rb b/data/rbot/plugins/markov.rb index 3ce2ba4f..dcf3b776 100644 --- a/data/rbot/plugins/markov.rb +++ b/data/rbot/plugins/markov.rb @@ -32,7 +32,6 @@ class MarkovPlugin < Plugin @bot.config['markov.probability'] = @registry['probability'] @registry.delete('probability') end - @lastline = false end def generate_string(word1, word2) @@ -191,8 +190,8 @@ class MarkovPlugin < Plugin end end - def listen(m) - return unless m.kind_of?(PrivMessage) && m.public? + def message(m) + return unless m.public? return if m.address? return if ignore? m.source @@ -205,16 +204,18 @@ class MarkovPlugin < Plugin wordlist = message.split(/\s+/) return unless wordlist.length >= 2 - @lastline = message - word1, word2 = :nonword, :nonword - wordlist.each do |word3| - @registry["#{word1} #{word2}"] = @registry["#{word1} #{word2}"].push(word3) - word1, word2 = word2, word3 - end - @registry["#{word1} #{word2}"] = @registry["#{word1} #{word2}"].push(:nonword) + Thread.new do + word1, word2 = :nonword, :nonword + wordlist.each do |word3| + k = "#{word1} #{word2}" + @registry[k] = @registry[k].push(word3) + word1, word2 = word2, word3 + end + k = "#{word1} #{word2}" + @registry[k] = @registry[k].push(:nonword) - return if m.replied? - random_markov(m, message) + random_markov(m, message) unless m.replied? + end end end