瀏覽代碼

Update ApiV1Controller, apply user domain blocks filtering to hashtag timelines

Daniel Supernault 1 年之前
父節點
當前提交
89b8e87477
共有 1 個文件被更改,包括 7 次插入4 次删除
  1. 7 4
      app/Http/Controllers/Api/ApiV1Controller.php

+ 7 - 4
app/Http/Controllers/Api/ApiV1Controller.php

@@ -3285,6 +3285,7 @@ class ApiV1Controller extends Controller
         $limit = $request->input('limit', 20);
         $limit = $request->input('limit', 20);
         $onlyMedia = $request->input('only_media', true);
         $onlyMedia = $request->input('only_media', true);
         $pe = $request->has(self::PF_API_ENTITY_KEY);
         $pe = $request->has(self::PF_API_ENTITY_KEY);
+        $pid = $request->user()->profile_id;
 
 
         if($min || $max) {
         if($min || $max) {
             $minMax = SnowflakeService::byDate(now()->subMonths(6));
             $minMax = SnowflakeService::byDate(now()->subMonths(6));
@@ -3296,7 +3297,8 @@ class ApiV1Controller extends Controller
             }
             }
         }
         }
 
 
-        $filters = UserFilterService::filters($request->user()->profile_id);
+        $filters = UserFilterService::filters($pid);
+        $domainBlocks = UserFilterService::domainBlocks($pid);
 
 
         if(!$min && !$max) {
         if(!$min && !$max) {
             $id = 1;
             $id = 1;
@@ -3322,10 +3324,11 @@ class ApiV1Controller extends Controller
                 if($onlyMedia && !isset($i['media_attachments']) || !count($i['media_attachments'])) {
                 if($onlyMedia && !isset($i['media_attachments']) || !count($i['media_attachments'])) {
                     return false;
                     return false;
                 }
                 }
-                return $i && isset($i['account']);
+                return $i && isset($i['account'], $i['url']);
             })
             })
-            ->filter(function($i) use($filters) {
-                return !in_array($i['account']['id'], $filters);
+            ->filter(function($i) use($filters, $domainBlocks) {
+                $domain = strtolower(parse_url($i['url'], PHP_URL_HOST));
+                return !in_array($i['account']['id'], $filters) && !in_array($domain, $domainBlocks);
             })
             })
             ->values()
             ->values()
             ->toArray();
             ->toArray();