53 lines
936 B
Go
53 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
|
||
|
}
|
||
|
}
|