feat: daemon add ctx and done signal, judge fix problem with double ban ip, db add new methods
All checks were successful
CI.yml / build (push) Successful in 1m58s

This commit is contained in:
d3m0k1d
2026-01-15 22:32:03 +03:00
parent 1603fbee35
commit 680973df3d
5 changed files with 53 additions and 6 deletions

View File

@@ -3,6 +3,9 @@ package storage
import (
"database/sql"
"fmt"
"time"
"github.com/d3m0k1d/BanForge/internal/logger"
_ "github.com/mattn/go-sqlite3"
)
@@ -62,3 +65,24 @@ func (d *DB) MarkAsViewed(id int) error {
}
return nil
}
func (d *DB) IsBanned(ip string) (bool, error) {
var bannedIP string
err := d.db.QueryRow("SELECT ip FROM bans WHERE ip = ? ", ip).Scan(&bannedIP)
if err == sql.ErrNoRows {
return false, nil
}
if err != nil {
return false, fmt.Errorf("failed to check ban status: %w", err)
}
return true, nil
}
func (d *DB) AddBan(ip string) error {
_, err := d.db.Exec("INSERT INTO bans (ip, reason, banned_at) VALUES (?, ?, ?)", ip, "1", time.Now().Format(time.RFC3339))
if err != nil {
d.logger.Error("Failed to add ban", "error", err)
return err
}
return nil
}