Skip to content

Commit

Permalink
Add command to part/leave channels
Browse files Browse the repository at this point in the history
  • Loading branch information
hloeung committed Dec 13, 2023
1 parent b762e5e commit 14ba081
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions mm-go-irckit/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,57 @@ func getMattermostChannelName(u *User, channelID string) string {
return channelMembers[0]
}

func createSpoof(u *User, mmchannel *bridge.ChannelInfo) func(string, string, ...int) {
if strings.Contains(mmchannel.Name, "__") {
return func(nick string, msg string, maxlen ...int) {
if usr, ok := u.Srv.HasUser(nick); ok {
u.MsgSpoofUser(usr, u.Nick, msg)
} else {
logger.Errorf("%s not found for replay msg", nick)
}
}
}

channelName := mmchannel.Name

if mmchannel.TeamID != u.br.GetMe().TeamID || u.v.GetBool(u.br.Protocol()+".prefixmainteam") {
channelName = u.br.GetTeamName(mmchannel.TeamID) + "/" + mmchannel.Name
}

u.syncChannel(mmchannel.ID, "#"+channelName)
ch := u.Srv.Channel(mmchannel.ID)

return ch.SpoofMessage
}

//nolint:funlen,gocognit,gocyclo,cyclop

Check failure on line 312 in mm-go-irckit/service.go

View workflow job for this annotation

GitHub Actions / golangci-lint

directive `//nolint:funlen,gocognit,gocyclo,cyclop` is unused for linter "funlen" (nolintlint)
func part(u *User, toUser *User, args []string, service string) {
if len(args) == 0 || len(args) > 2 {
u.MsgUser(toUser, "need PART #<channel>")
u.MsgUser(toUser, "e.g. PART #bugs")
return
}

channelName := strings.TrimPrefix(args[0], "#")
channelTeamID := u.br.GetMe().TeamID
if len(args) == 2 {
channelTeamID = args[1]
}
channelID := u.br.GetChannelID(channelName, channelTeamID)
brchannel, err := u.br.GetChannel(channelID)
if err != nil {
logger.Errorf("%s not found", channelName)
return
}

spoof := createSpoof(u, brchannel)

err = u.br.Part(channelID)
if err != nil {
spoof("matterircd", fmt.Sprintf("could not part/leave %s", channelName))
}
}

//nolint:funlen,gocognit,gocyclo,cyclop
func scrollback(u *User, toUser *User, args []string, service string) {
if service == "slack" {
Expand Down Expand Up @@ -482,6 +533,7 @@ var cmds = map[string]Command{
"lastsent": {handler: lastsent, login: true, minParams: 0, maxParams: 0},
"logout": {handler: logout, login: true, minParams: 0, maxParams: 0},
"login": {handler: login, minParams: 2, maxParams: 5},
"part": {handler: part, login: true, minParams: 1, maxParams: 1},
"search": {handler: search, login: true, minParams: 1, maxParams: -1},
"searchusers": {handler: searchUsers, login: true, minParams: 1, maxParams: -1},
"scrollback": {handler: scrollback, login: true, minParams: 2, maxParams: 2},
Expand Down

0 comments on commit 14ba081

Please sign in to comment.