40 lines
1.8 KiB
Ruby
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
|