docbrown/lib/tasks/fetch.rake

74 lines
1.9 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
CacheBuster.new.bust("/enter")
CacheBuster.new.bust("/new")
CacheBuster.new.bust("/dashboard")
CacheBuster.new.bust("/users/auth/twitter")
CacheBuster.new.bust("/users/auth/github")
CacheBuster.new.bust("/feed")
CacheBuster.new.bust("/feed")
CacheBuster.new.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.now.to_i
article.save
else
article.approved = false
article.body_markdown = article.body_markdown.gsub("published: true", "published: false")
article.save
end
end
end
task :clear_memory_if_too_high => :environment do
if Rails.cache.stats.flatten[1]["bytes"].to_i > 2000000000
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.now.wday < 3
EmailDigest.send_periodic_digest_email
end
task :award_badges => :environment do
BadgeRewarder.new.award_yearly_club_badges
end