mirror of
https://github.com/profullstack/agentbbs.git
synced 2026-08-13 14:27:27 +00:00
Fix unused and ineffectual variables (#32)
This commit is contained in:
parent
9c2886c9b8
commit
beba7dc388
4 changed files with 51 additions and 5 deletions
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
37
plugins/hello/hello.go
Normal 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.")
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue