X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fshortenurls.rb;h=782a4e2723e816671c35b655aec7d03debde6296;hb=c1e2f3a2f2ada21d19b893795bd4d7d58962f8b6;hp=81682581ecf2b2a55cf527ac8508b87b581c0b26;hpb=cb69e21777bac1c715ce505aeab5f2ce03ade71e;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/shortenurls.rb b/data/rbot/plugins/shortenurls.rb index 81682581..782a4e27 100644 --- a/data/rbot/plugins/shortenurls.rb +++ b/data/rbot/plugins/shortenurls.rb @@ -15,13 +15,17 @@ require "shorturl" require "uri" class ShortenURLs < Plugin - # starting from about shorturl 0.8.4, the WWW module is not defined + # starting from about shorturl 0.8.4, the WWW module is not defined include WWW rescue nil Config.register Config::ArrayValue.new('shortenurls.services_blacklist', :default => ['rubyurl', 'shorterlink'], :requires_rescan => true, :desc => "List of nonfunctioning shorturl services") + Config.register Config::StringValue.new('shortenurls.favorite_service', + :default => 'tinyurl', + :desc => "Default shortening service. Probably only applies when other plugins " + + "use this one for shortening") attr_accessor :services def initialize @@ -56,7 +60,14 @@ class ShortenURLs < Plugin return nil end - service = (params[:service] || m.plugin).to_sym + if params.has_key? :service + service = params[:service] + elsif m != nil and m.plugin != nil + service = m.plugin + else + service = @bot.config['shortenurls.favorite_service'] + end + service = service.to_sym service = :rubyurl if service == :shorturl tried = [] @@ -64,10 +75,10 @@ class ShortenURLs < Plugin begin tried << service - raise WWW::InvalidService, "#{service} blacklisted" if @blacklist.include?(service) - short = WWW::ShortURL.shorten(url, service) - raise WWW::InvalidService, "#{service} returned an empty string for #{url}" unless short and not short.empty? - rescue WWW::InvalidService + raise InvalidService, "#{service} blacklisted" if @blacklist.include?(service) + short = ShortURL.shorten(url, service) + raise InvalidService, "#{service} returned an empty string for #{url}" unless short and not short.empty? + rescue InvalidService pool = services - tried if pool.empty? m.reply "#{service} failed, and I don't know what else to try next" unless params[:called]