commit
67a874606e
6 changed files with 132 additions and 13 deletions
|
@ -150,6 +150,17 @@ func (s *Server) getChannelLogs(c echo.Context) error {
|
|||
Type: message.Type,
|
||||
Channel: message.Channel,
|
||||
}
|
||||
case *twitch.UserNoticeMessage:
|
||||
message := *parsedMessage.(*twitch.UserNoticeMessage)
|
||||
|
||||
chatMsg = chatMessage{
|
||||
Timestamp: timestamp{message.Time},
|
||||
Username: message.User.Name,
|
||||
DisplayName: message.User.DisplayName,
|
||||
Text: message.SystemMsg + " " + message.Message,
|
||||
Type: message.Type,
|
||||
Channel: message.Channel,
|
||||
}
|
||||
}
|
||||
|
||||
logResult.Messages = append(logResult.Messages, chatMsg)
|
||||
|
@ -233,6 +244,17 @@ func (s *Server) getChannelLogsRange(c echo.Context) error {
|
|||
Type: message.Type,
|
||||
Channel: message.Channel,
|
||||
}
|
||||
case *twitch.UserNoticeMessage:
|
||||
message := *parsedMessage.(*twitch.UserNoticeMessage)
|
||||
|
||||
chatMsg = chatMessage{
|
||||
Timestamp: timestamp{message.Time},
|
||||
Username: message.User.Name,
|
||||
DisplayName: message.User.DisplayName,
|
||||
Text: message.SystemMsg + " " + message.Message,
|
||||
Type: message.Type,
|
||||
Channel: message.Channel,
|
||||
}
|
||||
}
|
||||
|
||||
logResult.Messages = append(logResult.Messages, chatMsg)
|
||||
|
|
|
@ -61,7 +61,7 @@ func (s *Server) Init() {
|
|||
XSSProtection: "", // disabled
|
||||
ContentTypeNosniff: "nosniff",
|
||||
XFrameOptions: "", // disabled
|
||||
HSTSMaxAge: 0, // disabled
|
||||
HSTSMaxAge: 0, // disabled
|
||||
ContentSecurityPolicy: "", // disabled
|
||||
}))
|
||||
e.Use(middleware.CORSWithConfig(DefaultCORSConfig))
|
||||
|
@ -226,6 +226,8 @@ func writeTextResponse(c echo.Context, cLog *chatLog) error {
|
|||
c.Response().Write([]byte(fmt.Sprintf("[%s] #%s %s: %s\n", cMessage.Timestamp.Format("2006-01-2 15:04:05"), cMessage.Channel, cMessage.Username, cMessage.Text)))
|
||||
case twitch.CLEARCHAT:
|
||||
c.Response().Write([]byte(fmt.Sprintf("[%s] #%s %s\n", cMessage.Timestamp.Format("2006-01-2 15:04:05"), cMessage.Channel, cMessage.Text)))
|
||||
case twitch.USERNOTICE:
|
||||
c.Response().Write([]byte(fmt.Sprintf("[%s] #%s %s\n", cMessage.Timestamp.Format("2006-01-2 15:04:05"), cMessage.Channel, cMessage.Text)))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
22
api/user.go
22
api/user.go
|
@ -324,6 +324,17 @@ func (s *Server) getUserLogs(c echo.Context) error {
|
|||
Type: message.Type,
|
||||
Channel: message.Channel,
|
||||
}
|
||||
case *twitch.UserNoticeMessage:
|
||||
message := *parsedMessage.(*twitch.UserNoticeMessage)
|
||||
|
||||
chatMsg = chatMessage{
|
||||
Timestamp: timestamp{message.Time},
|
||||
Username: message.User.Name,
|
||||
DisplayName: message.User.DisplayName,
|
||||
Text: message.SystemMsg + " " + message.Message,
|
||||
Type: message.Type,
|
||||
Channel: message.Channel,
|
||||
}
|
||||
}
|
||||
|
||||
logResult.Messages = append(logResult.Messages, chatMsg)
|
||||
|
@ -408,6 +419,17 @@ func (s *Server) getUserLogsRange(c echo.Context) error {
|
|||
Type: message.Type,
|
||||
Channel: message.Channel,
|
||||
}
|
||||
case *twitch.UserNoticeMessage:
|
||||
message := *parsedMessage.(*twitch.UserNoticeMessage)
|
||||
|
||||
chatMsg = chatMessage{
|
||||
Timestamp: timestamp{message.Time},
|
||||
Username: message.User.Name,
|
||||
DisplayName: message.User.DisplayName,
|
||||
Text: message.SystemMsg + " " + message.Message,
|
||||
Type: message.Type,
|
||||
Channel: message.Channel,
|
||||
}
|
||||
}
|
||||
|
||||
logResult.Messages = append(logResult.Messages, chatMsg)
|
||||
|
|
36
bot/main.go
36
bot/main.go
|
@ -54,14 +54,14 @@ func (b *Bot) Connect(channelIds []string) {
|
|||
twitchClient.OnPrivateMessage(func(message twitch.PrivateMessage) {
|
||||
|
||||
go func() {
|
||||
err := b.fileLogger.LogPrivateMessageForUser(message.Channel, message.User, message)
|
||||
err := b.fileLogger.LogPrivateMessageForUser(message.User, message)
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
err := b.fileLogger.LogPrivateMessageForChannel(message.Channel, message.User, message)
|
||||
err := b.fileLogger.LogPrivateMessageForChannel(message)
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
}
|
||||
|
@ -73,17 +73,45 @@ func (b *Bot) Connect(channelIds []string) {
|
|||
}
|
||||
})
|
||||
|
||||
twitchClient.OnUserNoticeMessage(func(message twitch.UserNoticeMessage) {
|
||||
log.Debug(message.Raw)
|
||||
|
||||
go func() {
|
||||
err := b.fileLogger.LogUserNoticeMessageForUser(message.User.ID, message)
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
}
|
||||
}()
|
||||
|
||||
if _, ok := message.Tags["msg-param-recipient-id"]; ok {
|
||||
go func() {
|
||||
err := b.fileLogger.LogUserNoticeMessageForUser(message.Tags["msg-param-recipient-id"], message)
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
go func() {
|
||||
err := b.fileLogger.LogUserNoticeMessageForChannel(message)
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
}
|
||||
}()
|
||||
|
||||
})
|
||||
|
||||
twitchClient.OnClearChatMessage(func(message twitch.ClearChatMessage) {
|
||||
|
||||
go func() {
|
||||
err := b.fileLogger.LogClearchatMessageForUser(message.Channel, message.TargetUserID, message)
|
||||
err := b.fileLogger.LogClearchatMessageForUser(message.TargetUserID, message)
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
err := b.fileLogger.LogClearchatMessageForChannel(message.Channel, message)
|
||||
err := b.fileLogger.LogClearchatMessageForChannel(message)
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
}
|
||||
|
|
|
@ -12,15 +12,15 @@ import (
|
|||
"github.com/gempir/go-twitch-irc"
|
||||
)
|
||||
|
||||
func (l *Logger) LogPrivateMessageForChannel(channel string, user twitch.User, message twitch.PrivateMessage) error {
|
||||
func (l *Logger) LogPrivateMessageForChannel(message twitch.PrivateMessage) error {
|
||||
year := message.Time.Year()
|
||||
month := int(message.Time.Month())
|
||||
day := message.Time.Day()
|
||||
err := os.MkdirAll(fmt.Sprintf(l.logPath+"/%s/%d/%d/%d", message.Tags["room-id"], year, month, day), 0750)
|
||||
err := os.MkdirAll(fmt.Sprintf(l.logPath+"/%s/%d/%d/%d", message.RoomID, year, month, day), 0750)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
filename := fmt.Sprintf(l.logPath+"/%s/%d/%d/%d/channel.txt", message.Tags["room-id"], year, month, day)
|
||||
filename := fmt.Sprintf(l.logPath+"/%s/%d/%d/%d/channel.txt", message.RoomID, year, month, day)
|
||||
|
||||
file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0640)
|
||||
if err != nil {
|
||||
|
@ -35,15 +35,38 @@ func (l *Logger) LogPrivateMessageForChannel(channel string, user twitch.User, m
|
|||
return nil
|
||||
}
|
||||
|
||||
func (l *Logger) LogClearchatMessageForChannel(channel string, message twitch.ClearChatMessage) error {
|
||||
func (l *Logger) LogClearchatMessageForChannel(message twitch.ClearChatMessage) error {
|
||||
year := message.Time.Year()
|
||||
month := int(message.Time.Month())
|
||||
day := message.Time.Day()
|
||||
err := os.MkdirAll(fmt.Sprintf(l.logPath+"/%s/%d/%d/%d", message.Tags["room-id"], year, month, day), 0750)
|
||||
err := os.MkdirAll(fmt.Sprintf(l.logPath+"/%s/%d/%d/%d", message.RoomID, year, month, day), 0750)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
filename := fmt.Sprintf(l.logPath+"/%s/%d/%d/%d/channel.txt", message.Tags["room-id"], year, month, day)
|
||||
filename := fmt.Sprintf(l.logPath+"/%s/%d/%d/%d/channel.txt", message.RoomID, year, month, day)
|
||||
|
||||
file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0640)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
if _, err = file.WriteString(message.Raw + "\n"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *Logger) LogUserNoticeMessageForChannel(message twitch.UserNoticeMessage) error {
|
||||
year := message.Time.Year()
|
||||
month := int(message.Time.Month())
|
||||
day := message.Time.Day()
|
||||
err := os.MkdirAll(fmt.Sprintf(l.logPath+"/%s/%d/%d/%d", message.RoomID, year, month, day), 0750)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
filename := fmt.Sprintf(l.logPath+"/%s/%d/%d/%d/channel.txt", message.RoomID, year, month, day)
|
||||
|
||||
file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0640)
|
||||
if err != nil {
|
||||
|
|
|
@ -27,7 +27,7 @@ func NewFileLogger(logPath string) Logger {
|
|||
}
|
||||
}
|
||||
|
||||
func (l *Logger) LogPrivateMessageForUser(channel string, user twitch.User, message twitch.PrivateMessage) error {
|
||||
func (l *Logger) LogPrivateMessageForUser(user twitch.User, message twitch.PrivateMessage) error {
|
||||
year := message.Time.Year()
|
||||
month := int(message.Time.Month())
|
||||
|
||||
|
@ -49,7 +49,29 @@ func (l *Logger) LogPrivateMessageForUser(channel string, user twitch.User, mess
|
|||
return nil
|
||||
}
|
||||
|
||||
func (l *Logger) LogClearchatMessageForUser(channel string, userID string, message twitch.ClearChatMessage) error {
|
||||
func (l *Logger) LogClearchatMessageForUser(userID string, message twitch.ClearChatMessage) error {
|
||||
year := message.Time.Year()
|
||||
month := int(message.Time.Month())
|
||||
|
||||
err := os.MkdirAll(fmt.Sprintf(l.logPath+"/%s/%d/%d/", message.RoomID, year, month), 0750)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
filename := fmt.Sprintf(l.logPath+"/%s/%d/%d/%s.txt", message.RoomID, year, month, userID)
|
||||
|
||||
file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0640)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
if _, err = file.WriteString(message.Raw + "\n"); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *Logger) LogUserNoticeMessageForUser(userID string, message twitch.UserNoticeMessage) error {
|
||||
year := message.Time.Year()
|
||||
month := int(message.Time.Month())
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue