diff --git a/app/logical/daily_maintenance.rb b/app/logical/daily_maintenance.rb index 79e03ed7f..9cc4a628e 100644 --- a/app/logical/daily_maintenance.rb +++ b/app/logical/daily_maintenance.rb @@ -1,6 +1,7 @@ class DailyMaintenance def run PostPruner.new.prune! + TagPruner.new.prune! Upload.delete_all(['created_at < ?', 1.day.ago]) ModAction.delete_all(['created_at < ?', 3.days.ago]) Delayed::Job.delete_all(['created_at < ?'], 1.day.ago) diff --git a/app/logical/tag_pruner.rb b/app/logical/tag_pruner.rb new file mode 100644 index 000000000..cc9f548db --- /dev/null +++ b/app/logical/tag_pruner.rb @@ -0,0 +1,7 @@ +class TagPruner + def prune! + Tag.without_timeout do + Tag.destroy_all(["post_count <= 0 and name like '%:%'"]) + end + end +end diff --git a/app/models/tag.rb b/app/models/tag.rb index 8c0279fe4..ebfb64657 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -455,22 +455,16 @@ class Tag < ActiveRecord::Base q = q.limit(params[:limit].to_i) end - case params[:order] - when "name" + if params[:order] == "name" q = q.reorder("name") - when "date" + elsif params[:order] == "date" q = q.reorder("id desc") - else - q = q.reorder("post_count desc") - end - - case params[:sort] - when "date" + elsif params[:sort] == "date" q = q.reorder("id desc") - - when "name" + + elsif params[:sort] == "name" q = q.reorder("name") else