commit ade99deeed90c2a7da8d3dfae817d458a7773c45
Author: Wim <wim@42.be>
Date: Fri May 24 00:23:50 2024 +0000
diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go
index 2707ad2..3f99da0 100644
--- a/bridge/discord/discord.go
+++ b/bridge/discord/discord.go
@@ -3317 +3317 @@ func (b *Bdiscord) handleEventBotUser(msg *config.Message, channelID string) (st
// Edit message
if msg.ID != "" {
// Exploit that a discord message ID is actually just a large number, and we encode a list of IDs by separating them with ";".
- var msgIds = strings.Split(msg.ID, ";")
+ msgIds := strings.Split(msg.ID, ";")
msgParts := helper.ClipOrSplitMessage(b.replaceUserMentions(msg.Text), MessageLength, b.GetString("MessageClipped"), len(msgIds))
for len(msgParts) < len(msgIds) {
msgParts = append(msgParts, "((obsoleted by edit))")
@@ -3497 +3497 @@ func (b *Bdiscord) handleEventBotUser(msg *config.Message, channelID string) (st
}
msgParts := helper.ClipOrSplitMessage(b.replaceUserMentions(msg.Text), MessageLength, b.GetString("MessageClipped"), b.GetInt("MessageSplitMaxCount"))
- var msgIds = []string{}
+ msgIds := []string{}
for _, msgPart := range msgParts {
m := discordgo.MessageSend{
diff --git a/bridge/discord/webhook.go b/bridge/discord/webhook.go
index 4e647b3..74a272b 100644
--- a/bridge/discord/webhook.go
+++ b/bridge/discord/webhook.go
@@ -457 +457 @@ func (b *Bdiscord) maybeGetLocalAvatar(msg *config.Message) string {
func (b *Bdiscord) webhookSendTextOnly(msg *config.Message, channelID string) (string, error) {
msgParts := helper.ClipOrSplitMessage(msg.Text, MessageLength, b.GetString("MessageClipped"), b.GetInt("MessageSplitMaxCount"))
- var msgIds = []string{}
+ msgIds := []string{}
for _, msgPart := range msgParts {
res, err := b.transmitter.Send(
channelID,
@@ -687 +687 @@ func (b *Bdiscord) webhookSendTextOnly(msg *config.Message, channelID string) (s
func (b *Bdiscord) webhookSendFilesOnly(msg *config.Message, channelID string) error {
for _, f := range msg.Extra["file"] {
- fi := f.(config.FileInfo)
+ fi := f.(config.FileInfo) //nolint:forcetypeassert
file := discordgo.File{
Name: fi.Name,
ContentType: "",
@@ -1018 +1018 @@ func (b *Bdiscord) webhookSendFilesOnly(msg *config.Message, channelID string) e
// Returns messageID and error.
func (b *Bdiscord) webhookSend(msg *config.Message, channelID string) (string, error) {
var (
- res string
- err error
+ res string
+ err error
)
// If avatar is unset, mutate the message to include the local avatar (but only if settings say we should do this)
@@ -14329 +14329 @@ func (b *Bdiscord) handleEventWebhook(msg *config.Message, channelID string) (st
if msg.ID != "" {
// Exploit that a discord message ID is actually just a large number, and we encode a list of IDs by separating them with ";".
- var msgIds = strings.Split(msg.ID, ";")
+ msgIds := strings.Split(msg.ID, ";")
msgParts := helper.ClipOrSplitMessage(b.replaceUserMentions(msg.Text), MessageLength, b.GetString("MessageClipped"), len(msgIds))
for len(msgParts) < len(msgIds) {
msgParts = append(msgParts, "((obsoleted by edit))")
}
b.Log.Debugf("Editing webhook message")
- var edit_err error = nil
+ var editErr error = nil
for i := range msgParts {
// In case of split-messages where some parts remain the same (i.e. only a typo-fix in a huge message), this causes some noop-updates.
// TODO: Optimize away noop-updates of un-edited messages
- edit_err = b.transmitter.Edit(channelID, msgIds[i], &discordgo.WebhookParams{
+ editErr = b.transmitter.Edit(channelID, msgIds[i], &discordgo.WebhookParams{
Content: msgParts[i],
Username: msg.Username,
AllowedMentions: b.getAllowedMentions(),
})
- if edit_err != nil {
+ if editErr != nil {
break
}
}
- if edit_err == nil {
+ if editErr == nil {
return msg.ID, nil
}
- b.Log.Errorf("Could not edit webhook message(s): %s; sending as new message(s) instead", edit_err)
+ b.Log.Errorf("Could not edit webhook message(s): %s; sending as new message(s) instead", editErr)
}
b.Log.Debugf("Processing webhook sending for message %#v", msg)
diff --git a/bridge/helper/helper.go b/bridge/helper/helper.go
index d968f4d..b90c906 100644
--- a/bridge/helper/helper.go
+++ b/bridge/helper/helper.go
@@ -23117 +23117 @@ func ClipMessage(text string, length int, clippingMessage string) string {
func ClipOrSplitMessage(text string, length int, clippingMessage string, splitMax int) []string {
var msgParts []string
- var remainingText = text
+ remainingText := text
// Invariant of this splitting loop: No text is lost (msgParts+remainingText is the original text),
// and all parts is guaranteed to satisfy the length requirement.
- for len(msgParts) < splitMax - 1 && len(remainingText) > length {
+ for len(msgParts) < splitMax-1 && len(remainingText) > length {
// Decision: The text needs to be split (again).
var chunk string
- var wasted = 0
+ wasted := 0
// The longest UTF-8 encoding of a valid rune is 4 bytes (0xF4 0x8F 0xBF 0xBF, encoding U+10FFFF),
// so we should never need to waste 4 or more bytes at a time.
for wasted < 4 && wasted < length {
- chunk = remainingText[:length - wasted]
+ chunk = remainingText[:length-wasted]
if r, _ := utf8.DecodeLastRuneInString(chunk); r == utf8.RuneError {
wasted += 1
} else {
diff --git a/bridge/helper/helper_test.go b/bridge/helper/helper_test.go
index 739ece9..6823de6 100644
--- a/bridge/helper/helper_test.go
+++ b/bridge/helper/helper_test.go
@@ -1697 +1697 @@ var clippingOrSplittingTestCases = map[string]struct {
clipSplitLength: 50,
clippingMessage: "?!?!",
splitMax: 10,
- expectedOutput: []string{
+ expectedOutput: []string{
"Lorem ipsum dolor sit amet, consectetur adipiscing",
" elit, sed do eiusmod tempor incididunt ut labore ",
"et dolore magna aliqua.",
@@ -1807 +1807 @@ var clippingOrSplittingTestCases = map[string]struct {
clipSplitLength: 50,
clippingMessage: "?!?!",
splitMax: 3,
- expectedOutput: []string{
+ expectedOutput: []string{
"Lorem ipsum dolor sit amet, consectetur adipiscing",
" elit, sed do eiusmod tempor incididunt ut labore ",
"et dolore magna aliqua.",
@@ -1917 +1917 @@ var clippingOrSplittingTestCases = map[string]struct {
clipSplitLength: 50,
clippingMessage: "?!?!",
splitMax: 2,
- expectedOutput: []string{
+ expectedOutput: []string{
"Lorem ipsum dolor sit amet, consectetur adipiscing",
" elit, sed do eiusmod tempor incididunt ut lab?!?!",
},
@@ -2017 +2017 @@ var clippingOrSplittingTestCases = map[string]struct {
clipSplitLength: 50,
clippingMessage: "",
splitMax: 2,
- expectedOutput: []string{
+ expectedOutput: []string{
"Lorem ipsum dolor sit amet, consectetur adipiscing",
" elit, sed do eiusmod tempor inc <clipped message>",
},
@@ -2188 +2188 @@ var clippingOrSplittingTestCases = map[string]struct {
clipSplitLength: 50,
clippingMessage: "",
splitMax: 10,
- expectedOutput: []string{
- "人人生而自由,在尊嚴和權利上一律", // Note: only 48 bytes!
+ expectedOutput: []string{
+ "人人生而自由,在尊嚴和權利上一律", // Note: only 48 bytes!
"平等。 他們都具有理性和良知,應該", // Note: only 49 bytes!
"以兄弟情誼的精神對待彼此。",
},