From e51c1c0156538d07d1eb1bf15a334c5164401448 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sun, 15 Mar 2009 11:04:24 +0100 Subject: [PATCH] rss: configurable announce method Since the RSS update announcements do not expect any form of reply, they could be considered the typical IRC message that should use NOTICE rather than PRIVMSG. However, for backwards compatibility and since NOTICEs are not always appreciated (and since their handling from clients is not always optimal, either), we still allow rss announces to use the traditional method, and that is in fact selected as default. Explicit rss show request always go with PRIVMSG. --- data/rbot/plugins/rss.rb | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/data/rbot/plugins/rss.rb b/data/rbot/plugins/rss.rb index dcd50b57..8004cb12 100644 --- a/data/rbot/plugins/rss.rb +++ b/data/rbot/plugins/rss.rb @@ -294,6 +294,11 @@ class RSSFeedsPlugin < Plugin :default => true, :desc => "Whether to display links from the text of a feed item.") + Config.register Config::EnumValue.new('rss.announce_method', + :values => ['say', 'notice'], + :default => 'say', + :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, # only the guid/link is accounted for. @@ -593,7 +598,12 @@ class RSSFeedsPlugin < Plugin m.reply "Channel : #{title}" disp.each do |item| - printFormattedRss(feed, item, {:places=>[m.replyto],:handle=>nil,:date=>true}) + printFormattedRss(feed, item, { + :places => [m.replyto], + :handle => nil, + :date => true, + :announce_method => :say + }) end end @@ -977,13 +987,16 @@ class RSSFeedsPlugin < Plugin opts = { :places => feed.watchers, :handle => feed.handle.empty? ? "" : "::#{feed.handle}:: ", - :date => false + :date => false, + :announce_method => @bot.config['rss.announce_method'] }.merge options date = String.new places = opts[:places] handle = opts[:handle].to_s + announce_method = opts[:announce_method] + if opts[:date] if item.respond_to?(:updated) if item.updated.content.class <= Time @@ -1076,7 +1089,7 @@ class RSSFeedsPlugin < Plugin places.each { |loc| output.to_s.each_line { |line| - @bot.say loc, line, :overlong => :truncate + @bot.__send__(announce_method, loc, line, :overlong => :truncate) } } end -- 2.39.2