From 37d6c3e57c64e5bc7655ff6de317ee628a9499f4 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Tue, 18 Aug 2015 15:19:40 -0500 Subject: [PATCH] * add csv to dump released JamTracks --- admin/app/admin/csv.rb | 7 +++++ admin/app/controllers/email_controller.rb | 1 - admin/app/controllers/jam_track_controller.rb | 15 +++++++++++ .../views/jam_track/dump_released.html.erb | 6 +++++ admin/config/routes.rb | 6 +---- ruby/lib/jam_ruby/jam_track_importer.rb | 26 ++++++++++++++++++- web/config/sitemap.rb | 2 +- web/lib/tasks/jam_tracks.rake | 5 ++++ 8 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 admin/app/admin/csv.rb create mode 100644 admin/app/controllers/jam_track_controller.rb create mode 100644 admin/app/views/jam_track/dump_released.html.erb diff --git a/admin/app/admin/csv.rb b/admin/app/admin/csv.rb new file mode 100644 index 000000000..43996c828 --- /dev/null +++ b/admin/app/admin/csv.rb @@ -0,0 +1,7 @@ +ActiveAdmin.register_page "CSVs" do + menu :parent => 'Misc' + + content do + link_to('Released JamTracks', released_jamtracks_csv_path) + end +end diff --git a/admin/app/controllers/email_controller.rb b/admin/app/controllers/email_controller.rb index bcfd0e7bb..1e0c55182 100644 --- a/admin/app/controllers/email_controller.rb +++ b/admin/app/controllers/email_controller.rb @@ -16,5 +16,4 @@ class EmailController < ApplicationController @users = User.where(subscribe_email: true) end - end \ No newline at end of file diff --git a/admin/app/controllers/jam_track_controller.rb b/admin/app/controllers/jam_track_controller.rb new file mode 100644 index 000000000..a0e504577 --- /dev/null +++ b/admin/app/controllers/jam_track_controller.rb @@ -0,0 +1,15 @@ +require 'csv' + +class JamTrackController < ApplicationController + + respond_to :html + + def dump_released + headers['Content-Disposition'] = "attachment; filename=\"released-jam-tracks.csv\"" + headers['Content-Type'] ||= 'text/csv' + + @jam_tracks = JamTrack.where(status: 'Production') + render "jam_track/dump_released", :layout => nil + end + +end \ No newline at end of file diff --git a/admin/app/views/jam_track/dump_released.html.erb b/admin/app/views/jam_track/dump_released.html.erb new file mode 100644 index 000000000..6d4fe0655 --- /dev/null +++ b/admin/app/views/jam_track/dump_released.html.erb @@ -0,0 +1,6 @@ +<%- headers = ['Artist Name', 'Song Name', 'Direct Landing', 'Generic Direct Landing', 'Band Landing'] -%> +<%= CSV.generate_line headers %><%- @jam_tracks.each do |jam_track| -%><%= CSV.generate_line([jam_track.original_artist, jam_track.name, + "https://www.jamkazam.com/landing/jamtracks/#{jam_track.short_plan_code}", + "https://www.jamkazam.com/landing/jamtracks/#{jam_track.short_plan_code}?generic=1", + "https://www.jamkazam.com/landing/jamtracks/band/#{jam_track.short_plan_code}" + ]) %><%- end -%> \ No newline at end of file diff --git a/admin/config/routes.rb b/admin/config/routes.rb index 4a7424abd..2bbf1b3fa 100644 --- a/admin/config/routes.rb +++ b/admin/config/routes.rb @@ -8,9 +8,6 @@ JamAdmin::Application.routes.draw do devise_for :users, :class_name => "JamRuby::User", :path_prefix => '/admin', :path => '', :path_names => {:sign_in => 'login', :sign_out => 'logout'} - - - scope ENV['RAILS_RELATIVE_URL_ROOT'] || '/' do root :to => "admin/dashboard#index" @@ -28,13 +25,12 @@ JamAdmin::Application.routes.draw do ActiveAdmin.routes(self) - - match '/api/artifacts' => 'artifacts#update_artifacts', :via => :post match '/api/mix/:id/enqueue' => 'admin/mixes#mix_again', :via => :post match '/api/checks/latency_tester' => 'checks#check_latency_tester', :via => :get match '/api/users/emailables/:code' => 'email#dump_emailables', :via => :get + match '/api/jam_tracks/released' => 'jam_track#dump_released', :via => :get, as: 'released_jamtracks_csv' mount Resque::Server.new, :at => "/resque" diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 69ad82087..594741785 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -182,8 +182,23 @@ module JamRuby finish("success", nil) end - def add_vendor_metadata(metalocation) + def add_licensor_metadata(vendor, metalocation) + Dir.mktmpdir do |tmp_dir| + @@log.debug("update vendor metadata") + meta_yml = File.join(tmp_dir, 'meta.yml') + if jamkazam_s3_manager.exists?(metalocation) + jamkazam_s3_manager.download(metalocation, meta_yml) + meta = YAML.load_file(meta_yml) + else + meta = {} + end + meta[:licensor] = vendor + + File.open(meta_yml, 'w') {|f| f.write meta.to_yaml } + + jamkazam_s3_manager.upload(metalocation, meta_yml) + end end def is_tency_storage? @@ -429,6 +444,7 @@ module JamRuby if is_tency_storage? jam_track.vendor_id = metadata[:id] jam_track.licensor = JamTrackLicensor.find_by_name('Tency Music') + add_licensor_metadata('Tency Music', metalocation) end else if !options[:resync_audio] @@ -1486,6 +1502,14 @@ module JamRuby end end + + def add_tency_metadata + JamTrackLicensor.find_by_name('Tency Music').jam_tracks.each do |jam_track| + jam_track_importer = JamTrackImporter.new(@storage_format) + jam_track_importer.add_licensor_metadata('Tency Music', jam_track.metalocation) + break + end + end def create_masters iterate_song_storage do |metadata, metalocation| next if metadata.nil? diff --git a/web/config/sitemap.rb b/web/config/sitemap.rb index 2c2518ce3..1748e8306 100644 --- a/web/config/sitemap.rb +++ b/web/config/sitemap.rb @@ -34,7 +34,7 @@ SitemapGenerator::Sitemap.create do add(corp_about_path, priority: 0.9) JamTrack.all.each do |jam_track| - shortened_plan_code = jam_track.plan_code["jamtrack-".length..-1] + shortened_plan_code = jam_track.short_plan_code add(individual_jamtrack_path(shortened_plan_code), priority:0.9) add(individual_jamtrack_band_path(shortened_plan_code), priority:0.9) end diff --git a/web/lib/tasks/jam_tracks.rake b/web/lib/tasks/jam_tracks.rake index c08e38b94..b431b4cdb 100644 --- a/web/lib/tasks/jam_tracks.rake +++ b/web/lib/tasks/jam_tracks.rake @@ -14,6 +14,11 @@ namespace :jam_tracks do JamTrackImporter.create_masters end + task tency_licensor_yaml: :environment do |task, args| + JamTrackImporter.storage_format = 'Tency' + JamTrackImporter.add_tency_metadata + end + task tency_create_master: :environment do |task, args| JamTrackImporter.storage_format = 'Tency'