status.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package core
  2. import (
  3. "github.com/owncast/owncast/config"
  4. "github.com/owncast/owncast/core/data"
  5. "github.com/owncast/owncast/models"
  6. )
  7. // GetStatus gets the status of the system.
  8. func GetStatus() models.Status {
  9. if _stats == nil {
  10. return models.Status{}
  11. }
  12. viewerCount := 0
  13. if IsStreamConnected() {
  14. viewerCount = len(_stats.Viewers)
  15. }
  16. return models.Status{
  17. Online: IsStreamConnected(),
  18. ViewerCount: viewerCount,
  19. OverallMaxViewerCount: _stats.OverallMaxViewerCount,
  20. SessionMaxViewerCount: _stats.SessionMaxViewerCount,
  21. LastDisconnectTime: _stats.LastDisconnectTime,
  22. LastConnectTime: _stats.LastConnectTime,
  23. VersionNumber: config.VersionNumber,
  24. StreamTitle: data.GetStreamTitle(),
  25. }
  26. }
  27. // GetCurrentBroadcast will return the currently active broadcast.
  28. func GetCurrentBroadcast() *models.CurrentBroadcast {
  29. return _currentBroadcast
  30. }
  31. // setBroadcaster will store the current inbound broadcasting details.
  32. func setBroadcaster(broadcaster models.Broadcaster) {
  33. _broadcaster = &broadcaster
  34. }
  35. // GetBroadcaster will return the details of the currently active broadcaster.
  36. func GetBroadcaster() *models.Broadcaster {
  37. return _broadcaster
  38. }