FEATURE: new rake task to watch all replied topics

FEATURE: new rake task to watch all replied topics

diff --git a/lib/tasks/topics.rake b/lib/tasks/topics.rake
index 43b6a21..f9c9264 100644
--- a/lib/tasks/topics.rake
+++ b/lib/tasks/topics.rake
@@ -66,3 +66,23 @@ task "topics:apply_autoclose" => :environment do
 
   puts "", "Done"
 end
+
+task "topics:watch_all_replied_topics" => :environment do
+  puts "Setting all topics to Watching on which a user has posted at least once..."
+  topics = Topic.where("archetype != ?", Archetype.private_message)
+  total = topics.count
+  count = 0
+
+  topics.find_each do |t|
+    t.topic_users.where(posted: true).find_each do |tp|
+      tp.update!(notification_level: TopicUser.notification_levels[:watching], notifications_reason_id: TopicUser.notification_reasons[:created_post])
+    end
+    print_status(count += 1, total)
+  end
+
+  puts "", "Done"
+end
+
+def print_status(current, max)
+  print "\r%9d / %d (%5.1f%%)" % [current, max, ((current.to_f / max.to_f) * 100).round(1)]
+end

GitHub sha: 5c526e5a