/
chatlogger.go
39 lines (33 loc) · 921 Bytes
/
chatlogger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package chatlogger
import (
"html"
"os"
"github.com/gempir/go-twitch-irc/v3"
"github.com/seriousm4x/wubbl0rz-archiv-backend/pkg/database"
"github.com/seriousm4x/wubbl0rz-archiv-backend/pkg/logger"
"github.com/seriousm4x/wubbl0rz-archiv-backend/pkg/models"
)
func Run() {
client := twitch.NewAnonymousClient()
var msg models.ChatMessage
client.OnPrivateMessage(func(message twitch.PrivateMessage) {
msg.ID = message.ID
msg.CreatedAt = message.Time
msg.UserID = message.User.ID
msg.UserDisplayName = message.User.DisplayName
msg.UserName = message.User.Name
msg.Message = html.EscapeString(message.Message)
msg.Tags = message.Tags
if result := database.DB.Model(&msg).Create(msg); result.Error != nil {
logger.Error.Println(result.Error)
return
}
})
client.Join(os.Getenv("BROADCASTER_NAME"))
for {
err := client.Connect()
if err != nil {
logger.Error.Println(err)
}
}
}