docbrown/lib/tasks/fetch.rake
rhymes 6553f08d94 Rubocop cleanups (#1415)
* Update rubocop-todo.yml with new violations

* Fix Layout/EmptyLine* rules

* Fix Layout/Indentation* rules

* Fix remaining Layout/* rules

* Fix Lint/DuplicateMethods by removing unused accessor

* Fix Lint/IneffectiveAccessModifier

* Fix Lint/MissingCopEnableDirective

* Re-run rubocop auto gen config

* Fix Layout/RescueEnsureAlignment

* Fix Naming/* rules

* Fix some RSpec/* rules

* Fix typos

* Fix RSpec/LetBeforeExamples

* Series should only be an attr_writer, not an attr_accessor

* Fix RSpec/InstanceVariable

* Fix RSpec/InstanceVariable

* Fix RSpec/RepeatedDescription and RSpec/RepeatedExample

* Fix Style/ClassAndModuleChildren

* Fix Style/ConditionalAssignment

* Fix some Style/* rules

* Trigger Travis CI build because failing tests are not failing locally

* Revert "Fix Style/ClassAndModuleChildren"

This reverts commit 1686801d8a1516ba1894f79e24401a20dea65f99.
2019-01-02 11:20:02 -05:00

117 lines
3.2 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
# rake award_fab_five_badges["ben jess peter mac liana andy"]
task :award_fab_five_badges, [:arg1] => :environment do |_t, args|
usernames = args[:arg1].split(" ")
puts "Awarding fab 5 badges to #{usernames}"
BadgeRewarder.award_fab_five_badges(usernames)
puts "Done!"
end
# this task is meant to be scheduled daily
task award_contributor_badges_from_github: :environment do
BadgeRewarder.award_contributor_badges_from_github
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|
if html_variant.html_variant_successes.size > 3
html_variant.calculate_success_rate!
end
end
end