From fe81378808d44a6c28c5384036a12aedb34b3b8c Mon Sep 17 00:00:00 2001
From: Daniel Supernault <danielsupernault@gmail.com>
Date: Mon, 30 Jan 2023 21:46:22 -0700
Subject: [PATCH] Update StatusReplyPipeline

---
 app/Jobs/CommentPipeline/CommentPipeline.php    | 4 ++++
 app/Jobs/StatusPipeline/StatusReplyPipeline.php | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/app/Jobs/CommentPipeline/CommentPipeline.php b/app/Jobs/CommentPipeline/CommentPipeline.php
index b8139afb..e8ed821d 100644
--- a/app/Jobs/CommentPipeline/CommentPipeline.php
+++ b/app/Jobs/CommentPipeline/CommentPipeline.php
@@ -60,6 +60,10 @@ class CommentPipeline implements ShouldQueue
         $actor = $comment->profile;
 
         if(config('database.default') === 'mysql') {
+            $count = DB::select(DB::raw("select id, in_reply_to_id from statuses, (select @pv := :kid) initialisation where id > @pv and find_in_set(in_reply_to_id, @pv) > 0 and @pv := concat(@pv, ',', id)"), [ 'kid' => $status->id]);
+            $status->reply_count = count($count);
+            $status->save();
+        } else {
             $status->reply_count = $status->reply_count + 1;
             $status->save();
         }
diff --git a/app/Jobs/StatusPipeline/StatusReplyPipeline.php b/app/Jobs/StatusPipeline/StatusReplyPipeline.php
index b5a54200..c515ffed 100644
--- a/app/Jobs/StatusPipeline/StatusReplyPipeline.php
+++ b/app/Jobs/StatusPipeline/StatusReplyPipeline.php
@@ -70,6 +70,10 @@ class StatusReplyPipeline implements ShouldQueue
         }
 
         if(config('database.default') === 'mysql') {
+            $count = DB::select(DB::raw("select id, in_reply_to_id from statuses, (select @pv := :kid) initialisation where id > @pv and find_in_set(in_reply_to_id, @pv) > 0 and @pv := concat(@pv, ',', id)"), [ 'kid' => $reply->id]);
+            $reply->reply_count = count($count);
+            $reply->save();
+        } else {
             $reply->reply_count = $reply->reply_count + 1;
             $reply->save();
         }