import (
"encoding/json"
- "github.com/Kovensky/go-anidb/misc"
+ "github.com/EliasFleckenstein03/go-anidb/misc"
"strconv"
"time"
)
type MyListAnime struct {
AID AID
- UnknownState misc.EpisodeList
- OnHDD misc.EpisodeList
- OnCD misc.EpisodeList
- Deleted misc.EpisodeList
+ EpisodesWithState MyListStateMap
WatchedEpisodes misc.EpisodeList
return nil
}
+
+type MyListStateMap map[MyListState]misc.EpisodeList
+
+func (sm MyListStateMap) MarshalJSON() ([]byte, error) {
+ generic := make(map[string]misc.EpisodeList, len(sm))
+ for k, v := range sm {
+ generic[strconv.Itoa(int(k))] = v
+ }
+ return json.Marshal(generic)
+}
+
+func (sm MyListStateMap) UnmarshalJSON(b []byte) error {
+ var generic map[string]misc.EpisodeList
+ if err := json.Unmarshal(b, &generic); err != nil {
+ return err
+ }
+ for k, v := range generic {
+ ik, err := strconv.ParseInt(k, 10, 32)
+ if err != nil {
+ return err
+ }
+
+ sm[MyListState(ik)] = v
+ }
+
+ return nil
+}