docbrown/lib/tasks/fetch.rake
Ben Halpern 302e8f202d
Add HTML variants for cta optimization and other nav bar adjustments (#970)
* Add HTML variants for cta optimization and other nav bar adjustments

* Fix 1==1 non-random mistake

* Spruce up org call-to-action

* Change default text color

* Add html variant trial and success request specs

* Fix article sidebar caching issue

* One line adjustment

* Modify schema

* Add include ActionView::Helpers::TagHelper to user_tag_spec

* Modify follow_button to remove session context

* Dummy commit

* Change Edit Article to Edit Post

* Dummy commit

* Fix rubocop concerns

* Fix rubocop style
2018-10-22 17:03:57 -04:00

102 lines
2.8 KiB
Ruby

desc "This task is called by the Heroku scheduler add-on"
task get_podcast_episodes: :environment do
Podcast.find_each do |p|
PodcastFeed.new.get_episodes(p, 5)
end
end
task periodic_cache_bust: :environment do
cache_buster = CacheBuster.new
cache_buster.bust("/enter")
cache_buster.bust("/new")
cache_buster.bust("/dashboard")
cache_buster.bust("/users/auth/twitter")
cache_buster.bust("/users/auth/github")
cache_buster.bust("/feed")
cache_buster.bust("/feed")
cache_buster.bust("/feed.xml")
end
task hourly_bust: :environment do
CacheBuster.new.bust("/")
end
task fetch_all_rss: :environment do
Rails.application.eager_load!
RssReader.get_all_articles
end
task resave_supported_tags: :environment do
puts "resaving supported tags"
Tag.where(supported: true).find_each(&:save)
end
task renew_hired_articles: :environment do
Article.
tagged_with("hiring").
where("featured_number < ?", 7.days.ago.to_i + 11.minutes.to_i).
where(approved: true, published: true, automatically_renew: true).
each do |article|
if article.automatically_renew
article.featured_number = Time.current.to_i
else
article.approved = false
article.body_markdown = article.body_markdown.gsub(
"published: true", "published: false"
)
end
article.save
end
end
task clear_memory_if_too_high: :environment do
if Rails.cache.stats.flatten[1]["bytes"].to_i > 4600000000
Rails.cache.clear
end
end
task save_nil_hotness_scores: :environment do
Article.where(hotness_score: nil, published: true).find_each(&:save)
end
task github_repo_fetch_all: :environment do
GithubRepo.update_to_latest
end
task send_email_digest: :environment do
return if Time.current.wday < 3
EmailDigest.send_periodic_digest_email
end
task award_badges: :environment do
BadgeRewarder.award_yearly_club_badges
BadgeRewarder.award_beloved_comment_badges
end
# rake award_top_seven_badges["ben jess peter mac liana andy"]
task :award_top_seven_badges, [:arg1] => :environment do |_t, args|
usernames = args[:arg1].split(" ")
puts "Awarding top-7 badges to #{usernames}"
BadgeRewarder.award_top_seven_badges(usernames)
puts "Done!"
end
# rake award_contributor_badges["ben jess peter mac liana andy"]
task :award_contributor_badges, [:arg1] => :environment do |_t, args|
usernames = args[:arg1].split(" ")
puts "Awarding dev-contributor badges to #{usernames}"
BadgeRewarder.award_contributor_badges(usernames)
puts "Done!"
end
task remove_old_html_variant_data: :environment do
HtmlVariantTrial.where("created_at < ?", 1.week.ago).destroy_all
HtmlVariantSuccess.where("created_at < ?", 1.week.ago).destroy_all
HtmlVariant.find_each do |html_variant|
return if html_variant.html_variant_successes.size < 20
html_variant.calculate_success_rate!
end
end