@@ -15,7 +15,8 @@ import { getUserAvatarURL } from '../../utils/lib/getUserAvatarURL';
1515import { Users , Rooms , Messages } from '../../models' ;
1616import { insertMessage , createDirectRoom } from '../../lib' ;
1717import { getValidRoomName } from '../../utils' ;
18- import { settings } from '../../settings/lib/settings' ;
18+ import { settings } from '../../settings/server' ;
19+ import { MentionsParser } from '../../mentions/lib/MentionsParser'
1920
2021export class SlackImporter extends Base {
2122 constructor ( info , importRecord ) {
@@ -242,6 +243,27 @@ export class SlackImporter extends Base {
242243 } ) ;
243244 }
244245
246+ parseMentions ( message ) {
247+ let mentionsParser ;
248+ mentionsParser = new MentionsParser ( {
249+ pattern : settings . get ( 'UTF8_Names_Validation' ) ,
250+ useRealName : settings . get ( 'UI_Use_Real_Name' ) ,
251+ me : ( ) => 'me' ,
252+ } ) ;
253+
254+ if ( ! message . mentions ) {
255+ message . mentions = [ ] ;
256+ }
257+ message . mentions . push ( ...mentionsParser . getUserMentions ( message . msg ) ) ;
258+
259+ if ( ! message . channels ) {
260+ message . channels = [ ] ;
261+ }
262+ message . channels . push ( ...mentionsParser . getChannelMentions ( message . msg ) ) ;
263+
264+ message . temp = message . msg ;
265+ }
266+
245267 processMessageSubType ( message , room , msgDataDefaults , missedTypes ) {
246268 const ignoreTypes = { bot_add : true , file_comment : true , file_mention : true } ;
247269
@@ -274,6 +296,7 @@ export class SlackImporter extends Base {
274296 ...msgDataDefaults ,
275297 msg : `_${ this . convertSlackMessageToRocketChat ( message . text ) } _` ,
276298 } ;
299+ this . parseMentions ( msgObj ) ;
277300 insertMessage ( rocketUser , msgObj , room , this . _anyExistingSlackMessage ) ;
278301 break ;
279302 }
@@ -304,6 +327,7 @@ export class SlackImporter extends Base {
304327 if ( message . icons ) {
305328 msgObj . emoji = message . icons . emoji ;
306329 }
330+ this . parseMentions ( msgObj ) ;
307331 insertMessage ( botUser , msgObj , room , this . _anyExistingSlackMessage ) ;
308332 break ;
309333 }
@@ -457,6 +481,7 @@ export class SlackImporter extends Base {
457481 }
458482 }
459483
484+ this . parseMentions ( msgObj ) ;
460485 try {
461486 insertMessage ( this . getRocketUserFromUserId ( message . user ) , msgObj , room , this . _anyExistingSlackMessage ) ;
462487 } catch ( e ) {
0 commit comments