summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/renderer/note.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/remote/activitypub/renderer/note.ts')
-rw-r--r--src/remote/activitypub/renderer/note.ts17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts
index 43531b121a..b971a53951 100644
--- a/src/remote/activitypub/renderer/note.ts
+++ b/src/remote/activitypub/renderer/note.ts
@@ -2,11 +2,14 @@ import renderDocument from './document';
import renderHashtag from './hashtag';
import config from '../../../config';
import DriveFile from '../../../models/drive-file';
-import Post from '../../../models/post';
-import User from '../../../models/user';
+import Post, { IPost } from '../../../models/post';
+import User, { IUser } from '../../../models/user';
+
+export default async (user: IUser, post: IPost) => {
+ const promisedFiles = post.mediaIds
+ ? DriveFile.find({ _id: { $in: post.mediaIds } })
+ : Promise.resolve([]);
-export default async (user, post) => {
- const promisedFiles = DriveFile.find({ _id: { $in: post.mediaIds } });
let inReplyTo;
if (post.replyId) {
@@ -16,11 +19,11 @@ export default async (user, post) => {
if (inReplyToPost !== null) {
const inReplyToUser = await User.findOne({
- _id: post.userId,
+ _id: inReplyToPost.userId,
});
if (inReplyToUser !== null) {
- inReplyTo = `${config.url}@${inReplyToUser.username}/${inReplyToPost._id}`;
+ inReplyTo = inReplyToPost.uri || `${config.url}/@${inReplyToUser.username}/${inReplyToPost._id}`;
}
}
} else {
@@ -39,6 +42,6 @@ export default async (user, post) => {
cc: `${attributedTo}/followers`,
inReplyTo,
attachment: (await promisedFiles).map(renderDocument),
- tag: post.tags.map(renderHashtag)
+ tag: (post.tags || []).map(renderHashtag)
};
};