summaryrefslogtreecommitdiff
path: root/src/services/note/create.ts
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2018-12-02 18:05:33 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2018-12-02 18:05:33 +0900
commit3a2dc95850cf09c6d02841938e6d4befa22d9f3b (patch)
tree29bbcce2fa89670f4590f3e579566afa0089bcea /src/services/note/create.ts
parent10.60.0 (diff)
downloadsharkey-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/create.ts')
-rw-r--r--src/services/note/create.ts22
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 }));