Fix display host for onebox
This commit is contained in:
parent
5c986be753
commit
eaef66a423
|
@ -43,6 +43,11 @@ module Oneboxer
|
|||
@url
|
||||
end
|
||||
|
||||
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
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -32,12 +32,7 @@ module Oneboxer
|
|||
args[:original_url] = @url
|
||||
args[:lang] = @lang || ""
|
||||
args[:favicon] = ActionController::Base.helpers.image_path(self.class.favicon_file) if self.class.favicon_file.present?
|
||||
begin
|
||||
parsed = URI.parse(@url)
|
||||
args[:host] = parsed.host.split('.').last(2).join('.')
|
||||
rescue URI::InvalidURIError
|
||||
# In case there is a problem with the URL, we just won't set the host
|
||||
end
|
||||
args[:host] = nice_host
|
||||
|
||||
Mustache.render(File.read(template), args)
|
||||
rescue => ex
|
||||
|
|
|
@ -33,13 +33,7 @@ module Oneboxer
|
|||
end
|
||||
|
||||
parsed['html'] ||= parsed['abstract']
|
||||
|
||||
begin
|
||||
parsed_uri = URI.parse(@url)
|
||||
parsed['host'] = parsed_uri.host.split('.').last(2).join('.')
|
||||
rescue URI::InvalidURIError
|
||||
# In case there is a problem with the URL, we just won't set the host
|
||||
end
|
||||
parsed['host'] = nice_host
|
||||
|
||||
|
||||
Mustache.render(File.read(template), parsed)
|
||||
|
|
|
@ -21,16 +21,9 @@ module Oneboxer
|
|||
@opts[:original_url] = @url
|
||||
@opts[:text] = @opts['description']
|
||||
@opts[:unsafe] = true
|
||||
|
||||
begin
|
||||
parsed = URI.parse(@url)
|
||||
@opts[:host] = parsed.host.split('.').last(2).join('.')
|
||||
rescue URI::InvalidURIError
|
||||
# In case there is a problem with the URL, we just won't set the host
|
||||
end
|
||||
@opts[:host] = nice_host
|
||||
|
||||
Mustache.render(File.read(template), @opts)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -21,7 +21,7 @@ private
|
|||
<div class='source'>
|
||||
<div class='info'>
|
||||
<a href='https://play.google.com/store/apps/details?id=com.moosoft.parrot' target="_blank">
|
||||
<img class='favicon' src="/assets/favicons/google_play.png"> google.com
|
||||
<img class='favicon' src="/assets/favicons/google_play.png"> play.google.com
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -21,7 +21,7 @@ private
|
|||
<div class='source'>
|
||||
<div class='info'>
|
||||
<a href='https://itunes.apple.com/us/app/minecraft-pocket-edition-lite/id479651754' target="_blank">
|
||||
<img class='favicon' src="/assets/favicons/apple.png"> apple.com
|
||||
<img class='favicon' src="/assets/favicons/apple.png"> itunes.apple.com
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -22,7 +22,7 @@ private
|
|||
<div class='source'>
|
||||
<div class='info'>
|
||||
<a href='http://en.wikipedia.org/wiki/Ruby' target="_blank">
|
||||
<img class='favicon' src="/assets/favicons/wikipedia.png"> wikipedia.org
|
||||
<img class='favicon' src="/assets/favicons/wikipedia.png"> en.wikipedia.org
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -72,6 +72,24 @@ describe Oneboxer do
|
|||
|
||||
end
|
||||
|
||||
describe '#nice_host' do
|
||||
it 'strips www from the domain' do
|
||||
DummyOnebox.new('http://www.cnn.com/thing').nice_host.should eq 'cnn.com'
|
||||
end
|
||||
|
||||
it 'respects double TLDs' do
|
||||
DummyOnebox.new('http://news.bbc.co.uk/thing').nice_host.should eq 'news.bbc.co.uk'
|
||||
end
|
||||
|
||||
it 'returns an empty string if the URL is bogus' do
|
||||
DummyOnebox.new('whatever').nice_host.should eq ''
|
||||
end
|
||||
|
||||
it 'returns an empty string if the URL unparsable' do
|
||||
DummyOnebox.new(nil).nice_host.should eq ''
|
||||
end
|
||||
end
|
||||
|
||||
context 'without caching' do
|
||||
it 'calls the onebox method of our matched class' do
|
||||
Oneboxer.onebox_nocache(@dummy_onebox_url).should == 'dummy!'
|
||||
|
|
Loading…
Reference in New Issue