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
45 EpisodeNumber misc.EpisodeList
53 Uncensored bool // Meaning unclear, may not be simply !Censored
54 Censored bool // Meaning unclear, may not be simply !Uncensored
64 AudioStreams []AudioStream
65 SubtitleLanguages []Language
71 // Map of related EIDs to percentages (range 0.0-1.0).
72 // The percentage indicates how much of the EID is covered by this file.
73 RelatedEpisodes RelatedEpisodes
78 func (f *File) Anime() *Anime {
82 func (f *File) Episode() *Episode {
83 return f.EID.Episode()
86 func (f *File) Group() *Group {
90 func (f *File) MyList() {
94 type RelatedEpisodes map[EID]float32
96 func (er RelatedEpisodes) MarshalJSON() ([]byte, error) {
97 generic := make(map[string]float32, len(er))
98 for k, v := range er {
99 generic[strconv.Itoa(int(k))] = v
101 return json.Marshal(generic)
104 func (er RelatedEpisodes) UnmarshalJSON(b []byte) error {
105 var generic map[string]float32
106 if err := json.Unmarshal(b, &generic); err != nil {
109 for k, v := range generic {
110 ik, err := strconv.ParseInt(k, 10, 32)
121 type LIDMap map[UID]LID
123 func (m LIDMap) MarshalJSON() ([]byte, error) {
124 generic := make(map[string]int, len(m))
125 for k, v := range m {
126 generic[strconv.Itoa(int(k))] = int(v)
128 return json.Marshal(generic)
131 func (m LIDMap) UnmarshalJSON(b []byte) error {
132 var generic map[string]int
133 if err := json.Unmarshal(b, &generic); err != nil {
136 for k, v := range generic {
137 ik, err := strconv.ParseInt(k, 10, 32)