mirror of
https://git.sr.ht/~ashkeel/strimertul
synced 2024-09-30 02:40:33 +00:00
96 lines
3.1 KiB
Go
96 lines
3.1 KiB
Go
package doc
|
|
|
|
import (
|
|
"reflect"
|
|
|
|
"github.com/nicklaw5/helix/v2"
|
|
|
|
"git.sr.ht/~ashkeel/strimertul/docs/interfaces"
|
|
"git.sr.ht/~ashkeel/strimertul/twitch"
|
|
"git.sr.ht/~ashkeel/strimertul/twitch/alerts"
|
|
"git.sr.ht/~ashkeel/strimertul/twitch/chat"
|
|
"git.sr.ht/~ashkeel/strimertul/twitch/eventsub"
|
|
"git.sr.ht/~ashkeel/strimertul/twitch/timers"
|
|
)
|
|
|
|
// Documentation stuff, keep updated at all times
|
|
|
|
var Keys = interfaces.KeyMap{
|
|
twitch.ConfigKey: interfaces.KeyDef{
|
|
Description: "General configuration for the Twitch subsystem",
|
|
Type: reflect.TypeOf(twitch.Config{}),
|
|
},
|
|
twitch.StreamInfoKey: interfaces.KeyDef{
|
|
Description: "List of active twitch streams (1 element if live, 0 otherwise)",
|
|
Type: reflect.TypeOf([]helix.Stream{}),
|
|
},
|
|
twitch.AuthKey: interfaces.KeyDef{
|
|
Description: "User access token for the twitch subsystem",
|
|
Type: reflect.TypeOf(twitch.AuthResponse{}),
|
|
},
|
|
chat.ConfigKey: interfaces.KeyDef{
|
|
Description: "Configuration for chat-related features",
|
|
Type: reflect.TypeOf(chat.Config{}),
|
|
},
|
|
chat.EventKey: interfaces.KeyDef{
|
|
Description: "On chat message received",
|
|
Type: reflect.TypeOf(helix.EventSubChannelChatMessageEvent{}),
|
|
Tags: []interfaces.KeyTag{interfaces.TagEvent},
|
|
},
|
|
chat.HistoryKey: interfaces.KeyDef{
|
|
Description: "Last chat messages received",
|
|
Type: reflect.TypeOf([]helix.EventSubChannelChatMessageEvent{}),
|
|
Tags: []interfaces.KeyTag{interfaces.TagHistory},
|
|
},
|
|
chat.ActivityKey: interfaces.KeyDef{
|
|
Description: "Number of chat messages in the last minute",
|
|
Type: reflect.TypeOf(0),
|
|
},
|
|
chat.CustomCommandsKey: interfaces.KeyDef{
|
|
Description: "Chat custom commands",
|
|
Type: reflect.TypeOf(map[string]chat.CustomCommand{}),
|
|
},
|
|
chat.WriteMessageRPC: interfaces.KeyDef{
|
|
Description: "Send chat message with extra options (as reply, whisper, etc)",
|
|
Type: reflect.TypeOf(chat.WriteMessageRequest{}),
|
|
Tags: []interfaces.KeyTag{interfaces.TagRPC},
|
|
},
|
|
eventsub.EventKeyPrefix + "[event-name]": interfaces.KeyDef{
|
|
Description: "On Eventsub event [event-name] received",
|
|
Type: reflect.TypeOf(eventsub.NotificationMessagePayload{}),
|
|
Tags: []interfaces.KeyTag{interfaces.TagEvent},
|
|
},
|
|
eventsub.HistoryKeyPrefix + "[event-name]": interfaces.KeyDef{
|
|
Description: "Last eventsub notifications received for [event-name]",
|
|
Type: reflect.TypeOf([]eventsub.NotificationMessagePayload{}),
|
|
Tags: []interfaces.KeyTag{interfaces.TagHistory},
|
|
},
|
|
alerts.ConfigKey: interfaces.KeyDef{
|
|
Description: "Configuration of chat alerts",
|
|
Type: reflect.TypeOf(alerts.Config{}),
|
|
},
|
|
timers.ConfigKey: interfaces.KeyDef{
|
|
Description: "Configuration of chat timers",
|
|
Type: reflect.TypeOf(timers.Config{}),
|
|
},
|
|
}
|
|
|
|
var Enums = interfaces.EnumMap{
|
|
"AccessLevelType": interfaces.Enum{
|
|
Values: []any{
|
|
chat.ALTEveryone,
|
|
chat.ALTSubscribers,
|
|
chat.ALTVIP,
|
|
chat.ALTModerators,
|
|
chat.ALTStreamer,
|
|
},
|
|
},
|
|
"ResponseType": interfaces.Enum{
|
|
Values: []any{
|
|
chat.ResponseTypeChat,
|
|
chat.ResponseTypeReply,
|
|
chat.ResponseTypeWhisper,
|
|
chat.ResponseTypeAnnounce,
|
|
},
|
|
},
|
|
}
|