Fix unused and ineffectual variables (#32)

This commit is contained in:
Руслан Латыпов 2026-06-16 14:21:39 +04:00 committed by GitHub
parent 9c2886c9b8
commit beba7dc388
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 51 additions and 5 deletions

View file

@ -76,11 +76,12 @@ func (r *liveReg) List() []admin.Live {
// Kill closes a live session by id. Returns false if it is already gone. // Kill closes a live session by id. Returns false if it is already gone.
func (r *liveReg) Kill(id int64) bool { func (r *liveReg) Kill(id int64) bool {
r.mu.Lock() r.mu.Lock()
defer r.mu.Unlock()
e, ok := r.m[id] e, ok := r.m[id]
r.mu.Unlock()
if !ok { if !ok {
return false return false
} }
delete(r.m, id)
_ = e.s.Close() _ = e.s.Close()
return true return true
} }

View file

@ -73,6 +73,7 @@ import (
"github.com/profullstack/agentbbs/internal/store" "github.com/profullstack/agentbbs/internal/store"
"github.com/profullstack/agentbbs/internal/tor" "github.com/profullstack/agentbbs/internal/tor"
"github.com/profullstack/agentbbs/plugins/about" "github.com/profullstack/agentbbs/plugins/about"
"github.com/profullstack/agentbbs/plugins/hello"
"github.com/profullstack/agentbbs/plugins/agentgames" "github.com/profullstack/agentbbs/plugins/agentgames"
"github.com/profullstack/agentbbs/plugins/arcade" "github.com/profullstack/agentbbs/plugins/arcade"
"github.com/profullstack/agentbbs/plugins/members" "github.com/profullstack/agentbbs/plugins/members"
@ -175,7 +176,7 @@ func main() {
a.mm = games.NewMatchmaker(a.gamesReg, a.st, a.mm = games.NewMatchmaker(a.gamesReg, a.st,
time.Duration(envInt("AGENTBBS_GAME_MOVE_TIMEOUT", 15))*time.Second, time.Duration(envInt("AGENTBBS_GAME_MOVE_TIMEOUT", 15))*time.Second,
time.Duration(envInt("AGENTBBS_GAME_QUEUE_WAIT", 120))*time.Second) time.Duration(envInt("AGENTBBS_GAME_QUEUE_WAIT", 120))*time.Second)
a.registry = []plugin.Plugin{arcade.Plugin{}, agentgames.New(a.gamesReg), members.Plugin{}, qryptinviteplugin.Plugin{}, about.Plugin{}} a.registry = []plugin.Plugin{arcade.Plugin{}, agentgames.New(a.gamesReg), members.Plugin{}, qryptinviteplugin.Plugin{}, about.Plugin{}, hello.Plugin{}}
// Custom domains: maintain the symlink farm Caddy serves and answer its // Custom domains: maintain the symlink farm Caddy serves and answer its
// on-demand-TLS "ask" query so certs are only issued for mapped domains. // on-demand-TLS "ask" query so certs are only issued for mapped domains.

View file

@ -5,6 +5,7 @@ package store
import ( import (
"database/sql" "database/sql"
"errors" "errors"
"fmt"
"strings" "strings"
"time" "time"
@ -42,7 +43,9 @@ func scanUser(sc interface{ Scan(...any) error }) (User, error) {
u.EmailVerified = verified != 0 u.EmailVerified = verified != 0
u.Premium = premium != 0 u.Premium = premium != 0
u.Banned = banned != 0 u.Banned = banned != 0
u.CreatedAt, _ = time.Parse(time.RFC3339, created) if t, err := time.Parse(time.RFC3339, created); err == nil {
u.CreatedAt = t
}
return u, nil return u, nil
} }
@ -516,8 +519,12 @@ func (s *sqliteStore) EnsureUser(name, kind, fp string) (User, error) {
if err != nil { if err != nil {
return User{}, err return User{}, err
} }
id, _ := res.LastInsertId() id, err := res.LastInsertId()
return User{ID: id, Name: name, Kind: kind, PubKeyFP: fp, CreatedAt: time.Now().UTC()}, nil if err != nil {
return User{}, fmt.Errorf("get user id after insert: %w", err)
}
return User{
ID: id, Name: name, Kind: kind, PubKeyFP: fp, CreatedAt: time.Now().UTC()}, nil
case err != nil: case err != nil:
return User{}, err return User{}, err
} }

37
plugins/hello/hello.go Normal file
View file

@ -0,0 +1,37 @@
package hello
import (
tea "github.com/charmbracelet/bubbletea"
"github.com/profullstack/agentbbs/internal/auth"
"github.com/profullstack/agentbbs/internal/plugin"
"github.com/profullstack/agentbbs/internal/ui"
)
type Plugin struct{}
func (Plugin) ID() string { return "hello" }
func (Plugin) Title() string { return "Hello World" }
func (Plugin) Description() string { return "A simple hello world plugin by Milla-Agent" }
func (Plugin) RequiresAuth() bool { return false }
func (Plugin) New(user auth.User, _ plugin.Context) tea.Model {
return model{}
}
type model struct{}
func (m model) Init() tea.Cmd { return nil }
func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
if k, ok := msg.(tea.KeyMsg); ok {
switch k.String() {
case "esc", "q", "enter", "ctrl+c", " ":
return m, plugin.Exit
}
}
return m, nil
}
func (m model) View() string {
return ui.Frame.Render("Hello from Milla-Agent!\nThis is a simple module submission.\n\nPress 'q' or 'esc' to exit.")
}