merge: Fix Note Edits being federated incorrectly (!417)

View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/417

Approved-by: Amelia Yukii <amelia.yukii@shourai.de>
Approved-by: dakkar <dakkar@thenautilus.net>
This commit is contained in:
Amelia Yukii 2024-02-15 22:18:58 +00:00
commit be36a793cd
2 changed files with 11 additions and 14 deletions

View file

@ -35,7 +35,7 @@ export class ApMfmService {
noMisskeyContent = true; noMisskeyContent = true;
} }
const content = this.mfmService.toHtml(parsed, JSON.parse(note.mentionedRemoteUsers)); const content = this.mfmService.toHtml(parsed, note.mentionedRemoteUsers ? JSON.parse(note.mentionedRemoteUsers) : []);
return { return {
content, content,

View file

@ -700,17 +700,15 @@ export class ApRendererService {
poll = await this.pollsRepository.findOneBy({ noteId: note.id }); poll = await this.pollsRepository.findOneBy({ noteId: note.id });
} }
let apText = text; let apAppend = '';
if (quote) { if (quote) {
apText += `\n\nRE: ${quote}`; apAppend += `\n\nRE: ${quote}`;
} }
const summary = note.cw === '' ? String.fromCharCode(0x200B) : note.cw; const summary = note.cw === '' ? String.fromCharCode(0x200B) : note.cw;
const content = this.apMfmService.getNoteHtml(Object.assign({}, note, { const { content, noMisskeyContent } = this.apMfmService.getNoteHtml(note, apAppend);
text: apText,
}));
const emojis = await this.getEmojis(note.emojis); const emojis = await this.getEmojis(note.emojis);
const apemojis = emojis.filter(emoji => !emoji.localOnly).map(emoji => this.renderEmoji(emoji)); const apemojis = emojis.filter(emoji => !emoji.localOnly).map(emoji => this.renderEmoji(emoji));
@ -723,9 +721,6 @@ export class ApRendererService {
const asPoll = poll ? { const asPoll = poll ? {
type: 'Question', type: 'Question',
content: this.apMfmService.getNoteHtml(Object.assign({}, note, {
text: text,
})),
[poll.expiresAt && poll.expiresAt < new Date() ? 'closed' : 'endTime']: poll.expiresAt, [poll.expiresAt && poll.expiresAt < new Date() ? 'closed' : 'endTime']: poll.expiresAt,
[poll.multiple ? 'anyOf' : 'oneOf']: poll.choices.map((text, i) => ({ [poll.multiple ? 'anyOf' : 'oneOf']: poll.choices.map((text, i) => ({
type: 'Note', type: 'Note',
@ -744,11 +739,13 @@ export class ApRendererService {
summary: summary ?? undefined, summary: summary ?? undefined,
content: content ?? undefined, content: content ?? undefined,
updated: note.updatedAt?.toISOString(), updated: note.updatedAt?.toISOString(),
_misskey_content: text, ...(noMisskeyContent ? {} : {
source: { _misskey_content: text,
content: text, source: {
mediaType: 'text/x.misskeymarkdown', content: text,
}, mediaType: 'text/x.misskeymarkdown',
},
}),
_misskey_quote: quote, _misskey_quote: quote,
quoteUrl: quote, quoteUrl: quote,
quoteUri: quote, quoteUri: quote,