41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
|
package admin
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"net/http"
|
||
|
|
||
|
"github.com/owncast/owncast/config"
|
||
|
"github.com/owncast/owncast/core"
|
||
|
"github.com/owncast/owncast/models"
|
||
|
)
|
||
|
|
||
|
// Status gets the details of the inbound broadcaster
|
||
|
func Status(w http.ResponseWriter, r *http.Request) {
|
||
|
broadcaster := core.GetBroadcaster()
|
||
|
status := core.GetStatus()
|
||
|
|
||
|
response := adminStatusResponse{
|
||
|
Broadcaster: broadcaster,
|
||
|
Online: status.Online,
|
||
|
ViewerCount: status.ViewerCount,
|
||
|
OverallPeakViewerCount: status.OverallMaxViewerCount,
|
||
|
SessionPeakViewerCount: status.SessionMaxViewerCount,
|
||
|
VersionNumber: status.VersionNumber,
|
||
|
DisableUpgradeChecks: config.Config.DisableUpgradeChecks,
|
||
|
}
|
||
|
|
||
|
w.Header().Set("Content-Type", "application/json")
|
||
|
json.NewEncoder(w).Encode(response)
|
||
|
}
|
||
|
|
||
|
type adminStatusResponse struct {
|
||
|
Broadcaster *models.Broadcaster `json:"broadcaster"`
|
||
|
Online bool `json:"online"`
|
||
|
ViewerCount int `json:"viewerCount"`
|
||
|
OverallPeakViewerCount int `json:"overallPeakViewerCount"`
|
||
|
SessionPeakViewerCount int `json:"sessionPeakViewerCount"`
|
||
|
|
||
|
VersionNumber string `json:"versionNumber"`
|
||
|
DisableUpgradeChecks bool `json:"disableUpgradeChecks"`
|
||
|
}
|