From 1154a83daece4fb956c6ab240ef20f605f420650 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sat, 16 Jan 2016 20:37:44 -0600 Subject: [PATCH] * dump and correction of download tracker --- admin/app/admin/top_selling_jamtracks.rb | 20 +++++++++++++++++++ admin/app/controllers/jam_track_controller.rb | 15 ++++++++++++++ .../views/jam_track/dump_top_selling.html.erb | 2 ++ admin/config/application.rb | 1 + admin/config/routes.rb | 1 + .../api_jam_track_mixdowns_controller.rb | 3 --- 6 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 admin/app/admin/top_selling_jamtracks.rb create mode 100644 admin/app/views/jam_track/dump_top_selling.html.erb diff --git a/admin/app/admin/top_selling_jamtracks.rb b/admin/app/admin/top_selling_jamtracks.rb new file mode 100644 index 000000000..b4dbf06d4 --- /dev/null +++ b/admin/app/admin/top_selling_jamtracks.rb @@ -0,0 +1,20 @@ +ActiveAdmin.register_page "Top Selling JamTracks" do + menu :parent => 'Reports' + + top_selling_jamtracks = JamTrack.select([:id, :original_artist, :name, :has_tap_in]).find_by_sql("select count(jam_tracks.id) as count , jam_tracks.id, original_artist, name, (jmep_text is not null) has_tap_in from jam_tracks inner join jam_track_rights on (jam_track_rights.jam_track_id = jam_tracks.id AND jam_track_rights.is_test_purchase = false) group by jam_tracks.id order by count(jam_tracks.id) desc ") + + content :title => "Top Selling JamTracks" do + table_for top_selling_jamtracks do + column "Count", :count + column "Original Artist", :original_artist + column "Name", :name + column "Has Count-in", :has_tap_in + + column "ID", :id + + end + + 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 index a0e504577..c84d0606a 100644 --- a/admin/app/controllers/jam_track_controller.rb +++ b/admin/app/controllers/jam_track_controller.rb @@ -12,4 +12,19 @@ class JamTrackController < ApplicationController render "jam_track/dump_released", :layout => nil end + def dump_top_selling + + if params[:code] != Rails.application.config.data_dump_code + render :text => "", :status => 404 + return + end + + @jam_tracks = JamTrack.select([:id, :original_artist, :name]).find_by_sql("select count(jam_tracks.id) as count , jam_tracks.id, original_artist, name, (jmep_text is not null) has_tap_in from jam_tracks inner join jam_track_rights on (jam_track_rights.jam_track_id = jam_tracks.id AND jam_track_rights.is_test_purchase = false) group by jam_tracks.id order by count(jam_tracks.id) desc ") + + headers['Content-Disposition'] = "attachment; filename=\"top-selling-jam-tracks.csv\"" + headers['Content-Type'] ||= 'text/csv' + + render "jam_track/dump_top_selling", :layout => nil + + end end \ No newline at end of file diff --git a/admin/app/views/jam_track/dump_top_selling.html.erb b/admin/app/views/jam_track/dump_top_selling.html.erb new file mode 100644 index 000000000..dd8c21686 --- /dev/null +++ b/admin/app/views/jam_track/dump_top_selling.html.erb @@ -0,0 +1,2 @@ +<%- headers = ['Artist Name', 'Song Name', 'ID', 'Count'] -%> +<%= CSV.generate_line headers %><%- @jam_tracks.each do |jam_track| -%><%= CSV.generate_line([jam_track.original_artist, jam_track.name, jam_track.id, jam_track['count'], jam_track['has_tap_in']]) %><%- end -%> \ No newline at end of file diff --git a/admin/config/application.rb b/admin/config/application.rb index 22e3df96f..46a14d9a7 100644 --- a/admin/config/application.rb +++ b/admin/config/application.rb @@ -154,6 +154,7 @@ module JamAdmin config.jmep_dir = ENV['JMEP_DIR'] || File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "..", "jmep")) config.email_dump_code = 'rcAUyC3TZCbgGx4YQpznBRbNnQMXW5iKTzf9NSBfzMLsnw9dRQ' + config.data_dump_code = 'rcAUyC3TZCbgGx4Y3321eudbNnQMXW5iKTzf9NSBfzMLsnw9dRQ' config.admin_port = ENV['ADMIN_PORT'] || 3333 config.admin_root_url = "#{config.external_protocol}#{config.external_hostname}#{(config.admin_port == 80 || config.admin_port == 443) ? '' : ':' + config.admin_port.to_s}" diff --git a/admin/config/routes.rb b/admin/config/routes.rb index 2bbf1b3fa..4565d26a2 100644 --- a/admin/config/routes.rb +++ b/admin/config/routes.rb @@ -30,6 +30,7 @@ JamAdmin::Application.routes.draw do match '/api/checks/latency_tester' => 'checks#check_latency_tester', :via => :get match '/api/users/emailables/:code' => 'email#dump_emailables', :via => :get + match '/jam_tracks/top/:code' => 'jam_track#dump_top_selling', :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/web/app/controllers/api_jam_track_mixdowns_controller.rb b/web/app/controllers/api_jam_track_mixdowns_controller.rb index da7e94c6d..3cef88912 100644 --- a/web/app/controllers/api_jam_track_mixdowns_controller.rb +++ b/web/app/controllers/api_jam_track_mixdowns_controller.rb @@ -80,9 +80,6 @@ class ApiJamTrackMixdownsController < ApiController @package = JamTrackMixdownPackage.create(@jam_track_mixdown, params[:file_type], params[:sample_rate], params[:encrypt_type]) unless @package - fingerprint = params[:mark] - DownloadTracker.check(current_user, request.remote_ip, @package, !@jam_track_right.redeemed, fingerprint, jkclient_agent?) - if @package.errors.any? respond_with_model(@package) return