1
0
Daniel Supernault 2 жил өмнө
parent
commit
2881b6626a

+ 17 - 1
app/Http/Controllers/Api/ApiV1Controller.php

@@ -1972,6 +1972,11 @@ class ApiV1Controller extends Controller
 			return $following->push($pid)->toArray();
 		});
 
+		$includeReplies = false;
+		if(config('exp.top')) {
+            $includeReplies = (bool) Redis::zscore('pf:tl:replies', $pid);
+        }
+
 		if(config('instance.timeline.home.cached') && (!$min && !$max)) {
             $ttl = config('instance.timeline.home.cache_ttl');
             $res = Cache::remember(
@@ -1980,7 +1985,8 @@ class ApiV1Controller extends Controller
                 function() use(
                 $following,
                 $limit,
-                $pid
+                $pid,
+                $includeReplies
                 ) {
                 return Status::select(
                     'id',
@@ -2002,6 +2008,11 @@ class ApiV1Controller extends Controller
                     'created_at',
                     'updated_at'
                   )
+                  ->when($includeReplies, function($q, $includeReplies) {
+                    return $q;
+                  }, function($q, $includeReplies) {
+                    return $q->whereNull('in_reply_to_id');
+                  })
                   ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                   ->whereIn('profile_id', $following)
                   ->whereIn('visibility',['public', 'unlisted', 'private'])
@@ -2053,6 +2064,11 @@ class ApiV1Controller extends Controller
 			)
 			->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
 			->where('id', $dir, $id)
+            ->when($includeReplies, function($q, $includeReplies) {
+                return $q;
+            }, function($q, $includeReplies) {
+                return $q->whereNull('in_reply_to_id');
+            })
 			->whereIn('profile_id', $following)
 			->whereIn('visibility',['public', 'unlisted', 'private'])
 			->latest()

+ 2 - 2
app/Http/Controllers/PublicApiController.php

@@ -472,10 +472,10 @@ class PublicApiController extends Controller
         // $types = ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album', 'text'];
 
         $textOnlyReplies = false;
+        $textOnlyReplies = (bool) Redis::zscore('pf:tl:replies', $pid);
 
         if(config('exp.top')) {
             $textOnlyPosts = (bool) Redis::zscore('pf:tl:top', $pid);
-            $textOnlyReplies = (bool) Redis::zscore('pf:tl:replies', $pid);
 
             if($textOnlyPosts) {
                 array_push($types, 'text');
@@ -587,7 +587,7 @@ class PublicApiController extends Controller
                         'updated_at'
                       )
                       ->whereIn('type', $types)
-                      ->when($textOnlyReplies != true, function($q, $textOnlyReplies) {
+                      ->when(!$textOnlyReplies, function($q, $textOnlyReplies) {
                         return $q->whereNull('in_reply_to_id');
                       })
                       ->where('id', $dir, $id)