require 'net/http' require 'cgi' require 'iconv' module IdleBota class Lamer < IdleBota::Plugin def all_lejmr(info) dotaz = nil if info[:params].empty? dotaz = "/quotes/random" elsif info[:params].first =~ /\d+/ dotaz = "/quotes/show/#{info[:params].first}" else dotaz = "/search/?q=#{info[:params].join(' ')}" end Net::HTTP.start('lamer.cz', 80) do |http| resp, body = http.get(dotaz) if body =~ /<div\s*id="quotes">(.*?)<\/p>/m quote = $1 quote.gsub!(/\s+/, " ") quote.gsub!(/<br\s*\/?>/i, "\n") quote.gsub!(/<.*?>/, "") quote.sub!(/\+\s*\(.*?\)\s*-\s*/, "") quote = CGI::unescapeHTML(quote) quote.strip! response(info, quote) end end end def all_bash(info) dotaz = nil if info[:params].empty? dotaz = "random" elsif info[:params].first =~ /\d+/ dotaz = info[:params].first else dotaz = "search=#{info[:params].join(' ')}" end Net::HTTP.start('bash.org', 80) do |http| resp, body = http.get("/?#{dotaz}") if body =~ /<p\s*class="quote">(.*?)(<\/td>|<p\s*class="quote">)/m quote = $1 quote.gsub!(/\s+/, " ") quote.gsub!(/<br\s*\/?>/i, "\n") quote.gsub!(/<.*?>/, "") quote.sub!(/\[X\]/, "") quote.sub!(/\+.*?-/, "") elsif body =~ /<font\s*class="bodytext">(.*?)<\/font>/ quote = $1 end quote = CGI::unescapeHTML(quote) quote.gsub!(/ /, " ") quote.strip! quote = Iconv.new('utf-8', 'iso-8859-1').iconv(quote) puts "BashLOG: #{dotaz}, #{quote}" $>.flush response(info, quote) end end end end # vim: ts=2 sw=2 foldmethod=marker et