feat: add new cli command for output banning ip table
All checks were successful
CI.yml / build (push) Successful in 2m0s

This commit is contained in:
d3m0k1d
2026-01-16 02:41:37 +03:00
parent 914168f80f
commit 31184e009b
5 changed files with 82 additions and 0 deletions

View File

@@ -2,11 +2,13 @@ package storage
import (
"database/sql"
"os"
"fmt"
"time"
"github.com/d3m0k1d/BanForge/internal/logger"
"github.com/jedib0t/go-pretty/v6/table"
_ "github.com/mattn/go-sqlite3"
)
@@ -86,3 +88,31 @@ func (d *DB) AddBan(ip string) error {
}
return nil
}
func (d *DB) BanList() error {
var count int
t := table.NewWriter()
t.SetOutputMirror(os.Stdout)
t.SetStyle(table.StyleBold)
t.AppendHeader(table.Row{"№", "IP", "Banned At"})
rows, err := d.db.Query("SELECT ip, banned_at FROM bans")
if err != nil {
d.logger.Error("Failed to get ban list", "error", err)
return err
}
for rows.Next() {
count++
var ip string
var bannedAt string
err := rows.Scan(&ip, &bannedAt)
if err != nil {
d.logger.Error("Failed to get ban list", "error", err)
return err
}
t.AppendRow(table.Row{count, ip, bannedAt})
}
t.Render()
return nil
}