From 42652bd5d93b9173149510fa09defafc6ee4b89c Mon Sep 17 00:00:00 2001 From: dmitry kim Date: Thu, 10 Jul 2008 14:14:37 +0400 Subject: * (plugins/rss) fixed item unique ids --- data/rbot/plugins/rss.rb | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'data/rbot/plugins') diff --git a/data/rbot/plugins/rss.rb b/data/rbot/plugins/rss.rb index e5c2da11..fea6f352 100644 --- a/data/rbot/plugins/rss.rb +++ b/data/rbot/plugins/rss.rb @@ -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 -- cgit v1.2.3