76 lines
2.0 KiB
Ruby
76 lines
2.0 KiB
Ruby
class EdlEventGateway
|
|
def initialize(files_for_request, timecode_start, timecode_end, collection: {}, channel_filter: "")
|
|
@files_for_request = files_for_request
|
|
@timecode_start = timecode_start
|
|
@timecode_end = timecode_end
|
|
@collection = collection
|
|
@channel_filter = channel_filter
|
|
end
|
|
|
|
def edl_events
|
|
@edl_events ||= response_results.
|
|
filter { |response_edl_event| response_edl_event.channel.include?(channel_filter) }.
|
|
map do |response_edl_event|
|
|
EdlEvent.new(
|
|
channel: response_edl_event.channel,
|
|
start_time: response_edl_event.start_time,
|
|
timecode_in: response_edl_event.timecode_in,
|
|
timecode_out: response_edl_event.timecode_out,
|
|
duration: response_edl_event.duration,
|
|
source_file_name: response_edl_event.source_file_name,
|
|
clip_name: response_edl_event.clip_name,
|
|
description: response_edl_event.description,
|
|
matches: response_edl_event.matches,
|
|
)
|
|
end
|
|
end
|
|
|
|
def edl_timecode_start
|
|
return if response.nil?
|
|
|
|
response.edl_timecode_start
|
|
end
|
|
|
|
def fps
|
|
return if response.nil?
|
|
|
|
response.fps
|
|
end
|
|
|
|
def edl_offset_seconds
|
|
return if response.nil?
|
|
|
|
response.edl_offset_seconds
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :files_for_request, :timecode_start, :timecode_end, :collection, :channel_filter
|
|
|
|
def as_json(*)
|
|
{
|
|
job_id: files_for_request.job_id,
|
|
video_bucket_name: files_for_request.aws_bucket_name,
|
|
video_object_name: files_for_request.file_object_name,
|
|
edl_bucket_name: files_for_request.aws_bucket_name,
|
|
edl_object_name: files_for_request.edl_file_object_name,
|
|
timecode_start: timecode_start,
|
|
timecode_end: timecode_end,
|
|
collection: collection,
|
|
edl_timecode_start: files_for_request.start_timecode_offset,
|
|
}.compact
|
|
end
|
|
|
|
def response_results
|
|
return [] if response.nil?
|
|
|
|
response.results
|
|
end
|
|
|
|
def response
|
|
@response ||= BrayniacAI::EdlParse.create as_json
|
|
rescue ActiveResource::ServerError => e
|
|
nil
|
|
end
|
|
end
|