Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit 78323a66a2d0bfbbae300336488fd5b1c4f37c37 Author: mvoolt <77506726+mvoolt@users.noreply.github.com> Date: Fri Mar 10 23:57:35 2023 +0000 Add support for Mumble servers with no message length limit (#2008) * Rename .{jfif,jpe} to .jpg (mumble) * Fix messages not sending in properly if no limit is set (mumble) Co-authored-by: yellows111 <ice_ice@email.com> * Formatting fix (mumble) --------- Co-authored-by: yellows111 <ice_ice@email.com> diff --git a/bridge/mumble/handlers.go b/bridge/mumble/handlers.go index 8120159..830aa5c 100644 --- a/bridge/mumble/handlers.go +++ b/bridge/mumble/handlers.go @@ -427 +4214 @@ func (b *Bmumble) handleTextMessage(event *gumble.TextMessageEvent) {   if part.Image == nil {   rmsg.Text = part.Text   } else { - fname := b.Account + "_" + strconv.FormatInt(now.UnixNano(), 10) + "_" + strconv.Itoa(i) + part.FileExtension + fileExt := part.FileExtension + if fileExt == ".jfif" { + fileExt = ".jpg" + } + if fileExt == ".jpe" { + fileExt = ".jpg" + } + fname := b.Account + "_" + strconv.FormatInt(now.UnixNano(), 10) + "_" + strconv.Itoa(i) + fileExt   rmsg.Extra = make(map[string][]interface{})   if err = helper.HandleDownloadSize(b.Log, &rmsg, fname, int64(len(part.Image)), b.General); err != nil {   b.Log.WithError(err).Warn("not including image in message") @@ -627 +696 @@ func (b *Bmumble) handleConnect(event *gumble.ConnectEvent) {   }   // No need to talk or listen   event.Client.Self.SetSelfDeafened(true) - event.Client.Self.SetSelfMuted(true)   // if the Channel variable is set, this is a reconnect -> rejoin channel   if b.Channel != nil {   if err := b.doJoin(event.Client, *b.Channel); err != nil { diff --git a/bridge/mumble/mumble.go b/bridge/mumble/mumble.go index 945cf55..859ca4a 100644 --- a/bridge/mumble/mumble.go +++ b/bridge/mumble/mumble.go @@ -2507 +25012 @@ func (b *Bmumble) processMessage(msg *config.Message) {   // If there is a maximum message length, split and truncate the lines   var msgLines []string   if maxLength := b.serverConfig.MaximumMessageLength; maxLength != nil { - msgLines = helper.GetSubLines(msg.Text, *maxLength-len(msg.Username), b.GetString("MessageClipped")) + if *maxLength != 0 { // Some servers will have unlimited message lengths. + // Not doing this makes underflows happen. + msgLines = helper.GetSubLines(msg.Text, *maxLength-len(msg.Username), b.GetString("MessageClipped")) + } else { + msgLines = helper.GetSubLines(msg.Text, 0, b.GetString("MessageClipped")) + }   } else {   msgLines = helper.GetSubLines(msg.Text, 0, b.GetString("MessageClipped"))   }