diff --git a/app/logical/pixiv_ugoira_service.rb b/app/logical/pixiv_ugoira_service.rb index 831418b20..507c5c06e 100644 --- a/app/logical/pixiv_ugoira_service.rb +++ b/app/logical/pixiv_ugoira_service.rb @@ -23,7 +23,7 @@ class PixivUgoiraService def generate_resizes(source_path, output_path, preview_path, delay = true) # Run this a bit in the future to give the upload process time to move the file if delay - PixivUgoiraConverter.delay(:queue => Socket.gethostname, :run_at => 2.seconds.from_now).convert(source_path, output_path, preview_path, @frame_data) + PixivUgoiraConverter.delay(:queue => Socket.gethostname, :run_at => 2.seconds.from_now, :priority => -1).convert(source_path, output_path, preview_path, @frame_data) else PixivUgoiraConverter.convert(source_path, output_path, preview_path, @frame_data) end diff --git a/app/models/post.rb b/app/models/post.rb index c87b684ce..145d58e0f 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -152,6 +152,10 @@ class Post < ActiveRecord::Base def has_dimensions? image_width.present? && image_height.present? end + + def has_ugoira_webm? + created_at < 1.minute.ago || File.exists?(preview_file_path) + end end module ImageMethods diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index cbd2bbb14..9d2164933 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -10,6 +10,11 @@ class PostPresenter < Presenter return "" end + if post.is_ugoira? && !post.has_ugoira_webm? + # ugoira preview gen is async so dont render it immediately + return "" + end + path = options[:path_prefix] || "/posts" html = %{
} diff --git a/app/views/posts/partials/show/_ugoira.html.erb b/app/views/posts/partials/show/_ugoira.html.erb index 4e8c82dbf..8616d137b 100644 --- a/app/views/posts/partials/show/_ugoira.html.erb +++ b/app/views/posts/partials/show/_ugoira.html.erb @@ -28,7 +28,13 @@

Loaded 0%

- + <% content_for(:html_header) do %>