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:
parent
24f843f230
commit
764a084f83
3 changed files with 63 additions and 10 deletions
14
app.go
14
app.go
|
@ -109,7 +109,7 @@ func (a *App) startup(ctx context.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set meta keys
|
// Set meta keys
|
||||||
_ = a.db.PutKey("strimertul/version", appVersion)
|
_ = a.db.PutKey(docs.VersionKey, appVersion)
|
||||||
|
|
||||||
a.ready.Set(true)
|
a.ready.Set(true)
|
||||||
runtime.EventsEmit(ctx, "ready", true)
|
runtime.EventsEmit(ctx, "ready", true)
|
||||||
|
@ -176,20 +176,14 @@ func (a *App) initializeComponents() error {
|
||||||
return nil
|
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) {
|
func (a *App) listenForLogs() (error, database.CancelFunc) {
|
||||||
return a.db.SubscribeKey("strimertul/@log", func(newValue string) {
|
return a.db.SubscribeKey(docs.LogRPCKey, func(newValue string) {
|
||||||
var entry ExternalLog
|
var entry docs.ExternalLog
|
||||||
if err := json.Unmarshal([]byte(newValue), &entry); err != nil {
|
if err := json.Unmarshal([]byte(newValue), &entry); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
level, err := zapcore.ParseLevel(entry.Level)
|
level, err := zapcore.ParseLevel(string(entry.Level))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
level = zapcore.InfoLevel
|
level = zapcore.InfoLevel
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,8 +26,10 @@ func addKeys(keyMap interfaces.KeyMap) {
|
||||||
func init() {
|
func init() {
|
||||||
// Put all enums here
|
// Put all enums here
|
||||||
utils.MergeMap(Enums, twitch.Enums)
|
utils.MergeMap(Enums, twitch.Enums)
|
||||||
|
utils.MergeMap(Enums, enums)
|
||||||
|
|
||||||
// Put all keys here
|
// Put all keys here
|
||||||
|
addKeys(strimertulKeys)
|
||||||
addKeys(twitch.Keys)
|
addKeys(twitch.Keys)
|
||||||
addKeys(loyalty.Keys)
|
addKeys(loyalty.Keys)
|
||||||
addKeys(webserver.Keys)
|
addKeys(webserver.Keys)
|
||||||
|
|
57
docs/strimertul.go
Normal file
57
docs/strimertul.go
Normal 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},
|
||||||
|
},
|
||||||
|
}
|
Loading…
Reference in a new issue