diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 5ef86e03d..c8595f616 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -34,6 +34,42 @@ module JamRuby self.detail = detail end + def import_click_track(jam_track) + # we need to download the click track, if it exists. + Dir.mktmpdir do |tmp_dir| + + click_track_file = jam_track.click_track_file + if click_track_file.nil? + @@log.info("no click track for #{jam_track.name}:#{jam_track.name}") + finish('success', 'no_click_track') + return + end + + click_track_file = File.join(tmp_dir, File.basename(click_track_file[:original_filename])) + JamTrackImporter.song_storage_manager.download(click_track_file[:original_filename], click_track_file) + + + JamTrack.transaction do + click_track = jam_track.click_track + + if click_track.nil? + click_track = JamTrackTrack.new + #track.original_filename = wav_file + #track.original_audio_s3_path = wav_file + track.track_type = 'Click' + track.part = 'Click' + track.instrument_id = 'computer' + track.jam_track = jam_track + if !track.save + finish("jam_track_click", "unable to create: #{track.errors}") + end + end + + # with the click track in hand, flesh out the details + + end + end + def generate_jmep(jam_track) if !jam_track.blank? finish('success', 'jmep already exists') @@ -44,7 +80,7 @@ module JamRuby master_track = jam_track.master_track - click_track = jam_track.click_track + click_track = jam_track.click_track_file if master_track.nil? finish('no_master_track', nil) @@ -2036,6 +2072,13 @@ module JamRuby end end + def import_click_track(jam_track) + importer = JamTrackImporter.new + importer.name = jam_track.name + importer.import_click_track(jam_track) + + importer + end def generate_jmep(jam_track) importer = JamTrackImporter.new importer.name = jam_track.name @@ -2044,6 +2087,31 @@ module JamRuby importer end + def import_click_tracks + importers = [] + + JamTrack.all.each do |jam_track| + importers << import_click_track(jam_track) + end + + @@log.info("SUMMARY") + @@log.info("-------") + importers.each do |importer| + if importer + if importer.reason == "success" + @@log.info("#{importer.name} #{importer.reason}") + else + @@log.error("#{importer.name} failed to generate jmep.") + @@log.error("#{importer.name} reason=#{importer.reason}") + @@log.error("#{importer.name} detail=#{importer.detail}") + end + else + @@log.error("NULL IMPORTER") + end + + end + end + def generate_jmeps importers = [] diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index 9303af65b..1eece1544 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -435,9 +435,12 @@ module JamRuby end end + def click_track_file + JamTrackFile.where(jam_track_id: self.id).where(file_type: 'ClickWav').first + end def click_track - JamTrackFile.where(jam_track_id: self.id).where(file_type: 'ClickWav').first + JamTrackTrack.where(jam_track_id: self.id).where(track_type: 'Click').first end def master_track diff --git a/ruby/lib/jam_ruby/models/jam_track_track.rb b/ruby/lib/jam_ruby/models/jam_track_track.rb index 78ba8da47..989f62a66 100644 --- a/ruby/lib/jam_ruby/models/jam_track_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track_track.rb @@ -6,7 +6,7 @@ module JamRuby include JamRuby::S3PublicManagerMixin # there should only be one Master per JamTrack, but there can be N Track per JamTrack - TRACK_TYPE = %w{Track Master} + TRACK_TYPE = %w{Track Master Click} @@log = Logging.logger[JamTrackTrack] diff --git a/web/app/assets/images/landing/gift_card.png b/web/app/assets/images/landing/gift_card.png new file mode 100644 index 000000000..e652e81db Binary files /dev/null and b/web/app/assets/images/landing/gift_card.png differ diff --git a/web/lib/tasks/jam_tracks.rake b/web/lib/tasks/jam_tracks.rake index 3387df29f..dcc9f623a 100644 --- a/web/lib/tasks/jam_tracks.rake +++ b/web/lib/tasks/jam_tracks.rake @@ -1,5 +1,10 @@ namespace :jam_tracks do + task import_click_tracks: :environment do |task, args| + JamTrackImporter.storage_format = 'Tency' + JamTrackImporter.import_click_tracks + end + task generate_jmep: :environment do |task, args| JamTrackImporter.storage_format = 'Tency' JamTrackImporter.generate_jmeps