From 20549bfdf0a5214dfb627a4ec07ef042e43f263b Mon Sep 17 00:00:00 2001
From: rinsuki <428rinsuki+git@gmail.com>
Date: Sun, 17 Jun 2018 16:45:01 +0900
Subject: [PATCH] Fix #1729

---
 src/remote/activitypub/renderer/mention.ts | 13 ++++++-------
 src/remote/activitypub/renderer/note.ts    | 13 +++++++++++--
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/src/remote/activitypub/renderer/mention.ts b/src/remote/activitypub/renderer/mention.ts
index 4cba7d6a94..95cae52aa2 100644
--- a/src/remote/activitypub/renderer/mention.ts
+++ b/src/remote/activitypub/renderer/mention.ts
@@ -1,9 +1,8 @@
-export default (mention: {
-	uri: string;
-	username: string;
-	host: string;
-}) => ({
+import { IUser, isRemoteUser } from "../../../models/user";
+import config from "../../../config";
+
+export default (mention: IUser) => ({
 	type: 'Mention',
-	href: mention.uri,
-	name: `@${mention.username}@${mention.host}`
+	href: isRemoteUser(mention) ? mention.uri : `${config.url}/@${mention.username}`,
+	name: isRemoteUser(mention) ? `@${mention.username}@${mention.host}` : `@${mention.username}`,
 });
diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts
index aba0dc809a..f9e559d307 100644
--- a/src/remote/activitypub/renderer/note.ts
+++ b/src/remote/activitypub/renderer/note.ts
@@ -54,9 +54,18 @@ export default async function renderNote(note: INote, dive = true) {
 		? [`${attributedTo}/followers`].concat(mentions)
 		: [];
 
+	const mentionUsers = await User.find({
+		_id: {
+			$in: note.mentions
+		}
+	});
+
 	const hashtagTags = (note.tags || []).map(renderHashtag);
-	const mentionTags = (note.mentionedRemoteUsers || []).map(renderMention);
-	const tag = hashtagTags.concat(mentionTags);
+	const mentionTags = mentionUsers.map(renderMention);
+	const tag = [
+		...hashtagTags,
+		...mentionTags,
+	];
 
 	return {
 		id: `${config.url}/notes/${note._id}`,