Skip to content

Commit 31d840d

Browse files
authored
Merge pull request #6668 from avalonmediasystem/section_thumbnails
Pass section thumbnail urls to iiif_manifest
2 parents 24a6940 + 7be1f76 commit 31d840d

4 files changed

Lines changed: 36 additions & 2 deletions

File tree

app/models/iiif_canvas_presenter.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,8 @@ def manifest_attributes(quality, media_type, mimetype: 'application/x-mpegURL')
228228
height: (master_file.height || MasterFile::AUDIO_HEIGHT).to_i,
229229
duration: stream_info[:duration],
230230
type: media_type,
231-
format: mimetype
231+
format: mimetype,
232+
thumbnail: [{ id: thumbnail_url, type: 'Image' }]
232233
}.compact
233234

234235
if master_file.media_object.visibility == 'public'
@@ -308,4 +309,12 @@ def auth_service(quality)
308309
]
309310
}
310311
end
312+
313+
def thumbnail_url
314+
if master_file.is_video?
315+
Rails.application.routes.url_helpers.thumbnail_master_file_url(master_file.id)
316+
else
317+
ActionController::Base.helpers.asset_url('audio_icon.png')
318+
end
319+
end
311320
end

app/models/iiif_playlist_canvas_presenter.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,8 @@ def manifest_attributes(quality, media_type, mimetype: 'application/x-mpegURL')
201201
height: (master_file.height || MasterFile::AUDIO_HEIGHT).to_i,
202202
duration: stream_info[:duration],
203203
type: media_type,
204-
format: mimetype
204+
format: mimetype,
205+
thumbnail: [{ id: thumbnail_url, type: 'Image' }]
205206
}.compact
206207

207208
if master_file.media_object.visibility == 'public'
@@ -263,4 +264,12 @@ def auth_service(quality)
263264
]
264265
}
265266
end
267+
268+
def thumbnail_url
269+
if master_file.is_video?
270+
Rails.application.routes.url_helpers.thumbnail_master_file_url(master_file.id)
271+
else
272+
ActionController::Base.helpers.asset_url('audio_icon.png')
273+
end
274+
end
266275
end

spec/models/iiif_canvas_presenter_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@
8989
expect(subject.height).to eq 40
9090
end
9191

92+
it 'has thumbnail' do
93+
expect(subject.thumbnail.first[:id]).to start_with "http://test.host/assets/audio_icon"
94+
end
95+
9296
context 'with mp3 file' do
9397
let(:mp3_url) { 'https://streaming.example.com/dir/file.mp3' }
9498
let(:derivative) { FactoryBot.build(:derivative, hls_url: mp3_url, mime_type: 'audio/mpeg' ) }
@@ -113,6 +117,10 @@
113117
expect(subject.height).to eq 768
114118
end
115119

120+
it 'has thumbnail' do
121+
expect(subject.thumbnail.first[:id]).to eq "http://test.host/master_files/#{master_file.id}/thumbnail"
122+
end
123+
116124
context 'with mp4 file' do
117125
let(:mp4_url) { 'https://streaming.example.com/dir/file.mp4' }
118126
let(:derivative) { FactoryBot.build(:derivative, hls_url: mp4_url, mime_type: 'video/mp4' ) }

spec/models/iiif_playlist_canvas_presenter_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@
9191
expect(subject.height).to eq 40
9292
end
9393

94+
it 'has thumbnail' do
95+
expect(subject.thumbnail.first[:id]).to start_with "http://test.host/assets/audio_icon"
96+
end
97+
9498
context 'with mp3 file' do
9599
let(:mp3_url) { 'https://streaming.example.com/dir/file.mp3' }
96100
let(:derivative) { FactoryBot.build(:derivative, hls_url: mp3_url, mime_type: 'audio/mpeg' ) }
@@ -119,6 +123,10 @@
119123
expect(subject.height).to eq 768
120124
end
121125

126+
it 'has thumbnail' do
127+
expect(subject.thumbnail.first[:id]).to eq "http://test.host/master_files/#{master_file.id}/thumbnail"
128+
end
129+
122130
context 'with mp4 file' do
123131
let(:mp4_url) { 'https://streaming.example.com/dir/file.mp4' }
124132
let(:derivative) { FactoryBot.build(:derivative, hls_url: mp4_url, mime_type: 'video/mp4' ) }

0 commit comments

Comments
 (0)