X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fmarkov.rb;h=dcf3b77679dc7e5ad304fa96a74f5efd8ba16d3b;hb=ff37e0e505811e14a203d8bf9213e8a5d0343acc;hp=bd7a673efbf1cdf0076e23cb446e016af3ab8e03;hpb=b65844bd23671dd86df00cd9a12385ecabd4f447;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/markov.rb b/data/rbot/plugins/markov.rb index bd7a673e..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) @@ -128,7 +127,7 @@ class MarkovPlugin < Plugin def probability(m, params) if params[:probability] - @bot.config['probability'] = params[:probability].to_i + @bot.config['markov.probability'] = params[:probability].to_i m.okay else m.reply _("markov has a %{prob}% chance of chipping in") % { :prob => probability? } @@ -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