6 "github.com/EliasFleckenstein03/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) UserMyList(user *User) *MyListEntry {
91 if f != nil && user != nil && f.LID[user.UID] > 0 {
92 return f.LID[user.UID].MyListEntry()
97 type RelatedEpisodes map[EID]float32
99 func (er RelatedEpisodes) MarshalJSON() ([]byte, error) {
100 generic := make(map[string]float32, len(er))
101 for k, v := range er {
102 generic[strconv.Itoa(int(k))] = v
104 return json.Marshal(generic)
107 func (er RelatedEpisodes) UnmarshalJSON(b []byte) error {
108 var generic map[string]float32
109 if err := json.Unmarshal(b, &generic); err != nil {
112 for k, v := range generic {
113 ik, err := strconv.ParseInt(k, 10, 32)
124 type LIDMap map[UID]LID
126 func (m LIDMap) MarshalJSON() ([]byte, error) {
127 generic := make(map[string]int, len(m))
128 for k, v := range m {
129 generic[strconv.Itoa(int(k))] = int(v)
131 return json.Marshal(generic)
134 func (m LIDMap) UnmarshalJSON(b []byte) error {
135 var generic map[string]int
136 if err := json.Unmarshal(b, &generic); err != nil {
139 for k, v := range generic {
140 ik, err := strconv.ParseInt(k, 10, 32)