From: Aaron Patterson Date: 2006-05-01T02:12:43+09:00 Subject: [SOLUTION] cat2rafb (#77) Here's my solution, also available at http://rubyurl.com/XxX --Aaron # Solution to [QUIZ] cat2rafb (#77) # By Aaron Patterson require 'rubygems' require 'mechanize' require 'getoptlong' PASTE_URL = 'http://rafb.net/paste/' RUBY_URL = 'http://rubyurl.com/' # Get options parser = GetoptLong.new parser.set_options( ['--lang', '-l', GetoptLong::OPTIONAL_ARGUMENT], ['--nick', '-n', GetoptLong::OPTIONAL_ARGUMENT], ['--desc', '-d', GetoptLong::OPTIONAL_ARGUMENT], ['--cvt_tabs', '-t', GetoptLong::OPTIONAL_ARGUMENT] ) opt_hash = {} parser.each_option { |name, arg| opt_hash[name.sub(/^--/, '')] = arg } # Get the text to be uploaded buffer = String.new if ARGV.length > 0 ARGV.each { |f| File.open(f, "r") { |file| buffer << file.read } } else buffer = $stdin.read end agent = WWW::Mechanize.new # Get the Paste() page page = agent.get(PASTE_URL) form = page.forms.first form.fields.name('text').first.value = buffer # Set all the options opt_hash.each { |k,v| form.fields.name(k).first.value = v } # Submit the form page = agent.submit(form) text_url = page.uri.to_s # Submit the link to RUBY URL page = agent.get(RUBY_URL) form = page.forms.first form.fields.name('rubyurl[website_url]').first.value = text_url page = agent.submit(form) puts page.links.find { |l| l.text == l.href }.href