add twitch API stuff, add follow/sub/cheer labels

This commit is contained in:
ari melody 2026-07-24 03:54:29 +01:00
parent 8a7210ad56
commit 626540e728
Signed by: ari
GPG key ID: 60B5F0386E3DDB7E
17 changed files with 1143 additions and 3 deletions

52
twitch/api/api.go Normal file
View file

@ -0,0 +1,52 @@
package api
type (
EventSubMetadata struct {
MessageID string `json:"message_id"`
MessageType string `json:"message_type"`
MessageTimestamp string `json:"message_timestamp"`
}
EventSubSession struct {
ID string `json:"id"`
Status string `json:"status"`
KeepaliveTimeoutSeconds int `json:"keepalive_timeout_seconds"`
ReconnectURL string `json:"reconnect_url"`
ConnectedAt string `json:"connected_at"`
}
EventSubSubscriptionTransport struct {
Method string `json:"method"`
SessionID string `json:"session_id"`
}
EventSubSubscription struct {
ID string `json:"id"`
Status string `json:"status"`
Type string `json:"type"`
Version string `json:"version"`
Cost int `json:"cost"`
Condition any `json:"condition"`
Transport EventSubSubscriptionTransport `json:"transport"`
CreatedAt string `json:"connected_at"`
}
EventSubPayload struct {
Session *EventSubSession `json:"session"`
Subscription *EventSubSubscription `json:"subscription"`
Event any `json:"event"`
}
EventSubMessage struct {
Metadata EventSubMetadata `json:"metadata"`
Payload EventSubPayload `json:"payload"`
}
)
type MessageType string
const (
SESSION_WELCOME MessageType = "session_welcome"
SESSION_KEEPALIVE MessageType = "session_keepalive"
NOTIFICATION MessageType = "notification"
SESSION_RECONNECT MessageType = "session_reconnect"
SESSION_RECOVATION MessageType = "session_revocation"
)