From ab40d0f721fa4bc2b0c5faa0e9477bc78350f741 Mon Sep 17 00:00:00 2001
From: Bruno Nocera Zanette <bnzanette@inf.ufpr.br>
Date: Tue, 29 Sep 2015 13:32:28 -0300
Subject: [PATCH] Add File_Format Method & Fix Default_Thumbnail

---
 app/workers/thumbnail_generator_worker.rb | 21 +++++++++++++--------
 lib/tasks/thumbnail.rake                  |  2 +-
 lib/thumbnail/creation.rb                 | 10 +++++-----
 lib/thumbnail/formats.rb                  |  9 +++++++++
 4 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/app/workers/thumbnail_generator_worker.rb b/app/workers/thumbnail_generator_worker.rb
index d84aedf5..75b809f3 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 5ae12d9c..275a5026 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 039ae454..0531f651 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 c34ef649..4df246e9 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"]
-- 
GitLab