fix: inReplyTo for private notes so that refer to the immediately previous message if not explicitly defined

This commit is contained in:
Julian Lam
2024-10-07 14:58:15 -04:00
parent 8a1abe686c
commit f4a02d9c62

View File

@@ -6,6 +6,7 @@ const path = require('path');
const validator = require('validator');
const sanitize = require('sanitize-html');
const db = require('../database');
const user = require('../user');
const categories = require('../categories');
const posts = require('../posts');
@@ -482,6 +483,14 @@ Mocks.notes.private = async ({ messageObj }) => {
`${nconf.get('url')}/api/v3/chats/${messageObj.roomId}/messages/${messageObj.toMid}` :
messageObj.toMid;
}
if (!inReplyTo) {
// Get immediately preceding message
const index = await db.sortedSetRank(`chat:room:${messageObj.roomId}:mids`, messageObj.mid);
const previousMid = await db.getSortedSetRange(`chat:room:${messageObj.roomId}:mids`, index - 1, index - 1);
inReplyTo = utils.isNumber(previousMid) ?
`${nconf.get('url')}/api/v3/chats/${messageObj.roomId}/messages/${previousMid}` :
messageObj.toMid;
}
const object = {
'@context': 'https://www.w3.org/ns/activitystreams',