updating plex json api parts
This commit is contained in:
@@ -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 ¤tActiveSessions
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
Reference in New Issue
Block a user