Просмотр исходного кода

Merge pull request #4028 from pixelfed/staging

Staging
daniel 2 лет назад
Родитель
Сommit
685d950af4

+ 6 - 6
app/Jobs/DeletePipeline/DeleteAccountPipeline.php

@@ -55,6 +55,7 @@ use App\Models\Poll;
 use App\Models\PollVote;
 use App\Models\Portfolio;
 use App\Models\UserPronoun;
+use App\Jobs\StatusPipeline\StatusDelete;
 
 class DeleteAccountPipeline implements ShouldQueue
 {
@@ -77,6 +78,11 @@ class DeleteAccountPipeline implements ShouldQueue
 		$user = $this->user;
         $profile = $user->profile;
 		$id = $user->profile_id;
+		Status::whereProfileId($id)->chunk(50, function($statuses) {
+            foreach($statuses as $status) {
+                StatusDelete::dispatchNow($status);
+            }
+        });
 		$this->deleteUserColumns($user);
 		AccountService::del($user->profile_id);
 
@@ -168,12 +174,6 @@ class DeleteAccountPipeline implements ShouldQueue
 		DB::table('oauth_auth_codes')->whereUserId($user->id)->delete();
 		ProfileSponsor::whereProfileId($id)->delete();
 
-		Status::whereProfileId($id)->chunk(50, function($statuses) {
-            foreach($statuses as $status) {
-                StatusDelete::dispatch($status)->onQueue('high');
-            }
-        });
-
 		Report::whereUserId($user->id)->forceDelete();
 		PublicTimelineService::warmCache(true, 400);
 		Profile::whereUserId($user->id)->delete();

+ 1 - 1
app/Services/StatusService.php

@@ -137,9 +137,9 @@ class StatusService
 
 	public static function del($id, $purge = false)
 	{
-		$status = self::get($id);
 
 		if($purge) {
+			$status = self::get($id);
 			if($status && isset($status['account']) && isset($status['account']['id'])) {
 				Cache::forget('profile:embed:' . $status['account']['id']);
 			}

+ 14 - 12
app/Services/WebfingerService.php

@@ -28,13 +28,17 @@ class WebfingerService
 			return [];
 		}
 
-		$res = Http::retry(3, 100)
-			->acceptJson()
-			->withHeaders([
-				'User-Agent' => '(Pixelfed/' . config('pixelfed.version') . '; +' . config('app.url') . ')'
-			])
-			->timeout(20)
-			->get($url);
+		try {
+			$res = Http::retry(3, 100)
+				->acceptJson()
+				->withHeaders([
+					'User-Agent' => '(Pixelfed/' . config('pixelfed.version') . '; +' . config('app.url') . ')'
+				])
+				->timeout(20)
+				->get($url);
+		} catch (\Illuminate\Http\Client\ConnectionException $e) {
+			return [];
+		}
 
 		if(!$res->successful()) {
 			return [];
@@ -48,11 +52,9 @@ class WebfingerService
 		$link = collect($webfinger['links'])
 			->filter(function($link) {
 				return $link &&
-					isset($link['rel']) &&
-					isset($link['type']) &&
-					isset($link['href']) &&
-					$link['rel'] == 'self' &&
-					$link['type'] == 'application/activity+json' || $link['type'] == 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"';
+					isset($link['rel'], $link['type'], $link['href']) &&
+					$link['rel'] === 'self' &&
+					in_array($link['type'], ['application/activity+json','application/ld+json; profile="https://www.w3.org/ns/activitystreams"']);
 			})
 			->pluck('href')
 			->first();