Merge pull request #479 from pixelfed/frontend-ui-refactor

Update Discover feature
This commit is contained in:
daniel 2018-09-21 23:24:58 -06:00 committed by GitHub
commit 070984df3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 21 deletions

View file

@ -2,12 +2,14 @@
namespace App\Http\Controllers;
use App\Follower;
use App\Hashtag;
use App\Profile;
use App\Status;
use App\UserFilter;
use Auth;
use App\{
Follower,
Hashtag,
Profile,
Status,
UserFilter
};
use Auth, DB, Cache;
use Illuminate\Http\Request;
class DiscoverController extends Controller
@ -21,25 +23,35 @@ class DiscoverController extends Controller
{
$pid = Auth::user()->profile->id;
$following = Follower::whereProfileId($pid)
$following = Cache::remember('feature:discover:following:'.$pid, 15, function() use($pid) {
$following = Follower::whereProfileId($pid)
->pluck('following_id');
$filtered = UserFilter::whereUserId($pid)
->whereFilterableType('App\Profile')
->whereIn('filter_type', ['mute', 'block'])
->pluck('filterable_id');
$following->push($pid);
if($filtered->count() > 0) {
$following->push($filtered);
}
$filtered = UserFilter::whereUserId($pid)
->whereFilterableType('App\Profile')
->whereIn('filter_type', ['mute', 'block'])
->pluck('filterable_id');
$following->push($pid);
if($filtered->count() > 0) {
$following->push($filtered);
}
return $following;
});
$people = Profile::inRandomOrder()
->whereNotIn('id', $following)
->whereIsPrivate(false)
->take(3)
->get();
$people = Cache::remember('feature:discover:people:'.$pid, 15, function() use($following) {
return Profile::inRandomOrder()
->whereHas('statuses')
->whereNull('domain')
->whereNotIn('id', $following)
->whereIsPrivate(false)
->take(3)
->get();
});
$posts = Status::whereHas('media')
->whereHas('profile', function($q) {
$q->where('is_private', false);
})
->whereVisibility('public')
->where('profile_id', '!=', $pid)
->whereNotIn('profile_id', $following)

View file

@ -25,6 +25,13 @@
</div>
</div>
@endforeach
@if($people->count() == 0)
<div class="col-12 text-center text-muted">
<h4 class="font-weight-bold">No results found</h4>
</div>
@endif
</div>
</section>
<section class="pt-5 mt-5">
@ -49,6 +56,13 @@
</a>
</div>
@endforeach
@if($posts->count() == 0)
<div class="col-12 text-center text-muted">
<h4 class="font-weight-bold">No results found</h4>
</div>
@endif
</div>
</section>
</div>