* add csv to dump released JamTracks

This commit is contained in:
Seth Call 2015-08-18 15:19:40 -05:00
parent f6101f3621
commit 37d6c3e57c
8 changed files with 60 additions and 8 deletions

7
admin/app/admin/csv.rb Normal file
View File

@ -0,0 +1,7 @@
ActiveAdmin.register_page "CSVs" do
menu :parent => 'Misc'
content do
link_to('Released JamTracks', released_jamtracks_csv_path)
end
end

View File

@ -16,5 +16,4 @@ class EmailController < ApplicationController
@users = User.where(subscribe_email: true) @users = User.where(subscribe_email: true)
end end
end end

View File

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

View File

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

View File

@ -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'} 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 scope ENV['RAILS_RELATIVE_URL_ROOT'] || '/' do
root :to => "admin/dashboard#index" root :to => "admin/dashboard#index"
@ -28,13 +25,12 @@ JamAdmin::Application.routes.draw do
ActiveAdmin.routes(self) ActiveAdmin.routes(self)
match '/api/artifacts' => 'artifacts#update_artifacts', :via => :post match '/api/artifacts' => 'artifacts#update_artifacts', :via => :post
match '/api/mix/:id/enqueue' => 'admin/mixes#mix_again', :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/checks/latency_tester' => 'checks#check_latency_tester', :via => :get
match '/api/users/emailables/:code' => 'email#dump_emailables', :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" mount Resque::Server.new, :at => "/resque"

View File

@ -182,8 +182,23 @@ module JamRuby
finish("success", nil) finish("success", nil)
end 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 end
def is_tency_storage? def is_tency_storage?
@ -429,6 +444,7 @@ module JamRuby
if is_tency_storage? if is_tency_storage?
jam_track.vendor_id = metadata[:id] 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)
end end
else else
if !options[:resync_audio] if !options[:resync_audio]
@ -1486,6 +1502,14 @@ module JamRuby
end end
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 def create_masters
iterate_song_storage do |metadata, metalocation| iterate_song_storage do |metadata, metalocation|
next if metadata.nil? next if metadata.nil?

View File

@ -34,7 +34,7 @@ SitemapGenerator::Sitemap.create do
add(corp_about_path, priority: 0.9) add(corp_about_path, priority: 0.9)
JamTrack.all.each do |jam_track| 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_path(shortened_plan_code), priority:0.9)
add(individual_jamtrack_band_path(shortened_plan_code), priority:0.9) add(individual_jamtrack_band_path(shortened_plan_code), priority:0.9)
end end

View File

@ -14,6 +14,11 @@ namespace :jam_tracks do
JamTrackImporter.create_masters JamTrackImporter.create_masters
end 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| task tency_create_master: :environment do |task, args|
JamTrackImporter.storage_format = 'Tency' JamTrackImporter.storage_format = 'Tency'