]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - data/rbot/plugins/rss.rb
plugin(search): fix search and gcalc, closes #28, #29
[user/henk/code/ruby/rbot.git] / data / rbot / plugins / rss.rb
index 03e54140fe7d5ab6506db4a675dc4f9ccf67686c..f7e559f7601ed86a10a1e17c26da681e25e812cf 100644 (file)
@@ -151,6 +151,28 @@ module ::RSS
     SlashModel::ELEMENTS.collect! {|name| "#{SLASH_PREFIX}_#{name}"}
   end
 
+  if self.const_defined? :Atom
+    # There are improper Atom feeds around that use the non-standard
+    # 'modified' element instead of the correct 'updated' one. Let's
+    # support it too.
+    module Atom
+      class Feed
+        class Modified < RSS::Element
+          include CommonModel
+          include DateConstruct
+        end
+        __send__("install_have_child_element",
+                 "modified", URI, nil, "modified", :content)
+
+        class Entry
+          Modified = Feed::Modified
+          __send__("install_have_child_element",
+                   "modified", URI, nil, "modified", :content)
+        end
+      end
+    end
+  end
+
   class Element
     class << self
       def def_bang(name, chain)
@@ -309,7 +331,7 @@ class RSSFeedsPlugin < Plugin
     :desc => "Whether to display links from the text of a feed item.")
 
   # Make an  'unique' ID for a given item, based on appropriate bot options
-  # Currently only suppored is bot.config['rss.show_updated']: when false,
+  # Currently only supported is bot.config['rss.show_updated']: when false,
   # only the guid/link is accounted for.
 
   def make_uid(item)
@@ -370,7 +392,7 @@ class RSSFeedsPlugin < Plugin
           # do nothing
         else
           warning "ignoring #{v.inspect} wrapping of unknown class"
-        end
+        end unless ss[nk].nil?
       else
         subs[k] = v
       end
@@ -913,8 +935,8 @@ class RSSFeedsPlugin < Plugin
       stop_watches
 
       # Read watches from list.
-      watchlist.each{ |handle, feed|
-        watchRss(feed, m)
+      watchlist.each{ |hndl, fd|
+        watchRss(fd, m)
       }
       m.okay if m
     end