]> git.lizzy.rs Git - go-anidb.git/blobdiff - anime.go
misc: Make the iterator part of EpisodeContainer interface
[go-anidb.git] / anime.go
index 5e5c4b7c997f6c2bb8623bdf1a6c78917f7b3441..393f94eefe03a4bf5666400a2e7e174276e54cbe 100644 (file)
--- a/anime.go
+++ b/anime.go
@@ -1,6 +1,7 @@
 package anidb
 
 import (
+       "fmt"
        "github.com/Kovensky/go-anidb/misc"
        "strconv"
        "time"
@@ -49,9 +50,9 @@ type Anime struct {
        AID AID  // The Anime ID.
        R18 bool // Whether this anime is considered porn.
 
-       Type          AnimeType    // Production/distribution type.
-       TotalEpisodes int          // Total number of regular episodes.
-       EpisodeCount  EpisodeCount // Known numbers of the various types of episodes.
+       Type          AnimeType         // Production/distribution type.
+       TotalEpisodes int               // Total number of regular episodes.
+       EpisodeCount  misc.EpisodeCount // Known numbers of the various types of episodes.
 
        StartDate time.Time // Date of first episode release, if available.
        EndDate   time.Time // Date of last episode release, if available.
@@ -80,15 +81,6 @@ type Anime struct {
        Cached     time.Time // When the data was retrieved from the server.
 }
 
-type EpisodeCount struct {
-       RegularCount int
-       SpecialCount int
-       CreditsCount int
-       OtherCount   int
-       TrailerCount int
-       ParodyCount  int
-}
-
 // Convenience method that runs AnimeByID on the result of
 // SearchAnime.
 func (adb *AniDB) AnimeByName(name string) <-chan *Anime {
@@ -127,7 +119,7 @@ func (a *Anime) Episode(ep *misc.Episode) *Episode {
        case 1:
                return list[0]
        default:
-               panic("Single episode search returned more than one result")
+               panic(fmt.Sprintf("Single episode search returned more than one result (wanted %v, got %v)", ep, list))
        }
 }