owncast-webhook/internal/store/message.go

43 lines
711 B
Go

package store
type MessageOrigin int
var messageStore *MessageStore
const (
MessageOriginOwncast MessageOrigin = iota
MessageOriginTwitch
MessageOriginTest
)
type MessageStore struct {
messages []MessageInterface
}
func (s *MessageStore) Add(msg MessageInterface) {
s.messages = append(s.messages, msg)
}
func (s *MessageStore) All() []MessageInterface {
return s.messages
}
func (s *MessageStore) Clear() {
s.messages = []MessageInterface{}
}
func GetMessageStore() *MessageStore {
if messageStore == nil {
messageStore = new(MessageStore)
}
return messageStore
}
type MessageInterface interface {
ID() string
Visible() bool
Origin() MessageOrigin
Author() string
Content() string
}