twitch-bot/internal/actors/nuke/actions.go
Knut Ahlers c78356f68f
Lint: Update linter config, improve code quality
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-01-01 17:52:39 +01:00

52 lines
882 B
Go

package nuke
import (
"context"
"fmt"
"time"
"github.com/pkg/errors"
)
type (
actionFn func(channel, match, msgid, user string) error
)
func actionBan(channel, match, _, user string) error {
return errors.Wrap(
botTwitchClient.BanUser(
context.Background(),
channel,
user,
0,
fmt.Sprintf("Nuke issued for %q", match),
),
"executing ban",
)
}
func actionDelete(channel, _, msgid, _ string) (err error) {
return errors.Wrap(
botTwitchClient.DeleteMessage(
context.Background(),
channel,
msgid,
),
"deleting message",
)
}
func getActionTimeout(duration time.Duration) actionFn {
return func(channel, match, msgid, user string) error {
return errors.Wrap(
botTwitchClient.BanUser(
context.Background(),
channel,
user,
duration,
fmt.Sprintf("Nuke issued for %q", match),
),
"executing timeout",
)
}
}