golift / starr

Starr Library: Fully functional go package to interact with Lidarr, Prowlarr, Radarr, Readarr, and Sonarr APIs.
https://golift.io/discord
MIT License
69 stars 18 forks source link

Season statistics missing #148

Closed woiza closed 3 months ago

woiza commented 6 months ago

Hi,

I think season statistics are missing/broken (Sonarr 4.0.2.1183):

for _, season := range command.series.Seasons {
    fmt.Printf("Season Number: %+v\n", season.SeasonNumber)
    fmt.Printf("Season monitored: %+v\n", season.Monitored)
    fmt.Printf("Season statistics: %+v\n", season.Statistics)
}
Season Number: 5
Season monitored: true
Season statistics: <nil>
Season Number: 4
Season monitored: false
Season statistics: <nil>
Season Number: 3
Season monitored: false
Season statistics: <nil>
Season Number: 2
Season monitored: false
Season statistics: <nil>
Season Number: 1
Season monitored: false
Season statistics: <nil>
Season Number: 0
Season monitored: false
Season statistics: <nil>
davidnewhall commented 6 months ago

Broken in Sonarr or broken in this library?

woiza commented 6 months ago

Here is an example (I used curl):

"seasons": [
  {
    "seasonNumber": 0,
    "monitored": true,
    "statistics": {
      "previousAiring": "2023-12-21T03:00:00Z",
      "episodeFileCount": 0,
      "episodeCount": 35,
      "totalEpisodeCount": 37,
      "sizeOnDisk": 0,
      "releaseGroups": [],
      "percentOfEpisodes": 0
    }
  },
  {
    "seasonNumber": 1,
    "monitored": false,
    "statistics": {
      "episodeFileCount": 0,
      "episodeCount": 0,
      "totalEpisodeCount": 13,
      "sizeOnDisk": 0,
      "releaseGroups": [],
      "percentOfEpisodes": 0
    }
  },
davidnewhall commented 3 months ago

This is my code:

package main

import (
    "fmt"
    "net/http"

    "golift.io/starr"
    "golift.io/starr/sonarr"
)

func main() {
    c := &starr.Config{
        APIKey: "xxx",
        URL:    "http://192.168.3.2:8989/sonarr",
        Client: &http.Client{},
    }

    s := sonarr.New(c)

    all, err := s.GetSeries(0)
    if err != nil {
        panic(err)
    }

    for idx, series := range all {
        if idx > 1 {
            return
        }

        fmt.Printf("%s %v\n", series.Title, series.Seasons[0].Statistics)

        for _, season := range series.Seasons {
            fmt.Printf("Season Number: %+v\n", season.SeasonNumber)
            fmt.Printf("Season monitored: %+v\n", season.Monitored)
            fmt.Printf("Season statistics: %+v\n", season.Statistics)
        }
    }
}

This is the output:

[david@dns-mm2]21:40:54|/Volumes/Storage/david/go/src/golift.io/starr/test$ go run .
Dragon Ball Z &{0 0 0 34 0 0 0001-01-01 00:00:00 +0000 UTC}
Season Number: 0
Season monitored: false
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:34 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 1
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:39 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 2
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:35 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 3
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:33 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 4
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:32 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 5
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:26 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 6
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:29 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 7
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:25 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 8
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:34 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 9
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:38 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Grey's Anatomy &{0 0 0 9 0 0 0001-01-01 00:00:00 +0000 UTC}
Season Number: 0
Season monitored: false
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:9 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 1
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:9 EpisodeCount:9 TotalEpisodeCount:9 SizeOnDisk:27315645942 PercentOfEpisodes:100 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 2
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:27 EpisodeCount:27 TotalEpisodeCount:27 SizeOnDisk:73645158354 PercentOfEpisodes:100 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 3
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:25 EpisodeCount:25 TotalEpisodeCount:25 SizeOnDisk:67297273984 PercentOfEpisodes:100 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 4
Season monitored: true
Season statistics: &{SeasonCount:0 EpisodeFileCount:17 EpisodeCount:17 TotalEpisodeCount:17 SizeOnDisk:48219939888 PercentOfEpisodes:100 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 5

How do I reproduce your problem?

woiza commented 3 months ago

Looks like it was broken in Sonarr. I just tried it again with Sonarr 4.0.5.1710:

Season Number: 0
Season monitored: false
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:33 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
Season Number: 1
Season monitored: false
Season statistics: &{SeasonCount:0 EpisodeFileCount:0 EpisodeCount:0 TotalEpisodeCount:9 SizeOnDisk:0 PercentOfEpisodes:0 PreviousAiring:0001-01-01 00:00:00 +0000 UTC}
davidnewhall commented 3 months ago

Sweet, thanks for confirming!