mirror of
https://github.com/lyx0/nourybot.git
synced 2024-11-13 19:49:55 +01:00
add channel to database
This commit is contained in:
parent
07a39a7fcb
commit
1c268cd09a
35
cmd/bot/add_channel.go
Normal file
35
cmd/bot/add_channel.go
Normal file
|
@ -0,0 +1,35 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gempir/go-twitch-irc/v3"
|
||||
"github.com/lyx0/nourybot/internal/data"
|
||||
"github.com/lyx0/nourybot/pkg/commands/decapi"
|
||||
"github.com/lyx0/nourybot/pkg/common"
|
||||
)
|
||||
|
||||
func AddChannel(login string, message twitch.PrivateMessage, app *Application) {
|
||||
fmt.Println(login)
|
||||
userId, err := decapi.GetIdByLogin(login)
|
||||
if err != nil {
|
||||
app.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(userId)
|
||||
channel := &data.Channel{
|
||||
Login: login,
|
||||
TwitchID: userId,
|
||||
Announce: false,
|
||||
}
|
||||
|
||||
err = app.Models.Channels.Insert(channel)
|
||||
if err != nil {
|
||||
app.Logger.DPanic(err)
|
||||
}
|
||||
|
||||
reply := fmt.Sprintf("Joined channel %s", login)
|
||||
common.Send(message.Channel, reply, app.TwitchClient)
|
||||
|
||||
}
|
|
@ -53,6 +53,17 @@ func handleCommand(message twitch.PrivateMessage, app *Application) {
|
|||
common.Send(target, "xd", app.TwitchClient)
|
||||
return
|
||||
}
|
||||
case "addchannel":
|
||||
if message.User.ID != "31437432" { // Limit to myself for now.
|
||||
return
|
||||
} else if msgLen < 2 {
|
||||
common.Send(target, "Not enough arguments provided.", app.TwitchClient)
|
||||
return
|
||||
} else {
|
||||
// ()addchannel noemience
|
||||
AddChannel(cmdParams[1], message, app)
|
||||
return
|
||||
}
|
||||
case "bttv":
|
||||
if msgLen < 2 {
|
||||
common.Send(target, "Not enough arguments provided. Usage: ()bttv <emote name>", app.TwitchClient)
|
||||
|
|
|
@ -31,7 +31,7 @@ type Application struct {
|
|||
TwitchClient *twitch.Client
|
||||
Logger *zap.SugaredLogger
|
||||
Db *sql.DB
|
||||
models data.Models
|
||||
Models data.Models
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
@ -71,7 +71,7 @@ func main() {
|
|||
TwitchClient: tc,
|
||||
Logger: sugar,
|
||||
Db: db,
|
||||
models: data.NewModels(db),
|
||||
Models: data.NewModels(db),
|
||||
}
|
||||
|
||||
// Received a PrivateMessage (normal chat message).
|
||||
|
|
|
@ -22,7 +22,7 @@ func (c ChannelModel) Insert(channel *Channel) error {
|
|||
query := `
|
||||
INSERT INTO channels (login, twitchid, announce)
|
||||
VALUES ($1, $2, $3)
|
||||
RETURNING id, created_at`
|
||||
RETURNING id, joined_at`
|
||||
|
||||
args := []interface{}{channel.Login, channel.TwitchID, channel.Announce}
|
||||
|
||||
|
|
34
pkg/commands/decapi/userid.go
Normal file
34
pkg/commands/decapi/userid.go
Normal file
|
@ -0,0 +1,34 @@
|
|||
package decapi
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func GetIdByLogin(login string) (string, error) {
|
||||
var basePath = "https://decapi.me/twitch/id/"
|
||||
|
||||
sugar := zap.NewExample().Sugar()
|
||||
defer sugar.Sync()
|
||||
|
||||
resp, err := http.Get(fmt.Sprint(basePath + login))
|
||||
if err != nil {
|
||||
sugar.Error(err)
|
||||
return "Something went wrong FeelsBadMan", err
|
||||
}
|
||||
|
||||
defer resp.Body.Close()
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
sugar.Error(err)
|
||||
return "Something went wrong FeelsBadMan", err
|
||||
}
|
||||
|
||||
reply := string(body)
|
||||
return reply, nil
|
||||
|
||||
}
|
Loading…
Reference in a new issue