X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fchucknorris.rb;h=42385ff303a2b0a109835c5c7f2f002a05abf596;hb=531bc63bd14c6bc3fd98f7fbcfa2f9a01fe21eb0;hp=920757c62845fbd818b12377c642cdac99702eec;hpb=1b072614c42f43bf0d9cc5e2ce2499de776ab93d;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/chucknorris.rb b/data/rbot/plugins/chucknorris.rb index 920757c6..42385ff3 100644 --- a/data/rbot/plugins/chucknorris.rb +++ b/data/rbot/plugins/chucknorris.rb @@ -10,22 +10,26 @@ class ChuckNorrisPlugin < Plugin # Loadez les factes def initialize if path = find_facts_file('chucknorris.yml.gz') - fyml = Zlib::GzipReader.open(path) - elsif path = find_facts_File('chucknorris.yml') - fyml = open(path) + fyml = Zlib::GzipReader.open(path).read + elsif path = find_facts_file('chucknorris.yml') + fyml = open(path).read else raise "Error: Couldn't find chucknorris.yml[.gz]" end - - puts "+ [chucknorris] Loading #{path}..." - + + debug "+ [chucknorris] Loading #{path}..." + @@facts = YAML.load(fyml).map{|fact,(score,votes)| votes >= MIN_VOTES ? [score,fact] : nil}.compact - puts "+ [chucknorris] #{@@facts.length} Chuck Norris facts loaded..." - puts " Random fact: #{@@facts[rand(@@facts.size)].inspect}" - + debug "+ [chucknorris] #{@@facts.length} Chuck Norris facts loaded..." + debug " Random fact: #{@@facts[rand(@@facts.size)].inspect}" + super end - + + def name + "chucknorris" + end + # Just a little helper for the initialize method... def find_facts_file(name) full_path = File.join Config::datadir, "plugins", name @@ -36,21 +40,21 @@ class ChuckNorrisPlugin < Plugin found_files[0] end end - + # HELP! def help(plugin, topic="chuck") - "fact|chuck|norris|chucknorris [min_rating] => \"fact\" shows a random Chuck Norris fact (optional minimum rating from 1-10, default=6.0)." - #\"fact [person]\" shows a fact about someone in the channel. + "chuck|norris|chucknorris [min_rating] => show a random Chuck Norris fact (optional minimum rating from 1-10, default=6.0)." + #\"fact [person]\" shows a fact about someone in the channel. end # The meat. def fact(m, params) min = params[:minrating].to_f - puts "+ Getting Chuck Norris fact (rating > #{min})..." + debug "+ Getting Chuck Norris fact (rating > #{min})..." viable_facts = @@facts.select {|rating, fact| rating >= min} if viable_facts.empty? - puts " - no facts found with rating >= #{min}" + debug " - no facts found with rating >= #{min}" m.reply "Are you nuts?!? There are no facts better than #{min}!!!" return end @@ -63,7 +67,7 @@ end plugin = ChuckNorrisPlugin.new -plugin.map 'fact :minrating', :action => 'fact', :defaults => {:minrating=>MIN_RATING} +# plugin.map 'fact :minrating', :action => 'fact', :defaults => {:minrating=>MIN_RATING} plugin.map 'chucknorris :minrating', :action => 'fact', :defaults => {:minrating=>MIN_RATING} plugin.map 'chuck :minrating', :action => 'fact', :defaults => {:minrating=>MIN_RATING} plugin.map 'norris :minrating', :action => 'fact', :defaults => {:minrating=>MIN_RATING}