create messages table and logger
This commit is contained in:
parent
38c7bef71c
commit
5144cb58dc
@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"log"
|
||||
|
||||
"gorm.io/gorm"
|
||||
@ -44,3 +45,18 @@ func GetBotController() BotController {
|
||||
|
||||
return BotController{cfg: cfg, bot: bot, db: db, updates: updates}
|
||||
}
|
||||
|
||||
func (bc BotController) LogMessage(update tgbotapi.Update) error {
|
||||
var msg *tgbotapi.Message
|
||||
if update.Message != nil {
|
||||
msg = update.Message
|
||||
} else {
|
||||
return errors.New("invalid update provided to message logger")
|
||||
}
|
||||
|
||||
var UserID = msg.From.ID
|
||||
|
||||
bc.LogMessageRaw(UserID, msg.Text, msg.Time())
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"errors"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
@ -38,6 +39,7 @@ func GetDB() (*gorm.DB, error) {
|
||||
|
||||
db.AutoMigrate(&User{})
|
||||
db.AutoMigrate(&BotContent{})
|
||||
db.AutoMigrate(&Message{})
|
||||
|
||||
return db, err
|
||||
}
|
||||
@ -73,3 +75,19 @@ func (bc BotController) GetUser(UserID int64) User {
|
||||
|
||||
return user
|
||||
}
|
||||
|
||||
type Message struct {
|
||||
gorm.Model
|
||||
UserID int64
|
||||
Msg string
|
||||
Datetime *time.Time
|
||||
}
|
||||
|
||||
func (bc BotController) LogMessageRaw(UserID int64, Msg string, Time time.Time) {
|
||||
msg := Message{
|
||||
UserID: UserID,
|
||||
Msg: Msg,
|
||||
Datetime: &Time,
|
||||
}
|
||||
bc.db.Create(&msg)
|
||||
}
|
||||
|
||||
@ -41,11 +41,13 @@ func ProcessUpdate(bc BotController, update tgbotapi.Update) {
|
||||
func handleMessage(bc BotController, update tgbotapi.Update) {
|
||||
var UserID = update.Message.From.ID
|
||||
user := bc.GetUser(UserID)
|
||||
bc.LogMessage(update)
|
||||
|
||||
bc.db.Model(&user).Update("MsgCounter", user.MsgCounter+1)
|
||||
log.Printf("User[%d] messages: %d", user.ID, user.MsgCounter)
|
||||
log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
|
||||
log.Printf("[Entities] %s", update.Message.Entities)
|
||||
log.Printf("[COMMAND] %s", update.Message.Command())
|
||||
|
||||
possibleCommand := strings.Split(update.Message.Text, " ")[0]
|
||||
args := strings.Split(update.Message.Text, " ")[1:]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user