livestream/api.go
2023-06-13 00:07:14 +03:00

52 lines
936 B
Go

package main
import (
"os"
"path"
"github.com/olahol/melody"
)
func (s *State) ViewersAmount() (viewers int, err error) {
var sessions []*melody.Session
if sessions, err = s.Websocket.Sessions(); err == nil {
viewers = len(sessions)
}
return
}
func (s *State) NowPlaying() string {
if s.CurrentFile == "" {
return "Nothing"
} else {
return s.CurrentFile
}
}
// TODO: make it possible to specific timestamp
func (s *State) PlayVideo(filename string, seconds int) (playme string, err error) {
if filename == "" {
playme, err = s.getRandomMediaFile()
if err != nil {
return
}
} else {
playme = filename
}
err = s.playFile(playme)
return
}
// returns if media can be watched
func (s *State) IsLivestreamReady() (bool, error) {
if _, err := os.Stat(path.Join(s.OutDir, OUTFILE)); os.IsNotExist(err) {
return false, nil
} else if err != nil {
return false, err
} else {
return true, nil
}
}