Bladeren bron

Fix the local column for statuses to not include remote shares (#5513)

* Fix the local column for statuses to not include remote shares

* Chunk the migration
Anil Kulkarni 6 maanden geleden
bovenliggende
commit
d97383c0f6
2 gewijzigde bestanden met toevoegingen van 32 en 0 verwijderingen
  1. 1 0
      app/Util/ActivityPub/Inbox.php
  2. 31 0
      database/migrations/2025_01_18_061532_fix_local_statuses.php

+ 1 - 0
app/Util/ActivityPub/Inbox.php

@@ -645,6 +645,7 @@ class Inbox
             'profile_id' => $actor->id,
             'reblog_of_id' => $parent->id,
             'type' => 'share',
+            'local' => false,
         ]);
 
         Notification::firstOrCreate(

+ 31 - 0
database/migrations/2025_01_18_061532_fix_local_statuses.php

@@ -0,0 +1,31 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Support\Facades\DB;
+use App\Models\Status;
+
+return new class extends Migration
+{
+    public function up(): void
+    {
+        Status::query()
+            ->where('local', true)
+            ->where('type', 'share')
+            ->whereHas('profile', function($query) {
+                $query->whereDoesntHave('user');
+            })
+            ->chunkById(100, function($statuses) {
+                foreach($statuses as $status) {
+                    $status->local = false;
+                    $status->save();
+                }
+            });
+    }
+
+    public function down(): void
+    {
+        // No down migration needed since this is a data fix
+    }
+};