]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - data/rbot/plugins/rubyurl.rb
Remove unused code from rss
[user/henk/code/ruby/rbot.git] / data / rbot / plugins / rubyurl.rb
index 89a2cc4b25a83304e585d959e0c2adbc1046b52a..96e78b9264df0a1a660f0fffc86ca66be1d70d18 100644 (file)
@@ -1,4 +1,5 @@
 require "shorturl"
+require "uri"
 
 class RubyURL < Plugin
 
@@ -7,32 +8,29 @@ class RubyURL < Plugin
     return "rubyurl <your long url>"
   end
 
-  # reply to a private message that we've registered for
-  def privmsg(m)
-
-    # m.params contains the rest of the message, m.plugin contains the first
-    # word (useful because it's possible to register for multiple commands)
-    unless(m.params)
-      m.reply "incorrect usage. " + help(m.plugin)
+  def shorten(m, params)
+    if (params[:url] == "help")
+      m.reply help(m.plugin)
+      return
     end
 
-    # TODO: might want to add a check here to validate the url
-    # if they call 'rubyurl help' backwards, don't return a lame link
-
-    if (m.params == "help")
-      m.reply "Try again. Correct usage is: " + help(m.plugin)
-      return false
+    url = params[:url]
+    begin
+      to_uri = URI.parse(url)
+      # We don't accept 'generic' URLs because almost everything gets in there
+      raise URI::InvalidURIError if to_uri.class == URI::Generic
+    rescue URI::InvalidURIError
+      m.reply "#{url} doesn't look like an URL to me ..."
+      return
     end
 
-    # call the ShortURL library with the value of the url
-    url = ShortURL.shorten(m.params)
-
-
-    m.reply "Your RubyURL: #{url}"
+    short = WWW::ShortURL.shorten(url)
 
+    m.reply "#{url} shortened to #{short} on RubyURL"
   end
+
 end
 
 # create an instance of the RubyURL class and register it as a plugin
 rubyurl = RubyURL.new
-rubyurl.register("rubyurl")
+rubyurl.map "rubyurl :url", :action => 'shorten'