mirror of
https://github.com/pixelfed/pixelfed.git
synced 2025-01-30 16:30:45 +00:00
Update InternalApiController
This commit is contained in:
parent
20fa6fd8e7
commit
fa6c3dd3f6
1 changed files with 25 additions and 18 deletions
|
@ -125,16 +125,19 @@ class InternalApiController extends Controller
|
||||||
{
|
{
|
||||||
$profile = Auth::user()->profile;
|
$profile = Auth::user()->profile;
|
||||||
$pid = $profile->id;
|
$pid = $profile->id;
|
||||||
//$following = Cache::get('feature:discover:following:'.$profile->id, []);
|
$following = Cache::remember('feature:discover:following:'.$pid, 60, function() use ($pid) {
|
||||||
$following = Follower::whereProfileId($pid)->pluck('following_id');
|
return Follower::whereProfileId($pid)->pluck('following_id');
|
||||||
|
});
|
||||||
|
$filters = Cache::remember("user:filter:list:$pid", 60, function() use($pid) {
|
||||||
|
return UserFilter::whereUserId($pid)
|
||||||
|
->whereFilterableType('App\Profile')
|
||||||
|
->whereIn('filter_type', ['mute', 'block'])
|
||||||
|
->pluck('filterable_id')->toArray();
|
||||||
|
});
|
||||||
|
$following = array_merge($following, $filters);
|
||||||
|
|
||||||
$filtered = UserFilter::whereUserId($pid)
|
$people = Cache::remember('feature:discover:people:'.$pid, 15, function() use ($following) {
|
||||||
->whereFilterableType('App\Profile')
|
return Profile::select('id', 'name', 'username')
|
||||||
->whereIn('filter_type', ['mute', 'block'])
|
|
||||||
->pluck('filterable_id')->toArray();
|
|
||||||
$following = array_merge($following->push($pid)->toArray(), $filtered);
|
|
||||||
|
|
||||||
$people = Profile::select('id', 'name', 'username')
|
|
||||||
->with('avatar')
|
->with('avatar')
|
||||||
->inRandomOrder()
|
->inRandomOrder()
|
||||||
->whereHas('statuses')
|
->whereHas('statuses')
|
||||||
|
@ -143,16 +146,20 @@ class InternalApiController extends Controller
|
||||||
->whereIsPrivate(false)
|
->whereIsPrivate(false)
|
||||||
->take(3)
|
->take(3)
|
||||||
->get();
|
->get();
|
||||||
|
});
|
||||||
|
|
||||||
$posts = Status::select('id', 'caption', 'profile_id')
|
$posts = Cache::remember('feature:discover:posts:'.$pid, 60, function() use ($following) {
|
||||||
->whereHas('media')
|
return Status::select('id', 'caption', 'profile_id')
|
||||||
->whereIsNsfw(false)
|
->whereNull('in_reply_to_id')
|
||||||
->whereVisibility('public')
|
->whereNull('reblog_of_id')
|
||||||
->whereNotIn('profile_id', $following)
|
->whereIsNsfw(false)
|
||||||
->withCount(['comments', 'likes'])
|
->whereVisibility('public')
|
||||||
->orderBy('created_at', 'desc')
|
->whereNotIn('profile_id', $following)
|
||||||
->take(21)
|
->withCount(['comments', 'likes'])
|
||||||
->get();
|
->orderBy('created_at', 'desc')
|
||||||
|
->take(21)
|
||||||
|
->get();
|
||||||
|
});
|
||||||
|
|
||||||
$res = [
|
$res = [
|
||||||
'people' => $people->map(function($profile) {
|
'people' => $people->map(function($profile) {
|
||||||
|
|
Loading…
Reference in a new issue