6 "github.com/Kovensky/go-anidb/misc"
14 func (v FileVersion) String() string {
18 return fmt.Sprintf("v%d", int(v))
21 type FileSource string
23 type AudioStream struct {
29 type VideoInfo struct {
32 Resolution image.Rectangle
44 EpisodeNumber misc.EpisodeList
52 Uncensored bool // Meaning unclear, may not be simply !Censored
53 Censored bool // Meaning unclear, may not be simply !Uncensored
63 AudioStreams []AudioStream
64 SubtitleLanguages []Language
70 // Map of related EIDs to percentages (range 0.0-1.0).
71 // The percentage indicates how much of the EID is covered by this file.
72 RelatedEpisodes RelatedEpisodes
77 func (f *File) Anime() *Anime {
81 func (f *File) Episode() *Episode {
82 return f.EID.Episode()
85 func (f *File) Group() *Group {
89 func (f *File) MyList() {
93 type RelatedEpisodes map[EID]float32
95 func (er RelatedEpisodes) MarshalJSON() ([]byte, error) {
96 generic := make(map[string]float32, len(er))
97 for k, v := range er {
98 generic[strconv.Itoa(int(k))] = v
100 return json.Marshal(generic)
103 func (er RelatedEpisodes) UnmarshalJSON(b []byte) error {
104 var generic map[string]float32
105 if err := json.Unmarshal(b, &generic); err != nil {
108 for k, v := range generic {
109 ik, err := strconv.ParseInt(k, 10, 32)
120 type LIDMap map[UID]LID
122 func (m LIDMap) MarshalJSON() ([]byte, error) {
123 generic := make(map[string]int, len(m))
124 for k, v := range m {
125 generic[strconv.Itoa(int(k))] = int(v)
127 return json.Marshal(generic)
130 func (m LIDMap) UnmarshalJSON(b []byte) error {
131 var generic map[string]int
132 if err := json.Unmarshal(b, &generic); err != nil {
135 for k, v := range generic {
136 ik, err := strconv.ParseInt(k, 10, 32)