39 lines
1015 B
Ruby
39 lines
1015 B
Ruby
class BroadcastRecording < ApplicationRecord
|
|
belongs_to :broadcast
|
|
|
|
delegate :name, to: :broadcast, prefix: :broadcast
|
|
|
|
validates :asset_uid, uniqueness: true
|
|
|
|
scope :visible, -> { where(hidden: false) }
|
|
|
|
before_save :set_title_and_description
|
|
|
|
def download_url
|
|
"https://stream.mux.com/#{asset_playback_uid}/#{file_name}?download=#{name}"
|
|
end
|
|
|
|
def playback_url
|
|
"https://stream.mux.com/#{asset_playback_uid}/#{file_name}"
|
|
end
|
|
|
|
def download_file_name
|
|
"#{broadcast_name}_Date_#{Time.now.in_time_zone(broadcast.shoot_location_time_zone).strftime("%Y-%m-%d")}_Time_#{Time.now.in_time_zone(broadcast.shoot_location_time_zone).strftime("%T")}".parameterize
|
|
end
|
|
|
|
def toggle_star
|
|
toggle! :starred
|
|
end
|
|
|
|
def thumbnail_url(width = 300)
|
|
"https://image.mux.com/#{asset_playback_uid}/thumbnail.jpg?width=#{width}"
|
|
end
|
|
|
|
private
|
|
|
|
def set_title_and_description
|
|
self.name ||= download_file_name
|
|
self.description ||= "No description provided for this recording."
|
|
end
|
|
end
|