Daniel Supernault 1 год назад
Родитель
Сommit
d339b5c251
2 измененных файлов с 4 добавлено и 6 удалено
  1. 2 3
      app/Http/Controllers/Api/ApiV1Controller.php
  2. 2 3
      app/Services/AccountService.php

+ 2 - 3
app/Http/Controllers/Api/ApiV1Controller.php

@@ -3403,10 +3403,9 @@ class ApiV1Controller extends Controller
         $limitKey = 'compose:rate-limit:store:'.$user->id;
         $limitTtl = now()->addMinutes(15);
         $limitReached = Cache::remember($limitKey, $limitTtl, function () use ($user) {
+            $minId = SnowflakeService::byDate(now()->subDays(1));
             $dailyLimit = Status::whereProfileId($user->profile_id)
-                ->whereNull('in_reply_to_id')
-                ->whereNull('reblog_of_id')
-                ->where('created_at', '>', now()->subDays(1))
+                ->where('id', '>', $minId)
                 ->count();
 
             return $dailyLimit >= 1000;

+ 2 - 3
app/Services/AccountService.php

@@ -202,15 +202,14 @@ class AccountService
         }
 
         $count = Status::whereProfileId($id)
-            ->whereNull('in_reply_to_id')
-            ->whereNull('reblog_of_id')
+            ->whereNull(['in_reply_to_id','reblog_of_id'])
             ->whereIn('scope', ['public', 'unlisted', 'private'])
             ->count();
 
         $profile->status_count = $count;
         $profile->save();
 
-        Cache::put($key, 1, 900);
+        Cache::put($key, 1, 259200);
 
         return true;
     }