Initial commit
This commit is contained in:
56
app/presenters/video_analysis_presenter.rb
Normal file
56
app/presenters/video_analysis_presenter.rb
Normal file
@@ -0,0 +1,56 @@
|
||||
class VideoAnalysisPresenter
|
||||
def initialize(video, video_analysis, matches_presenter)
|
||||
@video = video
|
||||
@video_analysis = video_analysis
|
||||
@matches_presenter = matches_presenter
|
||||
end
|
||||
|
||||
def stale?
|
||||
return if video.analysis_started_at.nil?
|
||||
|
||||
latest_release_created_at = [
|
||||
video.appearance_releases.maximum(:created_at),
|
||||
video.talent_releases.maximum(:created_at),
|
||||
video.acquired_media_releases.maximum(:created_at)
|
||||
].compact.max
|
||||
latest_release_created_at > video.analysis_started_at
|
||||
end
|
||||
|
||||
def bookmarks
|
||||
video.bookmarks
|
||||
end
|
||||
|
||||
def unreleased_appearances
|
||||
video.unreleased_appearances
|
||||
end
|
||||
|
||||
def video_url
|
||||
return original_video_url if !video.analysis_success?
|
||||
|
||||
video_analysis.overlay_video_url || original_video_url
|
||||
end
|
||||
|
||||
def chronological_appearances
|
||||
@chronological_appearances ||= matches_presenter.build_chronological_matches
|
||||
end
|
||||
|
||||
def chronological_graphics_matches
|
||||
@chronological_graphics_matches ||= matches_presenter.build_graphics_matches
|
||||
end
|
||||
|
||||
def chronological_audio_matches
|
||||
@chronological_audio_matches ||= matches_presenter.build_chronological_audio_matches
|
||||
end
|
||||
|
||||
def all_tracks_edl_events
|
||||
@all_tracks_edl_events ||= matches_presenter.all_tracks_edl_events
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
attr_reader :video_analysis, :video, :matches_presenter
|
||||
|
||||
def original_video_url
|
||||
ApplicationController._routes.url_helpers.rails_blob_url(video.file, host: AppHost.new.domain_with_port)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user