소스 검색

Merge pull request #3032 from pixelfed/staging

Staging
daniel 3 년 전
부모
커밋
59f6a2ead7

+ 1 - 0
CHANGELOG.md

@@ -4,6 +4,7 @@
 
 ### Added
 - Manual email verification requests. ([bc659387](https://github.com/pixelfed/pixelfed/commit/bc659387))
+- Added StatusMentionService, fixes #3026. ([e5387d67](https://github.com/pixelfed/pixelfed/commit/e5387d67))
 
 ### Updated
 - Updated NotificationService, fix 500 bug. ([4a609dc3](https://github.com/pixelfed/pixelfed/commit/4a609dc3))

+ 23 - 0
app/Services/StatusMentionService.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Services;
+
+use Illuminate\Support\Facades\Cache;
+use App\Mention;
+use Illuminate\Support\Str;
+
+class StatusMentionService
+{
+	public static function get($id)
+	{
+		return Mention::whereStatusId($id)
+			->get()
+			->map(function($mention) {
+				return AccountService::get($mention->profile_id);
+			})->filter(function($mention) {
+				return $mention;
+			})
+			->values()
+			->toArray();
+	}
+}

+ 3 - 2
app/Transformer/Api/StatusStatelessTransformer.php

@@ -11,6 +11,7 @@ use App\Services\MediaService;
 use App\Services\MediaTagService;
 use App\Services\StatusHashtagService;
 use App\Services\StatusLabelService;
+use App\Services\StatusMentionService;
 use App\Services\ProfileService;
 use App\Services\PollService;
 
@@ -35,7 +36,7 @@ class StatusStatelessTransformer extends Fractal\TransformerAbstract
 			'created_at'                => $status->created_at->format('c'),
 			'emojis'                    => [],
 			'reblogs_count'             => 0,
-			'favourites_count'          => 0,
+			'favourites_count'          => $status->likes_count ?? 0,
 			'reblogged'                 => null,
 			'favourited'                => null,
 			'muted'                     => null,
@@ -48,7 +49,7 @@ class StatusStatelessTransformer extends Fractal\TransformerAbstract
 			 ],
 			'language'                  => null,
 			'pinned'                    => null,
-			'mentions'                  => [],
+			'mentions'                  => StatusMentionService::get($status->id),
 			'tags'                      => [],
 			'pf_type'                   => $status->type ?? $status->setType(),
 			'reply_count'               => (int) $status->reply_count,

+ 3 - 2
app/Transformer/Api/StatusTransformer.php

@@ -12,6 +12,7 @@ use App\Services\MediaService;
 use App\Services\MediaTagService;
 use App\Services\StatusHashtagService;
 use App\Services\StatusLabelService;
+use App\Services\StatusMentionService;
 use App\Services\ProfileService;
 use Illuminate\Support\Str;
 use App\Services\PollService;
@@ -37,7 +38,7 @@ class StatusTransformer extends Fractal\TransformerAbstract
 			'created_at'                => $status->created_at->format('c'),
 			'emojis'                    => [],
 			'reblogs_count'             => 0,
-			'favourites_count'          => 0,
+			'favourites_count'          => $status->likes_count ?? 0,
 			'reblogged'                 => $status->shared(),
 			'favourited'                => $status->liked(),
 			'muted'                     => null,
@@ -50,7 +51,7 @@ class StatusTransformer extends Fractal\TransformerAbstract
 			 ],
 			'language'                  => null,
 			'pinned'                    => null,
-			'mentions'                  => [],
+			'mentions'                  => StatusMentionService::get($status->id),
 			'tags'                      => [],
 			'pf_type'                   => $status->type ?? $status->setType(),
 			'reply_count'               => (int) $status->reply_count,

+ 1 - 1
resources/assets/js/components/Profile.vue

@@ -145,7 +145,7 @@
 										<span v-if="profile.pronouns" class="text-muted small">{{profile.pronouns.join('/')}}</span>
 									</p>
 									<p v-if="profile.note" class="mb-0" v-html="profile.note"></p>
-									<p v-if="profile.website"><a :href="profile.website" class="profile-website small" rel="me external nofollow noopener" target="_blank" @click.prevent="remoteRedirect(profile.website)">{{formatWebsite(profile.website)}}</a></p>
+									<p v-if="profile.website"><a :href="profile.website" class="profile-website small" rel="me external nofollow noopener" target="_blank">{{formatWebsite(profile.website)}}</a></p>
 									<p class="d-flex small text-muted align-items-center">
 										<span v-if="profile.is_admin" class="btn btn-outline-danger btn-sm py-0 mr-3" title="Admin Account" data-toggle="tooltip">
 											Admin