mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-23 15:01:27 +00:00
commit
ff6e2f2c12
3 changed files with 42 additions and 28 deletions
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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,8 +77,33 @@
|
||||||
<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>
|
||||||
|
<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>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue