0

Replace admin broadcaster with status api

This commit is contained in:
Gabe Kangas 2020-11-05 18:29:16 -08:00
parent 133745efd7
commit 856961ad2d
6 changed files with 55 additions and 58 deletions

View File

@ -26,3 +26,5 @@ videoSettings:
# Change this value and keep it secure. Treat it like a password to your live stream.
streamingKey: abc123
# Set to true if you don't want the service checking for future releases.
disableUpgradeChecks: false

View File

@ -14,17 +14,18 @@ var Config *config
var _default config
type config struct {
DatabaseFilePath string `yaml:"databaseFile"`
EnableDebugFeatures bool `yaml:"-"`
FFMpegPath string `yaml:"ffmpegPath"`
Files files `yaml:"files"`
InstanceDetails InstanceDetails `yaml:"instanceDetails"`
S3 S3 `yaml:"s3"`
VersionInfo string `yaml:"-"` // For storing the version/build number
VersionNumber string `yaml:"-"`
VideoSettings videoSettings `yaml:"videoSettings"`
WebServerPort int `yaml:"webServerPort"`
YP YP `yaml:"yp"`
DatabaseFilePath string `yaml:"databaseFile"`
EnableDebugFeatures bool `yaml:"-"`
FFMpegPath string `yaml:"ffmpegPath"`
Files files `yaml:"files"`
InstanceDetails InstanceDetails `yaml:"instanceDetails"`
S3 S3 `yaml:"s3"`
VersionInfo string `yaml:"-"` // For storing the version/build number
VersionNumber string `yaml:"-"`
VideoSettings videoSettings `yaml:"videoSettings"`
WebServerPort int `yaml:"webServerPort"`
DisableUpgradeChecks bool `yaml:"disableUpgradeChecks"`
YP YP `yaml:"yp"`
}
// InstanceDetails defines the user-visible information about this particular instance.

View File

@ -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"`
}

View 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"`
}

View File

@ -17,11 +17,3 @@ func GetStatus(w http.ResponseWriter, r *http.Request) {
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)
}

View File

@ -44,11 +44,8 @@ func Start() error {
// Authenticated admin requests
// status of the system
http.HandleFunc("/api/admin/status", middleware.RequireAdminAuth(controllers.GetAdminStatus))
// Current inbound broadcaster
http.HandleFunc("/api/admin/broadcaster", middleware.RequireAdminAuth(admin.GetInboundBroadasterDetails))
http.HandleFunc("/api/admin/status", middleware.RequireAdminAuth(admin.Status))
// Disconnect inbound stream
http.HandleFunc("/api/admin/disconnect", middleware.RequireAdminAuth(admin.DisconnectInboundConnection))