cartodb-4.29/lib/tasks/notify_trending_maps.rake
2020-06-15 10:58:47 +08:00

40 lines
1.8 KiB
Ruby

require_relative '../../lib/cartodb/trending_maps'
require_relative '../../lib/static_maps_url_helper'
namespace :cartodb do
namespace :trending_maps do
desc "Search for yesterday's trending maps to notify"
task :notify, [:simulation] => :environment do |_task, args|
simulation = (args[:simulation] == 'true') ? true : false
puts "SIMULATION MODE!" if simulation
trending_maps_lib = CartoDB::TrendingMaps.new
trending_maps = trending_maps_lib.get_trending_maps
trending_maps.each do |visualization_id, data|
views = data[:mapviews]
puts "Notifying trending map #{visualization_id} with a total of #{views} mapviews"
visualization = Carto::Visualization.find(visualization_id)
preview_image = Carto::StaticMapsURLHelper.new.url_for_static_map_without_request(data[:user],
'http',
visualization,
600,
300)
unless simulation
trending_maps_lib.notify_trending_map(visualization_id, views, preview_image)
user_id = visualization.user.id
Carto::Tracking::Events::ScoredTrendingMap.new(user_id,
user_id: user_id,
visualization_id: visualization.id,
mapviews: views).report
end
end
trending_maps_lib.send_trending_map_report(trending_maps) unless simulation
end
end
end