Replace admin broadcaster with status api
This commit is contained in:
parent
133745efd7
commit
856961ad2d
@ -26,3 +26,5 @@ videoSettings:
|
|||||||
# Change this value and keep it secure. Treat it like a password to your live stream.
|
# Change this value and keep it secure. Treat it like a password to your live stream.
|
||||||
streamingKey: abc123
|
streamingKey: abc123
|
||||||
|
|
||||||
|
# Set to true if you don't want the service checking for future releases.
|
||||||
|
disableUpgradeChecks: false
|
||||||
|
@ -24,6 +24,7 @@ type config struct {
|
|||||||
VersionNumber string `yaml:"-"`
|
VersionNumber string `yaml:"-"`
|
||||||
VideoSettings videoSettings `yaml:"videoSettings"`
|
VideoSettings videoSettings `yaml:"videoSettings"`
|
||||||
WebServerPort int `yaml:"webServerPort"`
|
WebServerPort int `yaml:"webServerPort"`
|
||||||
|
DisableUpgradeChecks bool `yaml:"disableUpgradeChecks"`
|
||||||
YP YP `yaml:"yp"`
|
YP YP `yaml:"yp"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
package admin
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"github.com/owncast/owncast/controllers"
|
|
||||||
"github.com/owncast/owncast/core"
|
|
||||||
"github.com/owncast/owncast/models"
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetInboundBroadasterDetails gets the details of the inbound broadcaster
|
|
||||||
func GetInboundBroadasterDetails(w http.ResponseWriter, r *http.Request) {
|
|
||||||
broadcaster := core.GetBroadcaster()
|
|
||||||
if broadcaster == nil {
|
|
||||||
controllers.WriteSimpleResponse(w, false, "no broadcaster connected")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
response := inboundBroadasterDetailsResponse{
|
|
||||||
models.BaseAPIResponse{
|
|
||||||
true,
|
|
||||||
"",
|
|
||||||
},
|
|
||||||
broadcaster,
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(response)
|
|
||||||
}
|
|
||||||
|
|
||||||
type inboundBroadasterDetailsResponse struct {
|
|
||||||
models.BaseAPIResponse
|
|
||||||
Broadcaster *models.Broadcaster `json:"broadcaster"`
|
|
||||||
}
|
|
40
controllers/admin/status.go
Normal file
40
controllers/admin/status.go
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
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"`
|
||||||
|
}
|
@ -17,11 +17,3 @@ func GetStatus(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
json.NewEncoder(w).Encode(status)
|
json.NewEncoder(w).Encode(status)
|
||||||
}
|
}
|
||||||
|
|
||||||
//GetStatus gets the status of the server
|
|
||||||
func GetAdminStatus(w http.ResponseWriter, r *http.Request) {
|
|
||||||
status := core.GetStatus()
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
|
|
||||||
json.NewEncoder(w).Encode(status)
|
|
||||||
}
|
|
||||||
|
@ -44,11 +44,8 @@ func Start() error {
|
|||||||
|
|
||||||
// Authenticated admin requests
|
// Authenticated admin requests
|
||||||
|
|
||||||
// status of the system
|
|
||||||
http.HandleFunc("/api/admin/status", middleware.RequireAdminAuth(controllers.GetAdminStatus))
|
|
||||||
|
|
||||||
// Current inbound broadcaster
|
// Current inbound broadcaster
|
||||||
http.HandleFunc("/api/admin/broadcaster", middleware.RequireAdminAuth(admin.GetInboundBroadasterDetails))
|
http.HandleFunc("/api/admin/status", middleware.RequireAdminAuth(admin.Status))
|
||||||
|
|
||||||
// Disconnect inbound stream
|
// Disconnect inbound stream
|
||||||
http.HandleFunc("/api/admin/disconnect", middleware.RequireAdminAuth(admin.DisconnectInboundConnection))
|
http.HandleFunc("/api/admin/disconnect", middleware.RequireAdminAuth(admin.DisconnectInboundConnection))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user