1
0
Эх сурвалжийг харах

Update PublicApiController

Daniel Supernault 3 жил өмнө
parent
commit
37dcc4ae13

+ 12 - 14
app/Http/Controllers/PublicApiController.php

@@ -106,7 +106,7 @@ class PublicApiController extends Controller
         return response()->json($res);
         return response()->json($res);
     }
     }
 
 
-    public function statusState(Request $request, $username, int $postid)
+    public function statusState(Request $request, $username, $postid)
     {
     {
         $profile = Profile::whereUsername($username)->whereNull('status')->firstOrFail();
         $profile = Profile::whereUsername($username)->whereNull('status')->firstOrFail();
         $status = Status::whereProfileId($profile->id)->findOrFail($postid);
         $status = Status::whereProfileId($profile->id)->findOrFail($postid);
@@ -294,6 +294,7 @@ class PublicApiController extends Controller
                             'local'
                             'local'
                           )
                           )
                           ->where('id', $dir, $id)
                           ->where('id', $dir, $id)
+                          ->whereNull(['in_reply_to_id', 'reblog_of_id'])
                           ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                           ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                           ->whereLocal(true)
                           ->whereLocal(true)
                           ->whereScope('public')
                           ->whereScope('public')
@@ -306,8 +307,9 @@ class PublicApiController extends Controller
                                return $status;
                                return $status;
                           })
                           })
                           ->filter(function($s) use($filtered) {
                           ->filter(function($s) use($filtered) {
-                                return in_array($s['account']['id'], $filtered) == false;
-                          });
+                                return $s && in_array($s['account']['id'], $filtered) == false;
+                          })
+                          ->values();
                 $res = $timeline->toArray();
                 $res = $timeline->toArray();
             } else {
             } else {
                 $timeline = Status::select(
                 $timeline = Status::select(
@@ -330,6 +332,7 @@ class PublicApiController extends Controller
                             'reblogs_count',
                             'reblogs_count',
                             'updated_at'
                             'updated_at'
                           )
                           )
+                          ->whereNull(['in_reply_to_id', 'reblog_of_id'])
                           ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                           ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                           ->with('profile', 'hashtags', 'mentions')
                           ->with('profile', 'hashtags', 'mentions')
                           ->whereLocal(true)
                           ->whereLocal(true)
@@ -343,8 +346,9 @@ class PublicApiController extends Controller
                                return $status;
                                return $status;
                           })
                           })
                           ->filter(function($s) use($filtered) {
                           ->filter(function($s) use($filtered) {
-                                return in_array($s['account']['id'], $filtered) == false;
-                          });
+                                return $s && in_array($s['account']['id'], $filtered) == false;
+                          })
+                          ->values();
 
 
                 $res = $timeline->toArray();
                 $res = $timeline->toArray();
             }
             }
@@ -538,15 +542,7 @@ class PublicApiController extends Controller
         $max = $request->input('max_id');
         $max = $request->input('max_id');
         $limit = $request->input('limit') ?? 3;
         $limit = $request->input('limit') ?? 3;
         $user = $request->user();
         $user = $request->user();
-        $amin = SnowflakeService::byDate(now()->subDays(90));
-
-        $key = 'user:last_active_at:id:'.$user->id;
-        $ttl = now()->addMinutes(5);
-        Cache::remember($key, $ttl, function() use($user) {
-            $user->last_active_at = now();
-            $user->save();
-            return;
-        });
+        $amin = SnowflakeService::byDate(now()->subDays(490));
 
 
         $filtered = $user ? UserFilterService::filters($user->profile_id) : [];
         $filtered = $user ? UserFilterService::filters($user->profile_id) : [];
 
 
@@ -561,6 +557,7 @@ class PublicApiController extends Controller
                         'created_at',
                         'created_at',
                       )
                       )
                       ->where('id', $dir, $id)
                       ->where('id', $dir, $id)
+                      ->whereNull(['in_reply_to_id', 'reblog_of_id'])
                       ->whereNotIn('profile_id', $filtered)
                       ->whereNotIn('profile_id', $filtered)
                       ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                       ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                       ->whereNotNull('uri')
                       ->whereNotNull('uri')
@@ -583,6 +580,7 @@ class PublicApiController extends Controller
                             'scope',
                             'scope',
                             'created_at',
                             'created_at',
                           )
                           )
+                      	  ->whereNull(['in_reply_to_id', 'reblog_of_id'])
                           ->whereNotIn('profile_id', $filtered)
                           ->whereNotIn('profile_id', $filtered)
                           ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                           ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
                           ->whereNotNull('uri')
                           ->whereNotNull('uri')