2024-02-25 12:15:55 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2011-09-30 11:34:41 -04:00
|
|
|
class PostPruner
|
2022-09-20 05:04:16 -04:00
|
|
|
DELETION_WINDOW = 30
|
|
|
|
|
2011-09-30 11:34:41 -04:00
|
|
|
def prune!
|
2013-04-09 15:31:49 -04:00
|
|
|
Post.without_timeout do
|
|
|
|
prune_pending!
|
|
|
|
end
|
2011-09-30 11:34:41 -04:00
|
|
|
end
|
2013-03-19 08:10:10 -04:00
|
|
|
|
2022-09-20 05:04:16 -04:00
|
|
|
protected
|
2011-09-30 11:34:41 -04:00
|
|
|
|
|
|
|
def prune_pending!
|
2022-11-26 09:41:39 -05:00
|
|
|
CurrentUser.as_system do
|
2023-12-03 09:36:37 -05:00
|
|
|
Post.where("is_deleted = ? and is_pending = ? and created_at < ?", false, true, DELETION_WINDOW.days.ago).find_each do |post|
|
2022-09-20 05:04:16 -04:00
|
|
|
post.delete!("Unapproved in #{DELETION_WINDOW} days")
|
|
|
|
rescue PostFlag::Error
|
|
|
|
# swallow
|
2011-09-30 11:34:41 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|