diff --git a/app/workers/thumbnail_generator_worker.rb b/app/workers/thumbnail_generator_worker.rb index d84aedf5016787fdf9264efd84a4fb4a7813926c..75b809f3f6141524b8a98ee833ccf87476ebb84a 100644 --- a/app/workers/thumbnail_generator_worker.rb +++ b/app/workers/thumbnail_generator_worker.rb @@ -3,22 +3,27 @@ class ThumbnailGeneratorWorker include Sidekiq::Worker include RepositoriesProxy include Thumbnail::Creation + include Thumbnail::Formats def perform(learning_object_id) item = learning_object_repository.find(learning_object_id) filename = item.get_bitstream_filename_of "ORIGINAL" - size = "360x360" + size = "530x298" - begin - retrieve_link = item.get_bitstream_retrievelink_of "ORIGINAL" - file = download_bitstream(retrieve_link,filename) - rescue - puts "ERROR!!! Some error occurred during file download." + unless accepted_formats.include? file_format filename + item.thumbnail = default_thumbnail else - item.thumbnail = generate_thumbnail(file,filename,size) - delete_downloaded_bitstream(file) + begin + retrieve_link = item.get_bitstream_retrievelink_of "ORIGINAL" + file = download_bitstream(retrieve_link,filename) + rescue + puts "ERROR!!! Some error occurred during file download." + else + item.thumbnail = generate_thumbnail(file,filename,size) + delete_downloaded_bitstream(file) + end end learning_object_repository.update_property(item,"thumbnail",item.thumbnail) diff --git a/lib/tasks/thumbnail.rake b/lib/tasks/thumbnail.rake index 5ae12d9c2825a4fa744f889110a96dc862d32fea..275a50262ce95c6a25c12c7400116bae16724596 100644 --- a/lib/tasks/thumbnail.rake +++ b/lib/tasks/thumbnail.rake @@ -6,7 +6,7 @@ namespace :thumbnail do include RepositoriesProxy # Quantity of items fetched on each iteration - limit = 1000 + limit = 500 # Start point from where items will be fetched offset = 0 diff --git a/lib/thumbnail/creation.rb b/lib/thumbnail/creation.rb index 039ae4547e97b7dc08f42f0dd5f3899fd0807d79..0531f65155074be2661e8ce889e30e7fd48f33f3 100644 --- a/lib/thumbnail/creation.rb +++ b/lib/thumbnail/creation.rb @@ -4,7 +4,7 @@ module Thumbnail include Formats def generate_thumbnail(input, filename, size) - unless accepted_formats.include? File.extname(filename) + unless accepted_formats.include? file_format(filename) return default_thumbnail else thumbnail = thumbnail_path(filename, size) @@ -24,6 +24,10 @@ module Thumbnail end + def default_thumbnail + @default_thumbnail ||= nil + end + private def generate_video_thumbnail(input,output,size) @@ -52,10 +56,6 @@ module Thumbnail thumbnail_path = "#{thumbnails_dir}/#{thumbnail_name}_#{size}.jpg" end - def default_thumbnail - @default_thumbnail ||= "#{thumbnails_dir}/default_thumbnail.jpg" - end - def thumbnails_dir @thumbnails_dir ||= "/thumbnails" end diff --git a/lib/thumbnail/formats.rb b/lib/thumbnail/formats.rb index c34ef649707ef84ebb390693f83e0dd7f378ffc4..4df246e9bc30576c0886551952073f63750650cc 100644 --- a/lib/thumbnail/formats.rb +++ b/lib/thumbnail/formats.rb @@ -1,6 +1,15 @@ module Thumbnail module Formats + def file_format file + unless file.nil? + file_format = File.extname(file) + else + file_format = "" + end + file_format + end + def accepted_video_formats lower = [".mp4", ".wmv", ".3gp", ".asf", ".avi", ".flv", ".mov", ".mpg", ".mpeg", ".rmvb", ".vob", ".webm"] upper = [".MP4", ".WMV", ".3GP", ".ASF", ".AVI", ".FLV", ".MOV", ".MPG", ".MPEG", ".RMVB", ".VOB", ".WEBM"]