mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-12-25 17:26:43 +00:00
Update FeedFollowPipeline, use more efficient query
This commit is contained in:
parent
115a9d2dec
commit
43443503a1
2 changed files with 9 additions and 2 deletions
|
@ -12,6 +12,7 @@ use Illuminate\Queue\Middleware\WithoutOverlapping;
|
||||||
use Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing;
|
use Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing;
|
||||||
use App\Services\AccountService;
|
use App\Services\AccountService;
|
||||||
use App\Services\HomeTimelineService;
|
use App\Services\HomeTimelineService;
|
||||||
|
use App\Services\SnowflakeService;
|
||||||
use App\Status;
|
use App\Status;
|
||||||
|
|
||||||
class FeedFollowPipeline implements ShouldQueue, ShouldBeUniqueUntilProcessing
|
class FeedFollowPipeline implements ShouldQueue, ShouldBeUniqueUntilProcessing
|
||||||
|
@ -68,7 +69,10 @@ class FeedFollowPipeline implements ShouldQueue, ShouldBeUniqueUntilProcessing
|
||||||
$actorId = $this->actorId;
|
$actorId = $this->actorId;
|
||||||
$followingId = $this->followingId;
|
$followingId = $this->followingId;
|
||||||
|
|
||||||
$ids = Status::where('profile_id', $followingId)
|
$minId = SnowflakeService::byDate(now()->subMonths(6));
|
||||||
|
|
||||||
|
$ids = Status::where('id', '>', $minId)
|
||||||
|
->where('profile_id', $followingId)
|
||||||
->whereNull(['in_reply_to_id', 'reblog_of_id'])
|
->whereNull(['in_reply_to_id', 'reblog_of_id'])
|
||||||
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
||||||
->whereIn('visibility',['public', 'unlisted', 'private'])
|
->whereIn('visibility',['public', 'unlisted', 'private'])
|
||||||
|
|
|
@ -73,7 +73,10 @@ class HomeTimelineService
|
||||||
return $following->push($id)->toArray();
|
return $following->push($id)->toArray();
|
||||||
});
|
});
|
||||||
|
|
||||||
$ids = Status::whereIn('profile_id', $following)
|
$minId = SnowflakeService::byDate(now()->subMonths(6));
|
||||||
|
|
||||||
|
$ids = Status::where('id', '>', $minId)
|
||||||
|
->whereIn('profile_id', $following)
|
||||||
->whereNull(['in_reply_to_id', 'reblog_of_id'])
|
->whereNull(['in_reply_to_id', 'reblog_of_id'])
|
||||||
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
|
||||||
->whereIn('visibility',['public', 'unlisted', 'private'])
|
->whereIn('visibility',['public', 'unlisted', 'private'])
|
||||||
|
|
Loading…
Reference in a new issue