diff --git a/src/remote/activitypub/renderer/mention.ts b/src/remote/activitypub/renderer/mention.ts index 4cba7d6a9..95cae52aa 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 aba0dc809..f9e559d30 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}`,