* import of timtracks working

This commit is contained in:
Seth Call 2015-11-20 06:57:32 -06:00
parent 184bf2ba4d
commit 51429e8b5a
8 changed files with 120 additions and 50 deletions

View File

@ -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

2
db/up/acappella.sql Normal file
View File

@ -0,0 +1,2 @@
INSERT INTO genres (id, description) values ('acapella', 'A Capella');
ALTER TABLE jam_track_licensors ADD COLUMN slug VARCHAR UNIQUE;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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}

View File

@ -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

View File

@ -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