]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
Make rss feed handle lookup case insensitive
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Mon, 30 Oct 2006 17:07:58 +0000 (17:07 +0000)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Mon, 30 Oct 2006 17:07:58 +0000 (17:07 +0000)
data/rbot/plugins/azgame.rb
data/rbot/plugins/rss.rb

index f2da4fa2a6a28dec6d6275c2aa89a3e914feb3df..ec80478923e61d892d48770d7cd2a0509bcb99ae 100644 (file)
@@ -31,7 +31,7 @@ class AzGame
     @plugin = plugin\r
     @lang = lang.to_sym\r
     @word = word.downcase\r
-    @range = [AZ_RULES[lang][:first], AZ_RULES[lang][:last]]\r
+    @range = [AZ_RULES[lang][:first].dup, AZ_RULES[lang][:last].dup]\r
     def @range.to_s\r
       return "%s -- %s" % self\r
     end\r
@@ -380,16 +380,11 @@ class AzGamePlugin < Plugin
         debug "getting random word from dictionary, matching #{random}"\r
         p = @bot.httputil.get_cached(rules[:url] % URI.escape(random))\r
         debug p\r
-        debug "here 1"\r
         lemmi = Array.new\r
-        debug "here 2"\r
         good = rules[:good]\r
-        debug "here 3"\r
         # We look for a lemma composed by a single word and of length at least two\r
         p.scan(/<span class="hwd">(.*?)<\/span>([^\n]+?)<span class="psa">#{rules[:good]}<\/span>/i) { |prelemma, discard|\r
-          debug "here 4"\r
           lemma = prelemma.downcase\r
-          debug "here 5"\r
           debug "checking lemma #{lemma} (#{prelemma}) and discarding #{discard}"\r
           next if wc.key?(lemma.to_sym)\r
           if lemma =~ /^[a-z]+$/\r
@@ -400,11 +395,8 @@ class AzGamePlugin < Plugin
             debug "funky characters, not good"\r
           end\r
         }\r
-        debug "here 6"\r
         next if lemmi.empty?\r
-        debug "here 7"\r
         word = lemmi[rand(lemmi.length)]\r
-        debug "here 8"\r
       end\r
     rescue => e\r
       error "error #{e.inspect} while looking up a word"\r
index dcbccb8c3fc4adc7e6527bee68ae4c3ecc69791b..16e1e643fa27435b0a31fb29296917638921bfd3 100644 (file)
@@ -118,6 +118,10 @@ class RSSFeedsPlugin < Plugin
     kill_threads\r
     if @registry.has_key?(:feeds)\r
       @feeds = @registry[:feeds]\r
+      @feeds.keys.grep(/[A-Z]/) { |k|\r
+        @feeds[k.downcase] = @feeds[k]\r
+        @feeds.delete(k)\r
+      }\r
     else\r
       @feeds = Hash.new\r
     end\r
@@ -204,7 +208,7 @@ class RSSFeedsPlugin < Plugin
       rev = false\r
     end\r
 \r
-    feed = @feeds.fetch(handle, nil)\r
+    feed = @feeds.fetch(handle.downcase, nil)\r
     unless feed\r
       m.reply "I don't know any feeds named #{handle}"\r
       return\r
@@ -246,7 +250,7 @@ class RSSFeedsPlugin < Plugin
     reply = String.new\r
     @@mutex.synchronize {\r
       @feeds.each { |handle, feed|\r
-        next if wanted and !handle.match(wanted)\r
+        next if wanted and !handle.match(/#{wanted}/i)\r
         reply << "#{feed.handle}: #{feed.url} (in format: #{feed.type ? feed.type : 'default'})"\r
         (reply << " (watched)") if feed.watched_by?(m.replyto)\r
         reply << "\n"\r
@@ -264,7 +268,7 @@ class RSSFeedsPlugin < Plugin
     reply = String.new\r
     @@mutex.synchronize {\r
       watchlist.each { |handle, feed|\r
-        next if wanted and !handle.match(wanted)\r
+        next if wanted and !handle.match(/#{wanted}/i)\r
         next unless feed.watched_by?(m.replyto)\r
         reply << "#{feed.handle}: #{feed.url} (in format: #{feed.type ? feed.type : 'default'})\n"\r
       }\r
@@ -284,8 +288,8 @@ class RSSFeedsPlugin < Plugin
       return\r
     end\r
     type = params[:type]\r
-    if @feeds.fetch(handle, nil) && !force\r
-      m.reply "There is already a feed named #{handle} (URL: #{@feeds[handle].url})"\r
+    if @feeds.fetch(handle.downcase, nil) && !force\r
+      m.reply "There is already a feed named #{handle} (URL: #{@feeds[handle.downcase].url})"\r
       return\r
     end\r
     unless url\r
@@ -293,7 +297,7 @@ class RSSFeedsPlugin < Plugin
       return\r
     end\r
     @@mutex.synchronize {\r
-      @feeds[handle] = RssBlob.new(url,handle,type)\r
+      @feeds[handle.downcase] = RssBlob.new(url,handle,type)\r
     }\r
     reply = "Added RSS #{url} named #{handle}"\r
     if type\r
@@ -310,7 +314,7 @@ class RSSFeedsPlugin < Plugin
       return\r
     end\r
     @@mutex.synchronize {\r
-      @feeds.delete(feed.handle)\r
+      @feeds.delete(feed.handle.downcase)\r
     }\r
     m.okay unless pass\r
     return\r
@@ -318,10 +322,10 @@ class RSSFeedsPlugin < Plugin
 \r
   def replace_rss(m, params)\r
     handle = params[:handle]\r
-    if @feeds.key?(handle)\r
+    if @feeds.key?(handle.downcase)\r
       del_rss(m, {:handle => handle}, true)\r
     end\r
-    if @feeds.key?(handle)\r
+    if @feeds.key?(handle.downcase)\r
       m.reply "can't replace #{feed.handle}"\r
     else\r
       add_rss(m, params, true)\r
@@ -341,7 +345,7 @@ class RSSFeedsPlugin < Plugin
     end\r
     feed = nil\r
     @@mutex.synchronize {\r
-      feed = @feeds.fetch(handle, nil)\r
+      feed = @feeds.fetch(handle.downcase, nil)\r
     }\r
     if feed\r
       @@mutex.synchronize {\r
@@ -358,7 +362,7 @@ class RSSFeedsPlugin < Plugin
   end\r
 \r
   def unwatch_rss(m, params, pass=false)\r
-    handle = params[:handle]\r
+    handle = params[:handle].downcase\r
     unless @feeds.has_key?(handle)\r
       m.reply("dunno that feed")\r
       return\r