diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2018-12-02 18:05:33 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2018-12-02 18:05:33 +0900 |
| commit | 3a2dc95850cf09c6d02841938e6d4befa22d9f3b (patch) | |
| tree | 29bbcce2fa89670f4590f3e579566afa0089bcea /src/services/note | |
| parent | 10.60.0 (diff) | |
| download | sharkey-3a2dc95850cf09c6d02841938e6d4befa22d9f3b.tar.gz sharkey-3a2dc95850cf09c6d02841938e6d4befa22d9f3b.tar.bz2 sharkey-3a2dc95850cf09c6d02841938e6d4befa22d9f3b.zip | |
No MFM parsing when remote note (#3470)
* Use tag for hashtag detection of remote note
* No MFM parsing when remote note
Diffstat (limited to 'src/services/note')
| -rw-r--r-- | src/services/note/create.ts | 22 |
1 files changed, 15 insertions, 7 deletions
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 })); |