discourse/lib/oneboxer/base_onebox.rb

54 lines
1.0 KiB
Ruby
Raw Normal View History

2013-02-06 03:16:51 +08:00
require 'open-uri'
module Oneboxer
class BaseOnebox
class << self
attr_accessor :regexp
attr_accessor :favicon_file
2013-02-06 13:22:11 +08:00
def matcher(regexp=nil,&blk)
self.regexp = regexp || blk
2013-02-06 03:16:51 +08:00
end
def favicon(favicon_file)
self.favicon_file = "favicons/#{favicon_file}"
end
def remove_whitespace(s)
s.gsub /\n/, ''
end
def image_html(url, title, page_url)
"<a href='#{page_url}' target='_blank'><img src='#{url}' alt='#{title}'></a>"
end
def replace_tags_with_spaces(s)
s.gsub /<[^>]+>/, ' '
end
def uriencode(val)
return URI.escape(val, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
end
end
def initialize(url, opts={})
2013-02-26 00:42:20 +08:00
@url = url
2013-02-06 03:16:51 +08:00
@opts = opts
end
def translate_url
@url
end
2013-03-02 07:46:55 +08:00
def nice_host
host = URI.parse(@url).host
host.nil? ? '' : host.gsub('www.', '')
rescue URI::InvalidURIError
'' # In case there is a problem with the URL, we just won't set the host
end
2013-02-06 03:16:51 +08:00
end
end