diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-10-30 21:55:16 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-10-30 21:55:16 +0900 |
| commit | 120474ec6a4744e111eb06fb26d1638a7fb0eb6c (patch) | |
| tree | 04b0fcd7e58f2c7e87157dac8e93ceb39a8e4652 /src/services/note | |
| parent | Update test/api.ts (diff) | |
| download | sharkey-120474ec6a4744e111eb06fb26d1638a7fb0eb6c.tar.gz sharkey-120474ec6a4744e111eb06fb26d1638a7fb0eb6c.tar.bz2 sharkey-120474ec6a4744e111eb06fb26d1638a7fb0eb6c.zip | |
Fix bug
Diffstat (limited to 'src/services/note')
| -rw-r--r-- | src/services/note/create.ts | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 6d371e370f..7e97740edd 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -611,19 +611,21 @@ function incNotesCount(user: IUser) { async function extractMentionedUsers(tokens: ReturnType<typeof parse>): Promise<IUser[]> { if (tokens == null) return []; - const mentionTokens = unique( - tokens - .filter(t => t.type == 'mention') as TextElementMention[] - ); + const mentionTokens = tokens + .filter(t => t.type == 'mention') as TextElementMention[]; - const mentionedUsers = unique( + let mentionedUsers = erase(null, await Promise.all(mentionTokens.map(async m => { try { return await resolveUser(m.username, m.host); } catch (e) { return null; } - }))) + }))); + + // Drop duplicate users + mentionedUsers = mentionedUsers.filter((u, i, self) => + i === self.findIndex(u2 => u._id.equals(u2._id)) ); return mentionedUsers; |