updating plex json api parts

This commit is contained in:
2023-09-26 15:46:00 -04:00
parent 3c9149f7c0
commit 147ef10c01
2 changed files with 82 additions and 18 deletions

View File

@@ -9,12 +9,22 @@ import (
"net/http"
)
type CurrentlyPlayingDetails struct {
CurrentPlayingTitle string `json:"currentPlayingTitle"`
IpAddress string `json:"ipAddress"`
Platform string `json:"platform"`
Product string `json:"product"`
Title string `json:"title"`
State string `json:"state"`
}
type plexStats struct {
currentSessions float64
numMovies float64
numTV float64
numTranscodes float64
numAllSessions float64
CurrentSessions float64 `json:"currentSessions"`
NumMovies float64 `json:"numMovies"`
NumTV float64 `json:"numTV"`
NumTranscodes float64 `json:"numTranscodes"`
NumAllSessions float64 `json:"numAllSessions"`
CurrentlyPlayingDetails CurrentlyPlayingDetails `json:"currentlyPlayingDetails"`
}
type PlexClient struct {
@@ -73,9 +83,9 @@ func (pc *PlexClient) getActiveSessions() *ActiveSessions {
return &currentActiveSessions
}
func (pc *PlexClient) getNumMovies() *ActiveSessions {
func (pc *PlexClient) getNumMovies() *RawPlexModel {
result := pc.sendRequest("/library/sections/3/all", nil) //Hard code library ID for now TODO: Grab from library/sections call
libraryAll := ActiveSessions{}
libraryAll := RawPlexModel{}
err := json.Unmarshal(result, &libraryAll)
if err != nil {
fmt.Println("Error unmarshalling num movies: ", err)
@@ -123,10 +133,19 @@ func (pc *PlexClient) gatherAllStats() *plexStats {
transcodeDetails := pc.getNumTranscodes()
allSessionsData := pc.getServerHistory()
allStats.currentSessions = float64(sessionsData.MediaContainer.Size)
allStats.numMovies = float64(libraryDetails.MediaContainer.Size)
allStats.numTV = float64(tvshowDetails.MediaContainer.Size)
allStats.numTranscodes = float64(transcodeDetails.MediaContainer.Size)
allStats.numAllSessions = float64(allSessionsData.MediaContainer.Size)
allStats.CurrentSessions = float64(sessionsData.MediaContainer.Size)
allStats.NumMovies = float64(libraryDetails.MediaContainer.Size)
allStats.NumTV = float64(tvshowDetails.MediaContainer.Size)
allStats.NumTranscodes = float64(transcodeDetails.MediaContainer.Size)
allStats.NumAllSessions = float64(allSessionsData.MediaContainer.Size)
if len(sessionsData.MediaContainer.Metadata) > 0 {
allStats.CurrentlyPlayingDetails.CurrentPlayingTitle = sessionsData.MediaContainer.Metadata[0].Title
allStats.CurrentlyPlayingDetails.IpAddress = sessionsData.MediaContainer.Metadata[0].Player.Address
allStats.CurrentlyPlayingDetails.Platform = sessionsData.MediaContainer.Metadata[0].Player.Platform
allStats.CurrentlyPlayingDetails.Product = sessionsData.MediaContainer.Metadata[0].Player.Product
allStats.CurrentlyPlayingDetails.State = sessionsData.MediaContainer.Metadata[0].Player.State
allStats.CurrentlyPlayingDetails.Title = sessionsData.MediaContainer.Metadata[0].Player.Title
}
return &allStats
}