]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
azgame plugin: move az rules into the plugin initialization
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Mon, 5 Feb 2007 11:42:20 +0000 (11:42 +0000)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Mon, 5 Feb 2007 11:42:20 +0000 (11:42 +0000)
data/rbot/plugins/azgame.rb

index c1ad3ea5b759019f38d1fcc9f71cdb6ff94bbfe5..6f55a0ad29028ce2a7a231ecad1c71b7db857909 100644 (file)
@@ -7,32 +7,16 @@
 #\r
 # TODO allow manual addition of words\r
 \r
 #\r
 # TODO allow manual addition of words\r
 \r
-AZ_RULES = {\r
-  :italian => {\r
-    :good => /s\.f\.|s\.m\.|agg\.|v\.tr\.|v\.(pronom\.)?intr\./, # avv\.|pron\.|cong\.\r
-    :bad => /var\./,\r
-    :first => 'abaco',\r
-    :last => 'zuzzurellone',\r
-    :url => "http://www.demauroparavia.it/%s",\r
-    :wapurl => "http://wap.demauroparavia.it/index.php?lemma=%s"\r
-  },\r
-  :english => {\r
-    :good => /(?:singular )?noun|verb|adj/,\r
-    :first => 'abacus',\r
-    :last => 'zuni',\r
-    :url => "http://www.chambersharrap.co.uk/chambers/features/chref/chref.py/main?query=%s&title=21st"\r
-  }\r
-}\r
-\r
 class AzGame\r
 \r
   attr_reader :range, :word\r
   attr_accessor :tries, :total_tries, :total_failed, :failed, :winner\r
 class AzGame\r
 \r
   attr_reader :range, :word\r
   attr_accessor :tries, :total_tries, :total_failed, :failed, :winner\r
-  def initialize(plugin, lang, word)\r
+  def initialize(plugin, lang, rules, word)\r
     @plugin = plugin\r
     @lang = lang.to_sym\r
     @word = word.downcase\r
     @plugin = plugin\r
     @lang = lang.to_sym\r
     @word = word.downcase\r
-    @range = [AZ_RULES[lang][:first].dup, AZ_RULES[lang][:last].dup]\r
+    @rules = rules\r
+    @range = [@rules[:first].dup, @rules[:last].dup]\r
     @total_tries = 0\r
     @total_failed = 0 # not used, reported, updated\r
     @tries = Hash.new(0)\r
     @total_tries = 0\r
     @total_failed = 0 # not used, reported, updated\r
     @tries = Hash.new(0)\r
@@ -99,6 +83,23 @@ class AzGamePlugin < Plugin
       @wordcache = Hash.new\r
     end\r
     debug "\n\n\nA-Z wordcache: #{@wordcache.inspect}\n\n\n"\r
       @wordcache = Hash.new\r
     end\r
     debug "\n\n\nA-Z wordcache: #{@wordcache.inspect}\n\n\n"\r
+    @rules = {\r
+      :italian => {\r
+      :good => /s\.f\.|s\.m\.|agg\.|v\.tr\.|v\.(pronom\.)?intr\./, # avv\.|pron\.|cong\.\r
+      :bad => /var\./,\r
+      :first => 'abaco',\r
+      :last => 'zuzzurellone',\r
+      :url => "http://www.demauroparavia.it/%s",\r
+      :wapurl => "http://wap.demauroparavia.it/index.php?lemma=%s"\r
+    },\r
+    :english => {\r
+      :good => /(?:singular )?noun|verb|adj/,\r
+      :first => 'abacus',\r
+      :last => 'zuni',\r
+      :url => "http://www.chambersharrap.co.uk/chambers/features/chref/chref.py/main?query=%s&title=21st"\r
+    }\r
+    }\r
+\r
   end\r
 \r
   def save\r
   end\r
 \r
   def save\r
@@ -183,7 +184,7 @@ class AzGamePlugin < Plugin
       lang = (params[:lang] || @bot.config['core.language']).to_sym\r
       method = 'random_pick_'+lang.to_s\r
       m.reply "let me think ..."\r
       lang = (params[:lang] || @bot.config['core.language']).to_sym\r
       method = 'random_pick_'+lang.to_s\r
       m.reply "let me think ..."\r
-      if AZ_RULES.has_key?(lang) and self.respond_to?(method)\r
+      if @rules.has_key?(lang) and self.respond_to?(method)\r
         word = self.send(method)\r
         if word.empty?\r
           m.reply "couldn't think of anything ..."\r
         word = self.send(method)\r
         if word.empty?\r
           m.reply "couldn't think of anything ..."\r
@@ -194,7 +195,7 @@ class AzGamePlugin < Plugin
         return\r
       end\r
       m.reply "got it!"\r
         return\r
       end\r
       m.reply "got it!"\r
-      @games[k] = AzGame.new(self, lang, word)\r
+      @games[k] = AzGame.new(self, lang, @rules[lang], word)\r
     end\r
     tr = @games[k].total_tries\r
     case tr\r
     end\r
     tr = @games[k].total_tries\r
     case tr\r
@@ -297,7 +298,7 @@ class AzGamePlugin < Plugin
     end\r
     wc = @wordcache[:italian]\r
     return true if wc.key?(word.to_sym)\r
     end\r
     wc = @wordcache[:italian]\r
     return true if wc.key?(word.to_sym)\r
-    rules = AZ_RULES[:italian]\r
+    rules = @rules[:italian]\r
     p = @bot.httputil.get_cached(rules[:wapurl] % word)\r
     if not p\r
       error "could not connect!"\r
     p = @bot.httputil.get_cached(rules[:wapurl] % word)\r
     if not p\r
       error "could not connect!"\r
@@ -324,7 +325,7 @@ class AzGamePlugin < Plugin
       m.reply "#{min} > #{max}"\r
       return word\r
     end\r
       m.reply "#{min} > #{max}"\r
       return word\r
     end\r
-    rules = AZ_RULES[:italian]\r
+    rules = @rules[:italian]\r
     min = rules[:first] if min.empty?\r
     max = rules[:last]  if max.empty?\r
     debug "looking for word between #{min.inspect} and #{max.inspect}"\r
     min = rules[:first] if min.empty?\r
     max = rules[:last]  if max.empty?\r
     debug "looking for word between #{min.inspect} and #{max.inspect}"\r
@@ -392,7 +393,7 @@ class AzGamePlugin < Plugin
     end\r
     wc = @wordcache[:english]\r
     return true if wc.key?(word.to_sym)\r
     end\r
     wc = @wordcache[:english]\r
     return true if wc.key?(word.to_sym)\r
-    rules = AZ_RULES[:english]\r
+    rules = @rules[:english]\r
     p = @bot.httputil.get_cached(rules[:url] % URI.escape(word))\r
     if not p\r
       error "could not connect!"\r
     p = @bot.httputil.get_cached(rules[:url] % URI.escape(word))\r
     if not p\r
       error "could not connect!"\r
@@ -416,7 +417,7 @@ class AzGamePlugin < Plugin
       m.reply "#{min} > #{max}"\r
       return word\r
     end\r
       m.reply "#{min} > #{max}"\r
       return word\r
     end\r
-    rules = AZ_RULES[:english]\r
+    rules = @rules[:english]\r
     min = rules[:first] if min.empty?\r
     max = rules[:last]  if max.empty?\r
     debug "looking for word between #{min.inspect} and #{max.inspect}"\r
     min = rules[:first] if min.empty?\r
     max = rules[:last]  if max.empty?\r
     debug "looking for word between #{min.inspect} and #{max.inspect}"\r