* import of timtracks working
This commit is contained in:
parent
184bf2ba4d
commit
51429e8b5a
|
|
@ -311,4 +311,5 @@ affiliate_partner_rate.sql
|
|||
track_downloads.sql
|
||||
jam_track_lang_idx.sql
|
||||
giftcard.sql
|
||||
add_description_to_crash_dumps.sql
|
||||
add_description_to_crash_dumps.sql
|
||||
acappella.sql
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
INSERT INTO genres (id, description) values ('acapella', 'A Capella');
|
||||
ALTER TABLE jam_track_licensors ADD COLUMN slug VARCHAR UNIQUE;
|
||||
|
|
@ -431,7 +431,8 @@ module JamRuby
|
|||
|
||||
if is_tim_tracks_storage?
|
||||
song = metalocation[(first_dash+3)..-1].strip
|
||||
else
|
||||
bits << song
|
||||
elsif is_tency_storage?
|
||||
last_dash = metalocation.rindex('-')
|
||||
if last_dash
|
||||
song = metalocation[(first_dash+3)...last_dash].strip
|
||||
|
|
@ -467,24 +468,14 @@ module JamRuby
|
|||
end
|
||||
end
|
||||
|
||||
# if you change this, it will (at least without some work )break development usage of jamtracks
|
||||
def gen_plan_code(original_artist, name)
|
||||
# remove all non-alphanumeric chars from artist as well as name
|
||||
artist_code = original_artist.gsub(/[^0-9a-z]/i, '').downcase
|
||||
name_code = name.gsub(/[^0-9a-z]/i, '').downcase
|
||||
"jamtrack-#{artist_code[0...20]}-#{name_code}"[0...50] # make sure it's a max of 50 long
|
||||
end
|
||||
|
||||
def dry_run_metadata(metadata, original_artist, name)
|
||||
|
||||
self.name = metadata["name"] || name
|
||||
|
||||
original_artist = metadata["original_artist"] || original_artist
|
||||
plan_code = metadata["plan_code"] || gen_plan_code(original_artist, self.name)
|
||||
description = metadata["description"]
|
||||
|
||||
@@log.debug("#{self.name} original_artist=#{original_artist}")
|
||||
@@log.debug("#{self.name} plan_code=#{plan_code}")
|
||||
|
||||
true
|
||||
end
|
||||
|
|
@ -623,7 +614,6 @@ module JamRuby
|
|||
jam_track.year = metadata[:year]
|
||||
jam_track.genres = determine_genres(metadata)
|
||||
jam_track.language = determine_language(metadata)
|
||||
jam_track.plan_code = metadata["plan_code"] || gen_plan_code(jam_track.original_artist, jam_track.name)
|
||||
jam_track.price = 1.99
|
||||
jam_track.reproduction_royalty_amount = nil
|
||||
jam_track.reproduction_royalty = true
|
||||
|
|
@ -636,19 +626,25 @@ module JamRuby
|
|||
jam_track.alternative_license_status = false
|
||||
jam_track.hfa_license_desired = true
|
||||
jam_track.server_fixation_date = Time.now
|
||||
jam_track.slug = metadata['slug']
|
||||
unless jam_track.slug
|
||||
jam_track.generate_slug
|
||||
end
|
||||
|
||||
if is_tency_storage?
|
||||
jam_track.vendor_id = metadata[:id]
|
||||
jam_track.licensor = JamTrackLicensor.find_by_name('Tency Music')
|
||||
jam_track.licensor = JamTrackLicensor.find_by_name!('Tency Music')
|
||||
#add_licensor_metadata('Tency Music', metalocation)
|
||||
elsif is_tim_tracks_storage?
|
||||
jam_track.vendor_id = metadata[:id]
|
||||
jam_track.licensor = JamTrackLicensor.find_by_name('Tim Waurick')
|
||||
jam_track.licensor = JamTrackLicensor.find_by_name!('Tim Waurick')
|
||||
end
|
||||
jam_track.slug = metadata['slug']
|
||||
if jam_track.slug.nil?
|
||||
jam_track.generate_slug
|
||||
end
|
||||
jam_track.plan_code = metadata["plan_code"]
|
||||
if jam_track.plan_code.nil?
|
||||
jam_track.gen_plan_code
|
||||
end
|
||||
|
||||
|
||||
|
||||
else
|
||||
if !options[:resync_audio]
|
||||
#@@log.debug("#{self.name} skipped because it already exists in database")
|
||||
|
|
@ -798,6 +794,9 @@ module JamRuby
|
|||
elsif potential_instrument == 'claps' || potential_instrument == 'hand claps'
|
||||
instrument = 'other'
|
||||
part = 'Claps'
|
||||
elsif potential_instrument == 'snaps' || potential_instrument == 'snap'
|
||||
instrument = 'other'
|
||||
part = 'Snaps'
|
||||
else
|
||||
found_instrument = Instrument.find_by_id(potential_instrument)
|
||||
if found_instrument
|
||||
|
|
@ -1383,6 +1382,7 @@ module JamRuby
|
|||
next
|
||||
end
|
||||
|
||||
puts "track.original_audio_s3_path #{track.original_audio_s3_path}"
|
||||
basename = File.basename(track.original_audio_s3_path)
|
||||
s3_dirname = File.dirname(track.original_audio_s3_path)
|
||||
|
||||
|
|
@ -1393,6 +1393,7 @@ module JamRuby
|
|||
mp3_48000_s3_path = track.filename(mp3_48000_filename)
|
||||
aac_48000_s3_path = track.filename(aac_48000_filename)
|
||||
|
||||
puts "mp3_48000_s3_path #{mp3_48000_s3_path}"
|
||||
track.skip_uploader = true
|
||||
|
||||
if skip_audio_upload
|
||||
|
|
@ -2481,7 +2482,11 @@ module JamRuby
|
|||
else
|
||||
begin
|
||||
data = s3_manager.read_all(metalocation)
|
||||
return YAML.load(data)
|
||||
meta = YAML.load(data)
|
||||
|
||||
if is_tim_tracks_storage?
|
||||
meta[:genres] = ['acapella']
|
||||
end
|
||||
rescue AWS::S3::Errors::NoSuchKey
|
||||
return nil
|
||||
end
|
||||
|
|
|
|||
|
|
@ -469,6 +469,27 @@ module JamRuby
|
|||
|
||||
def generate_slug
|
||||
self.slug = sluggarize(original_artist) + '-' + sluggarize(name)
|
||||
|
||||
if licensor
|
||||
raise "no slug on licensor #{licensor.id}" if licensor.slug.nil?
|
||||
self.slug << "-" + licensor.slug
|
||||
end
|
||||
end
|
||||
|
||||
def gen_plan_code
|
||||
# remove all non-alphanumeric chars from artist as well as name
|
||||
artist_code = original_artist.gsub(/[^0-9a-z]/i, '').downcase
|
||||
name_code = name.gsub(/[^0-9a-z]/i, '').downcase
|
||||
self.plan_code = "jamtrack-#{artist_code[0...20]}-#{name_code}"
|
||||
|
||||
if licensor
|
||||
raise "no slug on licensor #{licensor.id}" if licensor.slug.nil?
|
||||
self.plan_code << "-" + licensor.slug
|
||||
end
|
||||
|
||||
self.plan_code = self.plan_code[0...50] # make sure it's a max of 50 long
|
||||
|
||||
|
||||
end
|
||||
|
||||
def to_s
|
||||
|
|
|
|||
|
|
@ -27,9 +27,18 @@ module JamRuby
|
|||
"jam_track_files"
|
||||
end
|
||||
|
||||
def licensor_suffix
|
||||
suffix = ''
|
||||
if jam_track.licensor
|
||||
raise "no licensor name" if jam_track.licensor.name.nil?
|
||||
suffix = " - #{jam_track.licensor.name}"
|
||||
end
|
||||
suffix
|
||||
end
|
||||
|
||||
# create name of the file
|
||||
def filename(original_name)
|
||||
"#{store_dir}/#{jam_track.original_artist}/#{jam_track.name}/#{original_name}"
|
||||
"#{store_dir}/#{jam_track.original_artist}/#{jam_track.name}#{licensor_suffix}/#{original_name}"
|
||||
end
|
||||
|
||||
def manually_uploaded_filename
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ module JamRuby
|
|||
table_name = 'jam_track_licensors'
|
||||
|
||||
attr_accessible :name, :description, :attention, :address_line_1, :address_line_2,
|
||||
:city, :state, :zip_code, :contact, :email, :phone, as: :admin
|
||||
:city, :state, :zip_code, :contact, :email, :phone, :slug, as: :admin
|
||||
|
||||
validates :name, presence: true, uniqueness: true, length: {maximum: 200}
|
||||
validates :description, length: {maximum: 1000}
|
||||
|
|
|
|||
|
|
@ -41,9 +41,19 @@ module JamRuby
|
|||
"jam_track_tracks"
|
||||
end
|
||||
|
||||
|
||||
def licensor_suffix
|
||||
suffix = ''
|
||||
if jam_track.licensor
|
||||
raise "no licensor name" if jam_track.licensor.name.nil?
|
||||
suffix = " - #{jam_track.licensor.name}"
|
||||
end
|
||||
suffix
|
||||
end
|
||||
|
||||
# create name of the file
|
||||
def filename(original_name)
|
||||
"#{store_dir}/#{jam_track.original_artist}/#{jam_track.name}/#{original_name}"
|
||||
"#{store_dir}/#{jam_track.original_artist}/#{jam_track.name}#{licensor_suffix}/#{original_name}"
|
||||
end
|
||||
|
||||
# create name of the preview file.
|
||||
|
|
@ -54,7 +64,7 @@ module JamRuby
|
|||
end
|
||||
|
||||
def preview_directory
|
||||
"jam_track_previews/#{jam_track.original_artist}/#{jam_track.name}"
|
||||
"jam_track_previews/#{jam_track.original_artist}/#{jam_track.name}#{licensor_suffix}"
|
||||
end
|
||||
|
||||
def has_preview?
|
||||
|
|
@ -196,6 +206,7 @@ module JamRuby
|
|||
uuid = SecureRandom.uuid
|
||||
output = File.join(tmp_dir, "#{uuid}.ogg")
|
||||
output_mp3 = File.join(tmp_dir, "#{uuid}.mp3")
|
||||
output_aac = File.join(tmp_dir, "#{uuid}.aac")
|
||||
|
||||
start = self.preview_start_time.to_f / 1000
|
||||
stop = start + 20
|
||||
|
|
@ -225,35 +236,55 @@ module JamRuby
|
|||
@@log.debug("fail #{result_code}")
|
||||
@preview_generate_error = "unable to execute mp3 convert command #{convert_output}"
|
||||
else
|
||||
ogg_digest = ::Digest::MD5.file(output)
|
||||
mp3_digest = ::Digest::MD5.file(output_mp3)
|
||||
self["preview_md5"] = ogg_md5 = ogg_digest.hexdigest
|
||||
self["preview_mp3_md5"] = mp3_md5 = mp3_digest.hexdigest
|
||||
|
||||
@@log.debug("uploading ogg preview to #{self.preview_filename('ogg')}")
|
||||
s3_public_manager.upload(self.preview_filename(ogg_md5, 'ogg'), output, content_type: 'audio/ogg', content_md5: ogg_digest.base64digest)
|
||||
@@log.debug("uploading mp3 preview to #{self.preview_filename('mp3')}")
|
||||
s3_public_manager.upload(self.preview_filename(mp3_md5, 'mp3'), output_mp3, content_type: 'audio/mpeg', content_md5: mp3_digest.base64digest)
|
||||
convert_aac_cmd = "#{APP_CONFIG.ffmpeg_path} -i \"#{output}\" -c:a libfdk_aac -b:a 192k \"#{output_aac}\""
|
||||
@@log.debug("converting to aac using: " + convert_aac_cmd)
|
||||
|
||||
self.skip_uploader = true
|
||||
convert_output = `#{convert_aac_cmd}`
|
||||
|
||||
original_ogg_preview_url = self["preview_url"]
|
||||
original_mp3_preview_url = self["preview_mp3_url"]
|
||||
result_code = $?.to_i
|
||||
|
||||
# and finally update the JamTrackTrack with the new info
|
||||
self["preview_url"] = self.preview_filename(ogg_md5, 'ogg')
|
||||
self["preview_length"] = File.new(output).size
|
||||
# and finally update the JamTrackTrack with the new info
|
||||
self["preview_mp3_url"] = self.preview_filename(mp3_md5, 'mp3')
|
||||
self["preview_mp3_length"] = File.new(output_mp3).size
|
||||
self.save!
|
||||
if result_code != 0
|
||||
@@log.debug("fail #{result_code}")
|
||||
@preview_generate_error = "unable to execute aac convert command #{convert_output}"
|
||||
else
|
||||
|
||||
# if all that worked, now delete old previews, if present
|
||||
begin
|
||||
s3_public_manager.delete(original_ogg_preview_url) if original_ogg_preview_url && original_ogg_preview_url != self["preview_url"]
|
||||
s3_public_manager.delete(original_mp3_preview_url) if original_mp3_preview_url && original_mp3_preview_url != track["preview_mp3_url"]
|
||||
rescue
|
||||
puts "UNABLE TO CLEANUP OLD PREVIEW URL"
|
||||
ogg_digest = ::Digest::MD5.file(output)
|
||||
mp3_digest = ::Digest::MD5.file(output_mp3)
|
||||
aac_digest = ::Digest::MD5.file(output_aac)
|
||||
self["preview_md5"] = ogg_md5 = ogg_digest.hexdigest
|
||||
self["preview_mp3_md5"] = mp3_md5 = mp3_digest.hexdigest
|
||||
self["preview_aac_md5"] = aac_md5 = mp3_digest.hexdigest
|
||||
|
||||
@@log.debug("uploading ogg preview to #{self.preview_filename('ogg')}")
|
||||
s3_public_manager.upload(self.preview_filename(ogg_md5, 'ogg'), output, content_type: 'audio/ogg', content_md5: ogg_digest.base64digest)
|
||||
@@log.debug("uploading mp3 preview to #{self.preview_filename('mp3')}")
|
||||
s3_public_manager.upload(self.preview_filename(mp3_md5, 'mp3'), output_mp3, content_type: 'audio/mpeg', content_md5: mp3_digest.base64digest)
|
||||
@@log.debug("uploading aac preview to #{self.preview_filename('aac')}")
|
||||
s3_public_manager.upload(self.preview_filename(aac_md5, 'aac'), output_aac, content_type: 'audio/aac', content_md5: aac_digest.base64digest)
|
||||
|
||||
self.skip_uploader = true
|
||||
|
||||
original_ogg_preview_url = self["preview_url"]
|
||||
original_mp3_preview_url = self["preview_mp3_url"]
|
||||
original_aac_preview_url = self["preview_aac_url"]
|
||||
|
||||
self["preview_url"] = self.preview_filename(ogg_md5, 'ogg')
|
||||
self["preview_length"] = File.new(output).size
|
||||
self["preview_mp3_url"] = self.preview_filename(mp3_md5, 'mp3')
|
||||
self["preview_mp3_length"] = File.new(output_mp3).size
|
||||
self["preview_aac_url"] = self.preview_filename(aac_md5, 'aac')
|
||||
self["preview_aac_length"] = File.new(output_aac).size
|
||||
self.save!
|
||||
|
||||
# if all that worked, now delete old previews, if present
|
||||
begin
|
||||
s3_public_manager.delete(original_ogg_preview_url) if original_ogg_preview_url && original_ogg_preview_url != self["preview_url"]
|
||||
s3_public_manager.delete(original_mp3_preview_url) if original_mp3_preview_url && original_mp3_preview_url != track["preview_mp3_url"]
|
||||
s3_public_manager.delete(original_aac_preview_url) if original_aac_preview_url && original_aac_preview_url != track["preview_aac_url"]
|
||||
rescue
|
||||
puts "UNABLE TO CLEANUP OLD PREVIEW URL"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -191,7 +191,8 @@
|
|||
48: {"title": "", "message": ""}, // RECORDING_DONE
|
||||
49: {"title": "", "message": ""}, // VIDEO_WINDOW_OPENED
|
||||
50: {"title": "", "message": ""}, // VIDEO_WINDOW_CLOSED
|
||||
51: {"title": "", "message": ""} // LAST_ALERT
|
||||
51: {"title": "", "message": ""}, // VST_CHANGED
|
||||
52: {"title": "", "message": ""} // LAST_ALERT
|
||||
};
|
||||
|
||||
// add the alert's name to the ALERT_TYPES structure
|
||||
|
|
|
|||
Loading…
Reference in New Issue