mirror of
				https://github.com/owncast/owncast.git
				synced 2025-11-04 05:17:27 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package controllers
 | 
						|
 | 
						|
import (
 | 
						|
	"encoding/json"
 | 
						|
	"net/http"
 | 
						|
 | 
						|
	"github.com/owncast/owncast/core"
 | 
						|
	"github.com/owncast/owncast/router/middleware"
 | 
						|
	"github.com/owncast/owncast/utils"
 | 
						|
)
 | 
						|
 | 
						|
// GetStatus gets the status of the server.
 | 
						|
func GetStatus(w http.ResponseWriter, r *http.Request) {
 | 
						|
	middleware.EnableCors(w)
 | 
						|
 | 
						|
	status := core.GetStatus()
 | 
						|
	response := webStatusResponse{
 | 
						|
		Online:             status.Online,
 | 
						|
		ViewerCount:        status.ViewerCount,
 | 
						|
		LastConnectTime:    status.LastConnectTime,
 | 
						|
		LastDisconnectTime: status.LastDisconnectTime,
 | 
						|
		VersionNumber:      status.VersionNumber,
 | 
						|
		StreamTitle:        status.StreamTitle,
 | 
						|
	}
 | 
						|
 | 
						|
	w.Header().Set("Content-Type", "application/json")
 | 
						|
	middleware.DisableCache(w)
 | 
						|
 | 
						|
	if err := json.NewEncoder(w).Encode(response); err != nil {
 | 
						|
		InternalErrorHandler(w, err)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
type webStatusResponse struct {
 | 
						|
	Online      bool `json:"online"`
 | 
						|
	ViewerCount int  `json:"viewerCount"`
 | 
						|
 | 
						|
	LastConnectTime    *utils.NullTime `json:"lastConnectTime"`
 | 
						|
	LastDisconnectTime *utils.NullTime `json:"lastDisconnectTime"`
 | 
						|
 | 
						|
	VersionNumber string `json:"versionNumber"`
 | 
						|
	StreamTitle   string `json:"streamTitle"`
 | 
						|
}
 |