mirror-nourybot/cmd/bot/bot.go

56 lines
1 KiB
Go
Raw Normal View History

2021-10-13 21:30:31 +02:00
package bot
import (
twitch "github.com/gempir/go-twitch-irc/v2"
2021-10-13 23:37:46 +02:00
cfg "github.com/lyx0/nourybot/pkg/config"
2021-10-13 21:30:31 +02:00
log "github.com/sirupsen/logrus"
)
type Bot struct {
twitchClient *twitch.Client
cfg *cfg.Config
}
2021-10-13 23:29:29 +02:00
func NewBot(cfg *cfg.Config) *Bot {
2021-10-13 23:24:02 +02:00
2021-10-13 23:29:29 +02:00
log.Info("fn Newbot")
2021-10-13 23:24:02 +02:00
twitchClient := twitch.NewClient(cfg.Username, cfg.Oauth)
2021-10-13 23:29:29 +02:00
2021-10-13 21:30:31 +02:00
return &Bot{
cfg: cfg,
twitchClient: twitchClient,
}
}
2021-10-13 21:39:34 +02:00
func (b *Bot) Connect() error {
2021-10-13 23:29:29 +02:00
log.Info("fn Connect")
2021-10-13 21:39:34 +02:00
err := b.twitchClient.Connect()
if err != nil {
log.Error("Error Connecting from Twitch: ", err)
}
return err
}
func (b *Bot) Disconnect() error {
err := b.twitchClient.Disconnect()
if err != nil {
log.Error("Error Disconnecting from Twitch: ", err)
}
return err
}
2021-10-13 21:51:43 +02:00
func (b *Bot) Say(channel string, message string) {
2021-10-13 23:24:02 +02:00
b.twitchClient.Say(channel, message)
2021-10-13 21:51:43 +02:00
}
func (b *Bot) OnPrivateMessage(callback func(message *twitch.PrivateMessage)) {
log.Info(callback)
}
2021-10-13 23:29:29 +02:00
func (b *Bot) Join(channel string) {
log.Info("fn Join")
b.twitchClient.Join(channel)
}