You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
package core |
|
|
|
import ( |
|
"time" |
|
|
|
"github.com/gabek/owncast/config" |
|
"github.com/gabek/owncast/core/ffmpeg" |
|
"github.com/gabek/owncast/models" |
|
) |
|
|
|
//GetStatus gets the status of the system |
|
func GetStatus() models.Status { |
|
if _stats == nil { |
|
return models.Status{} |
|
} |
|
|
|
return models.Status{ |
|
Online: IsStreamConnected(), |
|
ViewerCount: len(_stats.Clients), |
|
OverallMaxViewerCount: _stats.OverallMaxViewerCount, |
|
SessionMaxViewerCount: _stats.SessionMaxViewerCount, |
|
LastDisconnectTime: _stats.LastDisconnectTime, |
|
LastConnectTime: _stats.LastConnectTime, |
|
} |
|
} |
|
|
|
//SetStreamAsConnected sets the stream as connected |
|
func SetStreamAsConnected() { |
|
_stats.StreamConnected = true |
|
_stats.LastConnectTime = time.Now() |
|
|
|
timeSinceDisconnect := time.Since(_stats.LastDisconnectTime).Minutes() |
|
if timeSinceDisconnect > 15 { |
|
_stats.SessionMaxViewerCount = 0 |
|
} |
|
|
|
chunkPath := config.Config.PublicHLSPath |
|
if usingExternalStorage { |
|
chunkPath = config.Config.PrivateHLSPath |
|
} |
|
|
|
ffmpeg.StartThumbnailGenerator(chunkPath) |
|
} |
|
|
|
//SetStreamAsDisconnected sets the stream as disconnected |
|
func SetStreamAsDisconnected() { |
|
_stats.StreamConnected = false |
|
_stats.LastDisconnectTime = time.Now() |
|
|
|
ffmpeg.ShowStreamOfflineState() |
|
}
|
|
|