Browse Source

Update AP Helpers, use instance filtering

Daniel Supernault 4 years ago
parent
commit
66b4f8c773

+ 2 - 0
app/Http/Controllers/Admin/AdminInstanceController.php

@@ -127,6 +127,8 @@ trait AdminInstanceController
 		}
 		}
 
 
 		Cache::forget('instances:banned:domains');
 		Cache::forget('instances:banned:domains');
+		Cache::forget('instances:unlisted:domains');
+		Cache::forget('instances:auto_cw:domains');
 
 
 		return response()->json([]);
 		return response()->json([]);
 	}
 	}

+ 11 - 3
app/Util/ActivityPub/Helpers.php

@@ -26,6 +26,7 @@ use App\Util\ActivityPub\HttpSignature;
 use Illuminate\Support\Str;
 use Illuminate\Support\Str;
 use App\Services\ActivityPubFetchService;
 use App\Services\ActivityPubFetchService;
 use App\Services\ActivityPubDeliveryService;
 use App\Services\ActivityPubDeliveryService;
+use App\Services\InstanceService;
 use App\Services\MediaPathService;
 use App\Services\MediaPathService;
 use App\Services\MediaStorageService;
 use App\Services\MediaStorageService;
 use App\Jobs\MediaPipeline\MediaStoragePipeline;
 use App\Jobs\MediaPipeline\MediaStoragePipeline;
@@ -175,9 +176,7 @@ class Helpers {
 				}
 				}
 			}
 			}
 
 
-			$bannedInstances = Cache::remember('instances:banned:domains', now()->addHours(12), function() {
-				return Instance::whereBanned(true)->pluck('domain')->toArray();
-			});
+			$bannedInstances = InstanceService::getBannedDomains();
 
 
 			if(in_array($host, $bannedInstances)) {
 			if(in_array($host, $bannedInstances)) {
 				return false;
 				return false;
@@ -328,6 +327,7 @@ class Helpers {
 		$idDomain = parse_url($id, PHP_URL_HOST);
 		$idDomain = parse_url($id, PHP_URL_HOST);
 		$urlDomain = parse_url($url, PHP_URL_HOST);
 		$urlDomain = parse_url($url, PHP_URL_HOST);
 
 
+
 		if(!self::validateUrl($id)) {
 		if(!self::validateUrl($id)) {
 			return;
 			return;
 		}
 		}
@@ -356,6 +356,14 @@ class Helpers {
 		}
 		}
 		$ts = is_array($res['published']) ? $res['published'][0] : $res['published'];
 		$ts = is_array($res['published']) ? $res['published'][0] : $res['published'];
 
 
+		if($scope == 'public' && in_array($urlDomain, InstanceService::getUnlistedDomains())) {
+			$scope = 'unlisted';
+		}
+
+		if(in_array($urlDomain, InstanceService::getNsfwDomains())) {
+			$cw = true;
+		}
+
 		$statusLockKey = 'helpers:status-lock:' . hash('sha256', $res['id']);
 		$statusLockKey = 'helpers:status-lock:' . hash('sha256', $res['id']);
 		$status = Cache::lock($statusLockKey)
 		$status = Cache::lock($statusLockKey)
 			->get(function () use(
 			->get(function () use(