class Lita::Handlers::WebTitle
Constants
- URI_PROTOCOLS
Public Instance Methods
find_title(html)
click to toggle source
# File lib/lita/handlers/web_title.rb, line 42 def find_title(html) title_tag = Nokogiri::HTML(html).css('title').first return if title_tag.nil? title_tag.text .gsub(/(\A\s+|\s+\Z)/, '') .gsub(/\s+/, ' ') end
parse_uri(uriString)
click to toggle source
# File lib/lita/handlers/web_title.rb, line 27 def parse_uri(uriString) httpRequest = http.get(uriString) if httpRequest.status == 200 then return unless httpRequest.headers['Content-Type'] =~ %r{text/x?html} find_title(httpRequest.body) elsif [300, 301, 302, 303].include? httpRequest.status then parse_uri httpRequest.headers["Location"] else nil end rescue Exception => msg log.error("lita-web-title: Exception attempting to load URL: #{msg}") nil end
parse_uri_request(request)
click to toggle source
# File lib/lita/handlers/web_title.rb, line 13 def parse_uri_request(request) requestUri = URI::extract(request.message.body, URI_PROTOCOLS).first if config.ignore_patterns then if config.ignore_patterns.kind_of?(String) then Array(config.ignore_patterns) end config.ignore_patterns.each do |pattern| return if requestUri.match(%r{#{pattern}}) end end result = parse_uri(requestUri) request.reply(result.delete("\n").strip) unless result.nil? end