fix(db): using discord_id instead of db's id

This commit is contained in:
Anhgelus Morhtuuzh 2025-05-13 17:18:33 +02:00
parent 61c7bf4567
commit 067e149e72
Signed by: anhgelus
GPG key ID: CAD341EFA92DDDE5
2 changed files with 16 additions and 4 deletions

View file

@ -1,6 +1,7 @@
services: services:
bot: bot:
build: . build: .
restart: always
env_file: env_file:
- .env - .env
volumes: volumes:
@ -15,4 +16,10 @@ services:
env_file: env_file:
- .env - .env
volumes: volumes:
- ./data:/var/lib/postgresql/data - ./data:/var/lib/postgresql/data
adminer:
image: docker.io/adminer
ports:
- "8080:8080"
depends_on:
- postgres

View file

@ -27,7 +27,12 @@ func (c *cXP) GetXP() uint {
func (c *Copaing) AddXP(s *discordgo.Session, m *discordgo.Member, xp uint, fn func(uint, uint)) { func (c *Copaing) AddXP(s *discordgo.Session, m *discordgo.Member, xp uint, fn func(uint, uint)) {
old, err := c.GetXP() old, err := c.GetXP()
if err != nil {
utils.SendAlert("user/xp.go - Getting xp", err.Error(), "discord_id", c.DiscordID, "guild_id", c.GuildID)
return
}
pastLevel := exp.Level(old) pastLevel := exp.Level(old)
utils.SendDebug("Adding xp", "member", m.DisplayName(), "old xp", old, "xp to add", xp, "old level", pastLevel)
c.CopaingXPs = append(c.CopaingXPs, CopaingXP{CopaingID: c.ID, XP: xp, GuildID: c.GuildID}) c.CopaingXPs = append(c.CopaingXPs, CopaingXP{CopaingID: c.ID, XP: xp, GuildID: c.GuildID})
if err = c.Save(); err != nil { if err = c.Save(); err != nil {
utils.SendAlert( utils.SendAlert(
@ -59,13 +64,13 @@ func (c *Copaing) GetXPForDays(n uint) (uint, error) {
var y, d int var y, d int
var m time.Month var m time.Month
if gokord.Debug { if gokord.Debug {
y, m, d = time.Unix(time.Now().Unix()-int64(n*24), 0).Date() // reduce time for debug y, m, d = time.Unix(time.Now().Unix()-int64(24*60*60), 0).Date() // reduce time for debug
} else { } else {
y, m, d = time.Unix(time.Now().Unix()-int64(n*24*60*60), 0).Date() y, m, d = time.Unix(time.Now().Unix()-int64(n*24*60*60), 0).Date()
} }
rows, err := gokord.DB. rows, err := gokord.DB.
Model(&CopaingXP{}). Model(&CopaingXP{}).
Where(fmt.Sprintf("created_at >= '%d-%d-%d' and guild_id = ? and copaing_id = ?", y, m, d), c.GuildID, c.DiscordID). Where(fmt.Sprintf("created_at >= '%d-%d-%d' and guild_id = ? and copaing_id = ?", y, m, d), c.GuildID, c.ID).
Rows() Rows()
defer rows.Close() defer rows.Close()
if err != nil { if err != nil {
@ -75,7 +80,7 @@ func (c *Copaing) GetXPForDays(n uint) (uint, error) {
var cXP CopaingXP var cXP CopaingXP
err = gokord.DB.ScanRows(rows, &cXP) err = gokord.DB.ScanRows(rows, &cXP)
if err != nil { if err != nil {
utils.SendAlert("user/xp.go - Scanning rows", err.Error(), "copaing_id", c.DiscordID, "guild_id", c.GuildID) utils.SendAlert("user/xp.go - Scanning rows", err.Error(), "copaing_id", c.ID, "guild_id", c.GuildID)
continue continue
} }
xp += cXP.XP xp += cXP.XP