Feat: add example config

This commit is contained in:
Grail Finder
2025-05-22 07:23:18 +03:00
parent ad8f1aaee2
commit 6b750cd34b
8 changed files with 66 additions and 52 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
.aider* .aider*
golias golias
store.json store.json
config.toml

44
.golangci.yml Normal file
View File

@ -0,0 +1,44 @@
version: "2"
run:
concurrency: 2
tests: false
linters:
default: none
enable:
- bodyclose
- errcheck
- fatcontext
- govet
- ineffassign
- noctx
- perfsprint
- prealloc
- staticcheck
- unused
settings:
funlen:
lines: 80
statements: 50
lll:
line-length: 80
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
issues:
max-issues-per-linter: 0
max-same-issues: 0
formatters:
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$

11
config.example.toml Normal file
View File

@ -0,0 +1,11 @@
BASE_URL = "https://localhost:3000"
SESSION_LIFETIME_SECONDS = 30000
COOKIE_SECRET = "test"
[SERVICE]
HOST = "localhost"
PORT = "3000"
[LLM]
TOKEN = ""
URL = "https://api.deepseek.com/beta"

View File

@ -10,7 +10,6 @@ type Config struct {
ServerConfig ServerConfig `toml:"SERVICE"` ServerConfig ServerConfig `toml:"SERVICE"`
BaseURL string `toml:"BASE_URL"` BaseURL string `toml:"BASE_URL"`
SessionLifetime int `toml:"SESSION_LIFETIME_SECONDS"` SessionLifetime int `toml:"SESSION_LIFETIME_SECONDS"`
DBURI string `toml:"DBURI"`
CookieSecret string `toml:"COOKIE_SECRET"` CookieSecret string `toml:"COOKIE_SECRET"`
LLMConfig LLMConfig `toml:"LLM"` LLMConfig LLMConfig `toml:"LLM"`
} }

View File

@ -56,10 +56,6 @@ func removeRoom(roomID string) {
} }
// context // context
func getRoomIDFromCtx(ctx context.Context) string {
id, _ := ctx.Value(models.CtxRoomIDKey).(string)
return id
}
func getStateByCtx(ctx context.Context) (*models.UserState, error) { func getStateByCtx(ctx context.Context) (*models.UserState, error) {
username, ok := ctx.Value(models.CtxUsernameKey).(string) username, ok := ctx.Value(models.CtxUsernameKey).(string)
@ -74,15 +70,6 @@ func getStateByCtx(ctx context.Context) (*models.UserState, error) {
return us, nil return us, nil
} }
func saveStateByCtx(ctx context.Context, state *models.UserState) error {
username, ok := ctx.Value(models.CtxUsernameKey).(string)
if !ok {
log.Debug("no username in ctx")
return errors.New("no username in ctx")
}
return saveState(username, state)
}
func saveFullInfo(fi *models.FullInfo) error { func saveFullInfo(fi *models.FullInfo) error {
// INFO: unfortunately working no transactions; so case are possible where first object is updated but the second is not // INFO: unfortunately working no transactions; so case are possible where first object is updated but the second is not
if err := saveState(fi.State.Username, fi.State); err != nil { if err := saveState(fi.State.Username, fi.State); err != nil {

View File

@ -1,12 +1,10 @@
package handlers package handlers
import ( import (
"context"
"crypto/hmac" "crypto/hmac"
"crypto/sha256" "crypto/sha256"
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"golias/models" "golias/models"
"golias/utils" "golias/utils"
@ -178,11 +176,12 @@ func cacheSetSession(key string, session *models.Session) error {
return nil return nil
} }
func updateRoomInSession(ctx context.Context, roomID string) (context.Context, error) { // unused
s, ok := ctx.Value(models.CtxSessionKey).(*models.Session) // func updateRoomInSession(ctx context.Context, roomID string) (context.Context, error) {
if !ok { // s, ok := ctx.Value(models.CtxSessionKey).(*models.Session)
return context.TODO(), errors.New("failed to extract session from ctx") // if !ok {
} // return context.TODO(), errors.New("failed to extract session from ctx")
s.CurrentRoom = roomID // }
return context.WithValue(ctx, "session", s), nil // s.CurrentRoom = roomID
} // return context.WithValue(ctx, "session", s), nil
// }

View File

@ -29,34 +29,6 @@ func init() {
// go Notifier.Listen() // go Notifier.Listen()
} }
var roundWords = map[string]string{
"hamster": "blue",
"child": "red",
"wheel": "white",
"condition": "black",
"test": "white",
"ball": "blue",
"violin": "red",
"rat": "white",
"perplexity": "blue",
"notion": "red",
"guitar": "blue",
"ocean": "blue",
"moon": "blue",
"coffee": "blue",
"mountain": "blue",
"book": "blue",
"camera": "blue",
"apple": "red",
"fire": "red",
"rose": "red",
"sun": "red",
"cherry": "red",
"heart": "red",
"tomato": "red",
"cloud": "white",
}
func HandlePing(w http.ResponseWriter, r *http.Request) { func HandlePing(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("pong")) w.Write([]byte("pong"))
} }

View File

@ -236,6 +236,7 @@ func (rr *RoomReq) CreateRoom(creator string) *Room {
CreatedAt: time.Now(), CreatedAt: time.Now(),
PlayerList: []string{creator}, PlayerList: []string{creator},
CreatorName: creator, CreatorName: creator,
BotMap: make(map[string]BotPlayer),
} }
} }