Merge pull request #321 from tijmenb/fix-hosts-in-oneboxer
Fix display hosts in oneboxer
This commit is contained in:
commit
35d5c899dd
|
@ -43,6 +43,11 @@ module Oneboxer
|
||||||
@url
|
@url
|
||||||
end
|
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
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,12 +32,7 @@ module Oneboxer
|
||||||
args[:original_url] = @url
|
args[:original_url] = @url
|
||||||
args[:lang] = @lang || ""
|
args[:lang] = @lang || ""
|
||||||
args[:favicon] = ActionController::Base.helpers.image_path(self.class.favicon_file) if self.class.favicon_file.present?
|
args[:favicon] = ActionController::Base.helpers.image_path(self.class.favicon_file) if self.class.favicon_file.present?
|
||||||
begin
|
args[:host] = nice_host
|
||||||
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
|
|
||||||
|
|
||||||
Mustache.render(File.read(template), args)
|
Mustache.render(File.read(template), args)
|
||||||
rescue => ex
|
rescue => ex
|
||||||
|
|
|
@ -33,13 +33,7 @@ module Oneboxer
|
||||||
end
|
end
|
||||||
|
|
||||||
parsed['html'] ||= parsed['abstract']
|
parsed['html'] ||= parsed['abstract']
|
||||||
|
parsed['host'] = nice_host
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
Mustache.render(File.read(template), parsed)
|
Mustache.render(File.read(template), parsed)
|
||||||
|
|
|
@ -21,16 +21,9 @@ module Oneboxer
|
||||||
@opts[:original_url] = @url
|
@opts[:original_url] = @url
|
||||||
@opts[:text] = @opts['description']
|
@opts[:text] = @opts['description']
|
||||||
@opts[:unsafe] = true
|
@opts[:unsafe] = true
|
||||||
|
@opts[:host] = nice_host
|
||||||
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
|
|
||||||
|
|
||||||
Mustache.render(File.read(template), @opts)
|
Mustache.render(File.read(template), @opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -21,7 +21,7 @@ private
|
||||||
<div class='source'>
|
<div class='source'>
|
||||||
<div class='info'>
|
<div class='info'>
|
||||||
<a href='https://play.google.com/store/apps/details?id=com.moosoft.parrot' target="_blank">
|
<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>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -21,7 +21,7 @@ private
|
||||||
<div class='source'>
|
<div class='source'>
|
||||||
<div class='info'>
|
<div class='info'>
|
||||||
<a href='https://itunes.apple.com/us/app/minecraft-pocket-edition-lite/id479651754' target="_blank">
|
<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>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -22,7 +22,7 @@ private
|
||||||
<div class='source'>
|
<div class='source'>
|
||||||
<div class='info'>
|
<div class='info'>
|
||||||
<a href='http://en.wikipedia.org/wiki/Ruby' target="_blank">
|
<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>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -17,21 +17,21 @@ describe "Dynamic Oneboxer" do
|
||||||
@dummy_onebox_url = "http://dummy2.localhost/dummy-object"
|
@dummy_onebox_url = "http://dummy2.localhost/dummy-object"
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'find onebox for url' do
|
context 'find onebox for url' do
|
||||||
|
|
||||||
it 'returns blank with an unknown url' do
|
it 'returns blank with an unknown url' do
|
||||||
Oneboxer.onebox_for_url('http://asdfasdfasdfasdf.asdf').should be_blank
|
Oneboxer.onebox_for_url('http://asdfasdfasdfasdf.asdf').should be_blank
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns something when matched' do
|
it 'returns something when matched' do
|
||||||
Oneboxer.onebox_for_url(@dummy_onebox_url).should be_present
|
Oneboxer.onebox_for_url(@dummy_onebox_url).should be_present
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns an instance of our class when matched' do
|
it 'returns an instance of our class when matched' do
|
||||||
Oneboxer.onebox_for_url(@dummy_onebox_url).kind_of?(DummyDynamicOnebox).should be_true
|
Oneboxer.onebox_for_url(@dummy_onebox_url).kind_of?(DummyDynamicOnebox).should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -72,6 +72,24 @@ describe Oneboxer do
|
||||||
|
|
||||||
end
|
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
|
context 'without caching' do
|
||||||
it 'calls the onebox method of our matched class' do
|
it 'calls the onebox method of our matched class' do
|
||||||
Oneboxer.onebox_nocache(@dummy_onebox_url).should == 'dummy!'
|
Oneboxer.onebox_nocache(@dummy_onebox_url).should == 'dummy!'
|
||||||
|
@ -163,5 +181,3 @@ describe Oneboxer do
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue