X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fmarkov.rb;h=dcf3b77679dc7e5ad304fa96a74f5efd8ba16d3b;hb=27cb79be57f9377d8c13dab2d7d0776e80dfd115;hp=5bae9bbd95ad8c55ad3b3c2c035b33f8befeea6b;hpb=ab69d59c03a101de571fece156c96409e5ba5b61;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/markov.rb b/data/rbot/plugins/markov.rb index 5bae9bbd..dcf3b776 100644 --- a/data/rbot/plugins/markov.rb +++ b/data/rbot/plugins/markov.rb @@ -190,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 @@ -204,15 +204,18 @@ class MarkovPlugin < Plugin wordlist = message.split(/\s+/) return unless wordlist.length >= 2 - 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