diff options
-rw-r--r-- | data/rbot/plugins/rss.rb | 24 |
1 files changed, 17 insertions, 7 deletions
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 |