浏览代码

Update PublicApiControllers, fix block/mutes filtering on public timeline

Daniel Supernault 5 年之前
父节点
当前提交
08383dd43d
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      app/Http/Controllers/PublicApiController.php

+ 7 - 0
app/Http/Controllers/PublicApiController.php

@@ -239,6 +239,11 @@ class PublicApiController extends Controller
         $max = $request->input('max_id');
         $limit = $request->input('limit') ?? 3;
 
+        $filtered = UserFilter::whereUserId(Auth::user()->profile_id)
+                  ->whereFilterableType('App\Profile')
+                  ->whereIn('filter_type', ['mute', 'block'])
+                  ->pluck('filterable_id')->toArray();
+
         if($min || $max) {
             $dir = $min ? '>' : '<';
             $id = $min ?? $max;
@@ -263,6 +268,7 @@ class PublicApiController extends Controller
                         'updated_at'
                       )->where('id', $dir, $id)
                       ->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
+                      ->whereNotIn('profile_id', $filtered)
                       ->whereLocal(true)
                       ->whereVisibility('public')
                       ->orderBy('created_at', 'desc')
@@ -289,6 +295,7 @@ class PublicApiController extends Controller
                         'reblogs_count',
                         'updated_at'
                       )->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
+                      ->whereNotIn('profile_id', $filtered)
                       ->with('profile', 'hashtags', 'mentions')
                       ->whereLocal(true)
                       ->whereVisibility('public')