module DmCloud::Builder::Media
Public Class Methods
create(url = '', assets_names = [], meta = {})
click to toggle source
# File lib/dm_cloud/builder/media.rb, line 4 def self.create(url = '', assets_names = [], meta = {}) request = Hash.new request['url'] = url if not meta.empty? request['meta'] = {} request['meta']['author'] = meta[:author] if meta[:author] request['meta']['author'] = meta[:title] if meta[:title] end request['assets_names'] = assets_names if not assets_names.empty? request.rehash end
info(media_id, assets_names = ['source'], fields = {}, authToken = false)
click to toggle source
# File lib/dm_cloud/builder/media.rb, line 20 def self.info(media_id, assets_names = ['source'], fields = {}, authToken = false) raise StandardError, "missing :media_id in params" unless media_id request = Hash.new # the media id request[:id] = media_id # requested media meta datas request[:fields] = [] fields[:meta] = ['title'] unless fields[:meta] fields[:meta].each { |value| request[:fields] << "meta.#{value.to_s}" } if not authToken request[:fields] += ['id', 'created', 'embed_url', 'frame_ratio'] end # the worldwide statistics on the number of views # request['fields'] << 'stats.global.last_week' if fields[:stats][:global] # request['fields'] << 'assets.all.progress' # TODO: handle statistics request per country # fields[:stats].each { |key| request << "meta.#{key.to_s}" } if fields[:meta].present? # request['stats'][COUNTRY_CODE][TIME_INTERVAL] : the statistics on the number of views in a specific country (eg: stats.fr.total, stats.us.last_week, etc...) # request['extended_stats'][COUNTRY_CODE][TIME_INTERVAL] assets_names = ['source'] if assets_names.nil? if not fields[:assets] request = all_assets_fields(request, assets_names) else assets_names.each do |name| fields[:assets].each { |value| request[:fields] << "assets.#{name}.#{value.to_s}" } end end request end
list(page = 1, per_page = 10, fields = {})
click to toggle source
# File lib/dm_cloud/builder/media.rb, line 54 def self.list(page = 1, per_page = 10, fields = {}) # raise StandardError, "missing :media_id in params" unless media_id request = Hash.new request[:page] = page request[:per_page] = per_page request[:fields] = [] # requested media meta datas fields[:meta] = ['title'] unless fields[:meta] fields[:meta].each { |value| request[:fields] << "meta.#{value.to_s}" } request[:fields] += ['id', 'created', 'embed_url', 'frame_ratio'] # TODO: handle global statistics request in another module # the worldwide statistics on the number of views # request << 'stats.global.last_week' if fields[:stats][:global] # TODO: handle statistics request per country # fields[:stats].each { |key| request << "meta.#{key.to_s}" } if fields[:meta].present? # request['stats'][COUNTRY_CODE][TIME_INTERVAL] : the statistics on the number of views in a specific country (eg: stats.fr.total, stats.us.last_week, etc...) # request['extended_stats'][COUNTRY_CODE][TIME_INTERVAL] assets_names = ['source'] if assets_names.nil? if not fields[:assets] request = all_assets_fields(request, assets_names) else assets_names.each do |name| fields[:assets].each { |value| request[:fields] << "assets.#{name}.#{value.to_s}" } end end request end
Protected Class Methods
all_assets_fields(request, assets_names)
click to toggle source
This method exclude stats, but return all information for a media (video or images) NOTE: This is outside the methods because : too long and recurent.
It's also used as default if no fields params is submitted.
# File lib/dm_cloud/builder/media.rb, line 92 def self.all_assets_fields(request, assets_names) assets_names.each do |name| request[:fields] << "assets.#{name}.download_url" request[:fields] << "assets.#{name}.status" request[:fields] << "assets.#{name}.container" request[:fields] << "assets.#{name}.duration" request[:fields] << "assets.#{name}.global_bitrate" request[:fields] << "assets.#{name}.video_codec" request[:fields] << "assets.#{name}.video_width" request[:fields] << "assets.#{name}.video_height" request[:fields] << "assets.#{name}.video_bitrate" request[:fields] << "assets.#{name}.video_rotation" request[:fields] << "assets.#{name}.video_fps" request[:fields] << "assets.#{name}.video_fps_mode" request[:fields] << "assets.#{name}.video_aspect" request[:fields] << "assets.#{name}.video_interlaced" request[:fields] << "assets.#{name}.audio_codec" request[:fields] << "assets.#{name}.audio_bitrate" request[:fields] << "assets.#{name}.audio_nbr_channel" request[:fields] << "assets.#{name}.audio_samplerate" request[:fields] << "assets.#{name}.created" request[:fields] << "assets.#{name}.file_extension" request[:fields] << "assets.#{name}.file_size" request[:fields] << "assets.#{name}.progress" end request end