Merge pull request #3180 from pixelfed/staging

Staging
This commit is contained in:
daniel 2022-01-23 01:48:38 -07:00 committed by GitHub
commit ff6e2f2c12
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 28 deletions

View file

@ -14,6 +14,7 @@
- Updated MediaStorageService, fix remote avatar bug. ([1c20d696](https://github.com/pixelfed/pixelfed/commit/1c20d696)) - Updated MediaStorageService, fix remote avatar bug. ([1c20d696](https://github.com/pixelfed/pixelfed/commit/1c20d696))
- Updated WebfingerService. Fixes #3167. ([aff74566](https://github.com/pixelfed/pixelfed/commit/aff74566)) - Updated WebfingerService. Fixes #3167. ([aff74566](https://github.com/pixelfed/pixelfed/commit/aff74566))
- Updated ComposeModal, add max file size and allowed mime types. Fixes #3162. ([879281cc](https://github.com/pixelfed/pixelfed/commit/879281cc)) - Updated ComposeModal, add max file size and allowed mime types. Fixes #3162. ([879281cc](https://github.com/pixelfed/pixelfed/commit/879281cc))
- Updated profile embeds, fix NaN bug and improve performance. ([3bd211d7](https://github.com/pixelfed/pixelfed/commit/3bd211d7))
## [v0.11.2 (2022-01-09)](https://github.com/pixelfed/pixelfed/compare/v0.11.1...v0.11.2) ## [v0.11.2 (2022-01-09)](https://github.com/pixelfed/pixelfed/compare/v0.11.1...v0.11.2)

View file

@ -13,6 +13,7 @@ use App\Story;
use App\User; use App\User;
use App\UserFilter; use App\UserFilter;
use League\Fractal; use League\Fractal;
use App\Services\AccountService;
use App\Services\FollowerService; use App\Services\FollowerService;
use App\Util\Lexer\Nickname; use App\Util\Lexer\Nickname;
use App\Util\Webfinger\Webfinger; use App\Util\Webfinger\Webfinger;
@ -55,7 +56,6 @@ class ProfileController extends Controller
$owner = false; $owner = false;
$is_following = false; $is_following = false;
$is_admin = $user->user->is_admin;
$profile = $user; $profile = $user;
$settings = [ $settings = [
'crawlable' => $settings->crawlable, 'crawlable' => $settings->crawlable,
@ -227,11 +227,12 @@ class ProfileController extends Controller
return response($res)->withHeaders(['X-Frame-Options' => 'ALLOWALL']); return response($res)->withHeaders(['X-Frame-Options' => 'ALLOWALL']);
} }
$content = Cache::remember('profile:embed:'.$profile->id, now()->addHours(12), function() use($profile) { if(AccountService::canEmbed($profile->user_id) == false) {
return View::make('profile.embed')->with(compact('profile'))->render(); return response($res)->withHeaders(['X-Frame-Options' => 'ALLOWALL']);
}); }
return response($content)->withHeaders(['X-Frame-Options' => 'ALLOWALL']); $profile = AccountService::get($profile->id);
return view('profile.embed', compact('profile'))->withHeaders(['X-Frame-Options' => 'ALLOWALL']);
} }
public function stories(Request $request, $username) public function stories(Request $request, $username)

View file

@ -12,7 +12,7 @@
<meta property="og:site_name" content="{{ config('app.name', 'pixelfed') }}"> <meta property="og:site_name" content="{{ config('app.name', 'pixelfed') }}">
<meta property="og:title" content="{{ $title ?? config('app.name', 'pixelfed') }}"> <meta property="og:title" content="{{ $title ?? config('app.name', 'pixelfed') }}">
<meta property="og:type" content="article"> <meta property="og:type" content="article">
<meta property="og:url" content="{{$profile->url()}}"> <meta property="og:url" content="{{$profile['url']}}">
<meta name="medium" content="image"> <meta name="medium" content="image">
<meta name="theme-color" content="#10c5f8"> <meta name="theme-color" content="#10c5f8">
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
@ -37,9 +37,9 @@
<div class="card status-card-embed card-md-rounded-0 border"> <div class="card status-card-embed card-md-rounded-0 border">
<div class="card-header d-inline-flex align-items-center justify-content-between bg-white"> <div class="card-header d-inline-flex align-items-center justify-content-between bg-white">
<div> <div>
<img src="{{$profile->avatarUrl()}}" width="32px" height="32px" target="_blank" style="border-radius: 32px;"> <img src="{{$profile['avatar']}}" width="32px" height="32px" target="_blank" style="border-radius: 32px;">
<a class="username font-weight-bold pl-2 text-dark" target="_blank" href="{{$profile->url()}}"> <a class="username font-weight-bold pl-2 text-dark" target="_blank" href="{{$profile['url']}}">
{{$profile->username}} {{$profile['username']}}
</a> </a>
</div> </div>
<div> <div>
@ -50,35 +50,22 @@
<div class="card-body pb-1"> <div class="card-body pb-1">
<div class="d-flex justify-content-between align-items-center"> <div class="d-flex justify-content-between align-items-center">
<div class="text-center"> <div class="text-center">
<p class="mb-0 font-weight-bold prettyCount">{{$profile->statuses()->count()}}</p> <p class="mb-0 font-weight-bold prettyCount" data-count="{{$profile['statuses_count']}}"></p>
<p class="mb-0 text-muted text-uppercase small font-weight-bold">Posts</p> <p class="mb-0 text-muted text-uppercase small font-weight-bold">Posts</p>
</div> </div>
<div class="text-center"> <div class="text-center">
<p class="mb-0 font-weight-bold prettyCount">{{$profile->followerCount(true)}}</p> <p class="mb-0 font-weight-bold prettyCount" data-count="{{$profile['followers_count']}}"></p>
<p class="mb-0 text-muted text-uppercase small font-weight-bold">Followers</p> <p class="mb-0 text-muted text-uppercase small font-weight-bold">Followers</p>
</div> </div>
<div class="text-center"> <div class="text-center">
<p class="mb-0"><a href="/i/intent/follow?user={{$profile->username}}" class="btn btn-primary btn-sm py-1 px-4 text-uppercase font-weight-bold" target="_blank">Follow</a></p> <p class="mb-0"><a href="/i/intent/follow?user={{$profile['username']}}" class="btn btn-primary btn-sm py-1 px-4 text-uppercase font-weight-bold" target="_blank">Follow</a></p>
</div> </div>
</div> </div>
<div class="row mt-4 mb-1"> <div class="row mt-4 mb-1 embed-row"></div>
@foreach($profile->statuses()->latest()->whereScope('public')->whereIsNsfw(false)->has('media')->whereType('photo')->take(9)->get() as $post)
<div class="col-4 mt-2 px-0">
<a class="card info-overlay card-md-border-0 px-1 shadow-none" href="{{$post->url()}}" target="_blank">
<div class="square">
<div class="square-content" style="background-image: url('{{$post->thumb()}}')">
</div>
<div class="info-overlay-text">
</div>
</div>
</a>
</div>
@endforeach
</div>
</div> </div>
<div class="card-footer bg-white"> <div class="card-footer bg-white">
<p class="text-center mb-0"> <p class="text-center mb-0">
<a href="{{$profile->url()}}" class="font-weight-bold" target="_blank">View More Posts</a> <a href="{{$profile['url']}}" class="font-weight-bold" target="_blank">View More Posts</a>
</p> </p>
</div> </div>
</div> </div>
@ -90,7 +77,32 @@
<script type="text/javascript">document.querySelectorAll('.caption-container a').forEach(function(i) {i.setAttribute('target', '_blank');});</script> <script type="text/javascript">document.querySelectorAll('.caption-container a').forEach(function(i) {i.setAttribute('target', '_blank');});</script>
<script type="text/javascript"> <script type="text/javascript">
document.querySelectorAll('.prettyCount').forEach(function(i) { document.querySelectorAll('.prettyCount').forEach(function(i) {
i.innerText = App.util.format.count(i.innerText); i.innerText = App.util.format.count(i.getAttribute('data-count'));
});
</script>
<script type="text/javascript">
axios.get('/api/pixelfed/v1/accounts/{{$profile['id']}}/statuses', {
params: {
only_media: true,
limit: 20
}
})
.then(res => {
let parent = $('.embed-row');
res.data
.filter(res => res.pf_type == 'photo')
.slice(0, 9)
.forEach(post => {
let el = `<div class="col-4 mt-2 px-0">
<a class="card info-overlay card-md-border-0 px-1 shadow-none" href="${post.url}" target="_blank">
<div class="square">
<div class="square-content" style="background-image: url('${post.media_attachments[0].url}')">
</div>
</div>
</a>
</div>`;
parent.append(el);
})
}); });
</script> </script>
</body> </body>