1
0
Fork 0
mirror of https://git.sr.ht/~ashkeel/strimertul synced 2024-09-18 01:50:50 +00:00

docs: add doc for strimertul meta keys

This commit is contained in:
Ash Keel 2023-11-05 13:34:33 +01:00
parent 24f843f230
commit 764a084f83
No known key found for this signature in database
GPG key ID: 53A9E9A6035DD109
3 changed files with 63 additions and 10 deletions

14
app.go
View file

@ -109,7 +109,7 @@ func (a *App) startup(ctx context.Context) {
}
// Set meta keys
_ = a.db.PutKey("strimertul/version", appVersion)
_ = a.db.PutKey(docs.VersionKey, appVersion)
a.ready.Set(true)
runtime.EventsEmit(ctx, "ready", true)
@ -176,20 +176,14 @@ func (a *App) initializeComponents() error {
return nil
}
type ExternalLog struct {
Level string `json:"level"`
Message string `json:"message"`
Data map[string]any `json:"data"`
}
func (a *App) listenForLogs() (error, database.CancelFunc) {
return a.db.SubscribeKey("strimertul/@log", func(newValue string) {
var entry ExternalLog
return a.db.SubscribeKey(docs.LogRPCKey, func(newValue string) {
var entry docs.ExternalLog
if err := json.Unmarshal([]byte(newValue), &entry); err != nil {
return
}
level, err := zapcore.ParseLevel(entry.Level)
level, err := zapcore.ParseLevel(string(entry.Level))
if err != nil {
level = zapcore.InfoLevel
}

View file

@ -26,8 +26,10 @@ func addKeys(keyMap interfaces.KeyMap) {
func init() {
// Put all enums here
utils.MergeMap(Enums, twitch.Enums)
utils.MergeMap(Enums, enums)
// Put all keys here
addKeys(strimertulKeys)
addKeys(twitch.Keys)
addKeys(loyalty.Keys)
addKeys(webserver.Keys)

57
docs/strimertul.go Normal file
View file

@ -0,0 +1,57 @@
package docs
import (
"reflect"
"github.com/strimertul/strimertul/docs/interfaces"
)
// Documentation stuff, keep updated at all times
const (
VersionKey = "strimertul/version"
LogRPCKey = "strimertul/@log"
)
type ExternalLog struct {
// Log level
Level ExternalLogLevel `json:"level"`
// Log message
Message string `json:"message"`
// Additional data as non-nested dictionary
Data map[string]any `json:"data"`
}
type ExternalLogLevel string
const (
ExternalLogLevelDebug ExternalLogLevel = "debug"
ExternalLogLevelInfo ExternalLogLevel = "info"
ExternalLogLevelWarn ExternalLogLevel = "warn"
ExternalLogLevelError ExternalLogLevel = "error"
)
var enums = interfaces.EnumMap{
"ExternalLogLevel": interfaces.Enum{
Values: []any{
ExternalLogLevelDebug,
ExternalLogLevelInfo,
ExternalLogLevelWarn,
ExternalLogLevelError,
},
},
}
var strimertulKeys = interfaces.KeyMap{
VersionKey: interfaces.KeyDef{
Description: "Strimertul version (semantic version, e.g. v3.4.0-alpha.1)",
Type: reflect.TypeOf(""),
},
LogRPCKey: interfaces.KeyDef{
Description: "Add a log entry",
Type: reflect.TypeOf(ExternalLog{}),
Tags: []interfaces.KeyTag{interfaces.TagRPC},
},
}