MCPcopy
hub / github.com/42wim/matterbridge / modifyUsername

Method modifyUsername

gateway/gateway.go:326–373  ·  view source on GitHub ↗
(msg *config.Message, dest *bridge.Bridge)

Source from the content-addressed store, hash-verified

324}
325
326func (gw *Gateway) modifyUsername(msg *config.Message, dest *bridge.Bridge) string {
327 if dest.GetBool("StripNick") {
328 re := regexp.MustCompile("[^a-zA-Z0-9]+")
329 msg.Username = re.ReplaceAllString(msg.Username, "")
330 }
331 nick := dest.GetString("RemoteNickFormat")
332
333 // loop to replace nicks
334 br := gw.Bridges[msg.Account]
335 for _, outer := range br.GetStringSlice2D("ReplaceNicks") {
336 search := outer[0]
337 replace := outer[1]
338 // TODO move compile to bridge init somewhere
339 re, err := regexp.Compile(search)
340 if err != nil {
341 gw.logger.Errorf("regexp in %s failed: %s", msg.Account, err)
342 break
343 }
344 msg.Username = re.ReplaceAllString(msg.Username, replace)
345 }
346
347 if len(msg.Username) > 0 {
348 // fix utf-8 issue #193
349 i := 0
350 for index := range msg.Username {
351 if i == 1 {
352 i = index
353 break
354 }
355 i++
356 }
357 nick = strings.ReplaceAll(nick, "{NOPINGNICK}", msg.Username[:i]+"\u200b"+msg.Username[i:])
358 }
359
360 nick = strings.ReplaceAll(nick, "{BRIDGE}", br.Name)
361 nick = strings.ReplaceAll(nick, "{PROTOCOL}", br.Protocol)
362 nick = strings.ReplaceAll(nick, "{GATEWAY}", gw.Name)
363 nick = strings.ReplaceAll(nick, "{LABEL}", br.GetString("Label"))
364 nick = strings.ReplaceAll(nick, "{NICK}", msg.Username)
365 nick = strings.ReplaceAll(nick, "{USERID}", msg.UserID)
366 nick = strings.ReplaceAll(nick, "{CHANNEL}", msg.Channel)
367 tengoNick, err := gw.modifyUsernameTengo(msg, br)
368 if err != nil {
369 gw.logger.Errorf("modifyUsernameTengo error: %s", err)
370 }
371 nick = strings.ReplaceAll(nick, "{TENGO}", tengoNick)
372 return nick
373}
374
375func (gw *Gateway) modifyAvatar(msg *config.Message, dest *bridge.Bridge) string {
376 iconurl := dest.GetString("IconURL")

Callers 1

SendMessageMethod · 0.95

Calls 4

modifyUsernameTengoMethod · 0.95
GetBoolMethod · 0.65
GetStringMethod · 0.65
GetStringSlice2DMethod · 0.65

Tested by

no test coverage detected