Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
# pwd ; ls -l /usr/share/rbot/plugins total 632 -rwx------ 1 ant ant 212 2008-04-28 14:07 0001-A-better-rescue-for-failures.patch -rw-r--r-- 1 root root 1747 2008-03-20 17:33 autoop.rb -rw-r--r-- 1 root root 390 2008-03-20 17:33 autorejoin.rb -rw-r--r-- 1 root root 8520 2008-03-20 17:33 bans.rb -rw-r--r-- 1 root root 1631 2008-03-20 17:33 bash.rb -rw-r--r-- 1 root root 454 2008-03-20 17:33 cal.rb -rw-r--r-- 1 root root 2149 2008-03-20 17:33 chucknorris.rb -rw-r--r-- 1 root root 229967 2008-03-20 17:33 chucknorris.yml.gz -rw-r--r-- 1 root root 13777 2008-03-20 17:33 deepthoughts.rb -rw-r--r-- 1 root root 2643 2008-03-20 17:33 demauro.rb -rw-r--r-- 1 root root 2150 2008-03-20 17:33 dice.rb -rw-r--r-- 1 root root 1384 2008-03-20 17:33 digg.rb -rw-r--r-- 1 root root 757 2008-03-20 17:33 eightball.rb -rw-r--r-- 1 root root 21711 2008-03-20 17:33 excuse.rb -rw-r--r-- 1 ant ant 1386 2007-12-03 13:08 eztv-0.1.rb -rw-r--r-- 1 root root 2039 2008-03-20 17:33 fish.rb -rw-r--r-- 1 root root 4374 2008-03-20 17:33 forecast.rb -rw-r--r-- 1 root root 719 2008-03-20 17:33 fortune.rb -rw-r--r-- 1 root root 3142 2008-03-20 17:33 freshmeat.rb -rw-r--r-- 1 root root 1150 2008-03-20 17:33 google.rb -rw-r--r-- 1 root root 1016 2008-03-20 17:33 grouphug.rb -rw-r--r-- 1 ant ant 2144 2007-05-07 18:29 horo-0.1.rb -rw-r--r-- 1 root root 375 2008-03-20 17:33 host.rb -rw-r--r-- 1 root root 691 2008-03-20 17:33 httpd.rb.disabled -rw-r--r-- 1 root root 2339 2008-03-20 17:33 imdb.rb -rw-r--r-- 1 root root 4046 2008-03-20 17:33 insult.rb -rw-r--r-- 1 root root 5543 2008-03-20 17:33 iplookup.rb -rw-r--r-- 1 root root 2433 2008-03-20 17:33 karma.rb -rw-r--r-- 1 root root 15581 2008-03-20 17:33 keywords.rb -rw-r--r-- 1 root root 4359 2008-03-20 17:33 lart.rb -rw-r--r-- 1 root root 905 2008-03-20 17:33 lastfm.rb -rw-r--r-- 1 root root 5898 2008-03-20 17:33 markov.rb -rw-r--r-- 1 root root 3287 2008-03-20 17:33 math.rb -rw-r--r-- 1 ant ant 3375 2007-05-07 16:44 moon-0.2.rb -rw-r--r-- 1 root root 5363 2008-03-20 17:33 nickserv.rb -rw-r--r-- 1 ant ant 1285 2007-05-07 14:17 note-0.1.rb -rw-r--r-- 1 root root 1106 2008-03-20 17:33 nslookup.rb -rw-r--r-- 1 root root 366 2008-03-20 17:33 opme.rb -rw-r--r-- 1 root root 953 2008-03-11 16:02 qdb-0.3.rb -rw-r--r-- 1 root root 1429 2008-03-20 17:33 quakeauth.rb -rw-r--r-- 1 root root 12853 2008-03-20 17:33 quotes.rb -rw-r--r-- 1 root root 6710 2008-03-20 17:33 remind.rb -rw-r--r-- 1 root root 1586 2008-03-20 17:33 roshambo.rb -rw-r--r-- 1 root root 268 2008-03-20 17:33 rot13.rb -rw-r--r-- 1 root root 5986 2008-03-20 17:33 roulette.rb -rw-r--r-- 1 root root 17165 2008-03-20 17:33 rss.rb -rw-r--r-- 1 root root 1033 2008-03-20 17:33 rubyurl.rb.disabled -rw-r--r-- 1 root root 2872 2008-03-20 17:33 seen.rb -rw-r--r-- 1 root root 2761 2008-03-20 17:33 slashdot.rb -rw-r--r-- 1 root root 1021 2008-03-20 17:33 spell.rb -rw-r--r-- 1 root root 8171 2008-03-20 17:33 theyfightcrime.rb -rw-r--r-- 1 root root 1094 2008-03-20 17:33 threat.rb -rw-r--r-- 1 root root 1051 2008-03-20 17:33 tinyurl.rb.disabled -rw-r--r-- 1 root root 445 2008-02-06 14:24 toilet.rb -rw-r--r-- 1 root root 5588 2008-03-20 17:33 topic.rb -rw-r--r-- 1 root root 2317 2008-03-20 17:33 tube.rb -rw-r--r-- 1 ant ant 532 2007-05-25 13:00 unicode-0.1.rb -rw-r--r-- 1 root root 1948 2008-03-20 17:33 urban.rb.disabled -rw-r--r-- 1 root root 13666 2008-03-20 17:33 url.rb -rw-r--r-- 1 root root 26360 2008-03-20 17:33 weather.rb -rw-r--r-- 1 root root 3389 2008-03-20 17:33 wow.rb -rw-r--r-- 1 root root 1959 2008-03-20 17:33 wserver.rb -rw-r--r-- 1 root root 790 2008-03-20 17:33 xmlrpc.rb.disabled # cat 0001-A-better-rescue-for-failures.patch --- a/qdb.rb +++ b/qdb.rb @@ -30,7 +30,7 @@ class QdbPlugin < Plugin end rescue => e - m.reply "Fail" + m.reply "%s caught (%s)" % [e.class, e.backtrace[0]] end end -- 1.5.2.1 # patch qdb-0.3.rb 0001-A-better-rescue-for-failures.patch patching file qdb-0.3.rb # fgrep -n backtrace qdb-0.3.rb 33: m.reply "%s caught (%s)" % [e.class, e.backtrace[0]] # cat qdb-0.3.rb #-- vim:sw=2:et #++ # # :title: Qdb quote fetcher # # Author:: Jan Wikholm <jw@jw.fi> # Copyright:: (C) 2008 Jan Wikholm # License:: MIT # require 'rubygems' require 'hpricot' class QdbPlugin < Plugin def help(plugin, topic="") "qdb <id> => fetch qdb quote by id" end def retrieve(m) request = m.params url = "http://www.qdb.us/#{request}" begin doc = Hpricot(@bot.httputil.get(url)) quote = (doc/"table[@class='quote']/tr[2]/td[1]/p").text.split("\n") if quote.size <= @bot.config['send.max_lines'] quote.each {|line| m.reply line } else m.reply "quote too long (%s lines), see for yerself: %s or change limit by: config set send.max_lines NUMBER" % [quote.size, url] end rescue => e m.reply "%s caught (%s)" % [e.class, e.backtrace[0]] end end def privmsg(m) retrieve(m) end end plugin = QdbPlugin.new plugin.map "qdb *request", :action => 'retrieve', :thread => "yes" #so it won't lock -- [msg(bender)] qdb 28937 02:15PM [Bender(~rbot@[deleted my IP address] ArgumentError caught (/usr/share/rbot/plugins/qdb-0.3.rb:26:in `<=')
This paste will be private.
From the Design Piracy series on my blog: