]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
* (plugins/rss) fixed item unique ids
authordmitry kim <jason@nichego.net>
Thu, 10 Jul 2008 10:14:37 +0000 (14:14 +0400)
committerdmitry kim <jason@nichego.net>
Thu, 10 Jul 2008 10:14:37 +0000 (14:14 +0400)
data/rbot/plugins/rss.rb

index e5c2da118b35369c70ad8fca072d831c08c467d3..fea6f352697df67d7ce8836a261eade8dce00a0c 100644 (file)
@@ -257,18 +257,28 @@ class RSSFeedsPlugin < Plugin
   # Make an  'unique' ID for a given item, based on appropriate bot options
   # Currently only suppored is bot.config['rss.show_updated']: when false,
   # only the guid/link is accounted for.
-  #
+  
+  def block_rescue(df = nil, &block)
+    block.call rescue nil
+  end
+
   def make_uid(item)
     uid = [
-      (item.guid.content rescue \
-       item.guid rescue \
-       item.link.href rescue \
-       item.link rescue ''
+      (block_rescue do item.guid.content end ||
+       block_rescue do item.guid end ||
+       block_rescue do item.link.href end ||
+       block_rescue do item.link end
       )
     ]
     if @bot.config['rss.show_updated']
-      uid.push((item.content.content rescue item.description rescue nil))
-      uid.unshift((item.title.content rescue item.title rescue nil))
+      uid.push(
+        block_rescue do item.content.content end ||
+        block_rescue do item.description end
+      )
+      uid.unshift(
+        block_rescue do item.title.content end ||
+        block_rescue do item.title end
+      )
     end
     uid.hash
   end