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

View file

@ -25,6 +25,13 @@
</div> </div>
</div> </div>
@endforeach @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> </div>
</section> </section>
<section class="pt-5 mt-5"> <section class="pt-5 mt-5">
@ -49,6 +56,13 @@
</a> </a>
</div> </div>
@endforeach @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> </div>
</section> </section>
</div> </div>