X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Furl.rb;h=e380f29b6d428a771a9361b4ee2d8af66d8b876c;hb=16336b4a240a4265d1f2df1e30d7b68d3a924287;hp=826af10defec3c53b241ff972da73c2404326d06;hpb=ec5745fa7abd47b8ca12bd783b0759079dff9917;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/url.rb b/data/rbot/plugins/url.rb index 826af10d..e380f29b 100644 --- a/data/rbot/plugins/url.rb +++ b/data/rbot/plugins/url.rb @@ -71,7 +71,7 @@ class UrlPlugin < Plugin checks.flatten! unless checks.grep(@no_info_hosts).empty? - return "Sorry, info retrieval for #{url.host} (#{checks.first}) is disabled" + return ( opts[:always_reply] ? "Sorry, info retrieval for #{url.host} (#{checks.first}) is disabled" : false ) end logopts = opts.dup @@ -122,8 +122,15 @@ class UrlPlugin < Plugin return extra.join(", ") if title or not @bot.config['url.titles_only'] end - def handle_urls(m, urls, display_info=@bot.config['url.display_link_info']) - unless (channels = @bot.config['url.only_on_channels']).empty? + def handle_urls(m, params={}) + opts = { + :display_info => @bot.config['url.display_link_info'], + :channels => @bot.config['url.only_on_channels'] + }.merge params + urls = opts[:urls] + display_info= opts[:display_info] + channels = opts[:channels] + unless channels.empty? return unless channels.map { |c| c.downcase }.include?(m.channel.downcase) end @@ -140,6 +147,7 @@ class UrlPlugin < Plugin reply = nil begin title = get_title_for_url(urlstr, + :always_reply => m.address?, :nick => m.source.nick, :channel => m.channel, :ircline => m.message) @@ -160,7 +168,7 @@ class UrlPlugin < Plugin if display_info > urls_displayed if reply - m.reply reply, :overlong => :truncate, + m.reply reply, :overlong => :truncate, :to => :public, :nick => (m.address? ? :auto : false) urls_displayed += 1 end @@ -184,7 +192,12 @@ class UrlPlugin < Plugin def info(m, params) escaped = URI.escape(params[:urls].to_s, OUR_UNSAFE) urls = URI.extract(escaped) - Thread.new { handle_urls(m, urls, params[:urls].length) } + Thread.new do + handle_urls(m, + :urls => urls, + :display_info => params[:urls].length, + :channels => []) + end end def message(m) @@ -193,7 +206,7 @@ class UrlPlugin < Plugin escaped = URI.escape(m.message, OUR_UNSAFE) urls = URI.extract(escaped, ['http', 'https']) return if urls.empty? - Thread.new { handle_urls(m, urls) } + Thread.new { handle_urls(m, :urls => urls) } end def reply_urls(opts={})