From 3a2dc95850cf09c6d02841938e6d4befa22d9f3b Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Sun, 2 Dec 2018 18:05:33 +0900 Subject: No MFM parsing when remote note (#3470) * Use tag for hashtag detection of remote note * No MFM parsing when remote note --- src/services/note/create.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/services/note/create.ts') diff --git a/src/services/note/create.ts b/src/services/note/create.ts index a35e4fe18d..9fee12d6ad 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -98,6 +98,8 @@ type Option = { visibility?: string; visibleUsers?: IUser[]; apMentions?: IUser[]; + apHashtags?: string[]; + apEmojis?: string[]; uri?: string; app?: IApp; }; @@ -153,16 +155,22 @@ export default async (user: IUser, data: Option, silent = false) => new Promise< data.text = data.text.trim(); } - // Parse MFM - const tokens = data.text ? parse(data.text) : []; - const cwTokens = data.cw ? parse(data.cw) : []; - const combinedTokens = tokens.concat(cwTokens); + let tags = data.apHashtags; + let emojis = data.apEmojis; + let mentionedUsers = data.apMentions; - const tags = extractHashtags(combinedTokens); + // Parse MFM if needed + if (!tags || !emojis || !mentionedUsers) { + const tokens = data.text ? parse(data.text) : []; + const cwTokens = data.cw ? parse(data.cw) : []; + const combinedTokens = tokens.concat(cwTokens); - const emojis = extractEmojis(combinedTokens); + tags = data.apHashtags || extractHashtags(combinedTokens); - const mentionedUsers = data.apMentions || await extractMentionedUsers(user, combinedTokens); + emojis = data.apEmojis || extractEmojis(combinedTokens); + + mentionedUsers = data.apMentions || await extractMentionedUsers(user, combinedTokens); + } if (data.reply && !user._id.equals(data.reply.userId) && !mentionedUsers.some(u => u._id.equals(data.reply.userId))) { mentionedUsers.push(await User.findOne({ _id: data.reply.userId })); -- cgit v1.2.3-freya