From 1f4ae2f63a609d51942daa23772439379496064e Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 2 Apr 2021 10:36:11 +0900 Subject: Use mfm-js for MFM parsing (#7415) * wip * Update mfm.ts * wip * update mfmjs * refactor * nanka * Update mfm.ts * Update to-html.ts * Update to-html.ts * wip * fix test * fix test --- src/services/note/create.ts | 14 +++++++------- 1 file changed, 7 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 64d5513ecc..125285f34a 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -1,3 +1,4 @@ +import * as mfm from 'mfm-js'; import es from '../../db/elasticsearch'; import { publishMainStream, publishNotesStream } from '../stream'; import DeliverManager from '../../remote/activitypub/deliver-manager'; @@ -5,7 +6,6 @@ import renderNote from '../../remote/activitypub/renderer/note'; import renderCreate from '../../remote/activitypub/renderer/create'; import renderAnnounce from '../../remote/activitypub/renderer/announce'; import { renderActivity } from '../../remote/activitypub/renderer'; -import { parse } from '../../mfm/parse'; import { resolveUser } from '../../remote/resolve-user'; import config from '@/config'; import { updateHashtags } from '../update-hashtag'; @@ -13,7 +13,7 @@ import { concat } from '../../prelude/array'; import insertNoteUnread from './unread'; import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; import extractMentions from '@/misc/extract-mentions'; -import extractEmojis from '@/misc/extract-emojis'; +import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mfm'; import extractHashtags from '@/misc/extract-hashtags'; import { Note, IMentionedRemoteUsers } from '../../models/entities/note'; import { Mutings, Users, NoteWatchings, Notes, Instances, UserProfiles, Antennas, Followings, MutedNotes, Channels, ChannelFollowings } from '../../models'; @@ -182,17 +182,17 @@ export default async (user: { id: User['id']; username: User['username']; host: // Parse MFM if needed if (!tags || !emojis || !mentionedUsers) { - const tokens = data.text ? parse(data.text)! : []; - const cwTokens = data.cw ? parse(data.cw)! : []; + const tokens = data.text ? mfm.parse(data.text)! : []; + const cwTokens = data.cw ? mfm.parse(data.cw)! : []; const choiceTokens = data.poll && data.poll.choices - ? concat(data.poll.choices.map(choice => parse(choice)!)) + ? concat(data.poll.choices.map(choice => mfm.parse(choice)!)) : []; const combinedTokens = tokens.concat(cwTokens).concat(choiceTokens); tags = data.apHashtags || extractHashtags(combinedTokens); - emojis = data.apEmojis || extractEmojis(combinedTokens); + emojis = data.apEmojis || extractCustomEmojisFromMfm(combinedTokens); mentionedUsers = data.apMentions || await extractMentionedUsers(user, combinedTokens); } @@ -604,7 +604,7 @@ function incNotesCountOfUser(user: { id: User['id']; }) { .execute(); } -async function extractMentionedUsers(user: { host: User['host']; }, tokens: ReturnType): Promise { +async function extractMentionedUsers(user: { host: User['host']; }, tokens: mfm.MfmNode[]): Promise { if (tokens == null) return []; const mentions = extractMentions(tokens); -- cgit v1.2.3-freya