diff --git a/klotz.go b/klotz.go index b584d5f..51e0659 100644 --- a/klotz.go +++ b/klotz.go @@ -2,13 +2,19 @@ package main import "time" -type Anime struct { +type AnimeUser struct { Anime int64 `json:"anime"` Users []WatchUser `json:"users"` - Data AnimeDetail `json:"data"` } -type AnimeDetail struct { +type AnimeUserDetail struct { + Anime int64 `json:"anime"` + Users []WatchUser `json:"users"` + Data Anime `json:"data"` +} + +type Anime struct { + Anime int64 `json:"anime"` Title string `json:"title"` TitleEn string `json:"title_en"` TitleJp string `json:"title_jp"` diff --git a/knecht.go b/knecht.go index 0092928..26b98fa 100644 --- a/knecht.go +++ b/knecht.go @@ -87,10 +87,7 @@ func GetSeasonDataAll() ([]Anime, []byte, error) { animes := make([]Anime, 0) // convert to anime for _, a := range data.Data { - animes = append(animes, Anime{ - Anime: a.MalID, - Data: JikanConvert(&a), - }) + animes = append(animes, JikanConvert(&a)) } for i := 2; data.Pagination.HasNextPage; i++ { color.Infof("Seite %d abfragen...\n", i) @@ -104,10 +101,7 @@ func GetSeasonDataAll() ([]Anime, []byte, error) { data.Pagination.Items.Count += newData.Pagination.Items.Count // convert to anime for _, a := range newData.Data { - animes = append(animes, Anime{ - Anime: a.MalID, - Data: JikanConvert(&a), - }) + animes = append(animes, JikanConvert(&a)) } } color.Infof("%d Anime bekommen\n", len(animes)) diff --git a/nuss.go b/nuss.go index 10bafac..822aebd 100644 --- a/nuss.go +++ b/nuss.go @@ -30,8 +30,8 @@ func SaveUser(user *UserData) error { return err } -func AddUserToAnime(username string, userId, animeId int64) (*Anime, error) { - var anime Anime +func AddUserToAnime(username string, userId, animeId int64) (*AnimeUser, error) { + var anime AnimeUser err := db.Update( func(tx *nutsdb.Tx) error { keyBytes := Int64ToByte(animeId) @@ -50,7 +50,7 @@ func AddUserToAnime(username string, userId, animeId int64) (*Anime, error) { for _, u := range users { if u.MalID == userId { // early terminate - anime = Anime{ + anime = AnimeUser{ Anime: animeId, Users: users, } @@ -63,7 +63,7 @@ func AddUserToAnime(username string, userId, animeId int64) (*Anime, error) { Username: username, MalID: userId, }) - anime = Anime{ + anime = AnimeUser{ Anime: animeId, Users: users, } @@ -76,8 +76,8 @@ func AddUserToAnime(username string, userId, animeId int64) (*Anime, error) { return &anime, err } -func DeleteUserFromAnime(username string, userId, animeId int64) (*Anime, error) { - var anime Anime +func DeleteUserFromAnime(username string, userId, animeId int64) (*AnimeUser, error) { + var anime AnimeUser err := db.Update( func(tx *nutsdb.Tx) error { keyBytes := Int64ToByte(animeId) @@ -100,7 +100,7 @@ func DeleteUserFromAnime(username string, userId, animeId int64) (*Anime, error) users[i] = users[len(users)-1] users = users[:len(users)-1] // check if anime needs recycling - anime = Anime{ + anime = AnimeUser{ Anime: animeId, Users: users, } @@ -164,15 +164,15 @@ func DeleteUserFromAnimes(userId int64) error { }) } -func ReadAnimes() ([]Anime, error) { - var animes []Anime +func ReadAnimeUsers() ([]AnimeUser, error) { + var animes []AnimeUser err := db.View( func(tx *nutsdb.Tx) error { entries, err := tx.GetAll(bucketAnime) if err != nil { return err } - animes = make([]Anime, 0) + animes = make([]AnimeUser, 0) // iterate entries for _, e := range entries { // decode anime list @@ -185,7 +185,7 @@ func ReadAnimes() ([]Anime, error) { if err != nil { return err } - anime := Anime{ + anime := AnimeUser{ Anime: animeId, Users: users, } diff --git a/ober.go b/ober.go index 8eddd8e..72e18fe 100644 --- a/ober.go +++ b/ober.go @@ -64,19 +64,19 @@ func WatchGet(ctx *fasthttp.RequestCtx) { } userId = user.MalID } - animes, err := ReadAnimes() + animes, err := ReadAnimeUsers() if err != nil { // check if no anime were inserted if err != nutsdb.ErrBucketEmpty { addErrorToCtx(ctx, err) return } - animes = make([]Anime, 0) + animes = make([]AnimeUser, 0) } // apply single user logic if usrVal != nil { - filteredAnimes := make([]Anime, 0) + filteredAnimes := make([]AnimeUser, 0) for _, a := range animes { for _, u := range a.Users { if u.MalID == userId { @@ -226,7 +226,7 @@ func processUpdateReq(ctx *fasthttp.RequestCtx, update bool) { } body := ctx.PostBody() - var animes []Anime + var animes []AnimeUser err := json.Unmarshal(body, &animes) if err != nil || len(animes) == 0 { ctx.WriteString(err.Error()) @@ -248,7 +248,7 @@ func processUpdateReq(ctx *fasthttp.RequestCtx, update bool) { } } - var animeData *Anime + var animeData *AnimeUser // update or delete request if update { // anime exitsts => save diff --git a/schaffer.go b/schaffer.go index f04c574..3032638 100644 --- a/schaffer.go +++ b/schaffer.go @@ -5,8 +5,9 @@ import ( "errors" ) -func JikanConvert(jik *SeasonAnimeJikan) AnimeDetail { - res := AnimeDetail{ +func JikanConvert(jik *SeasonAnimeJikan) Anime { + res := Anime{ + Anime: jik.MalID, Title: jik.Title, TitleEn: jik.TitleEnglish, TitleJp: jik.TitleJapanese, diff --git a/season.qtpl b/season.qtpl index b602eeb..3d61375 100644 --- a/season.qtpl +++ b/season.qtpl @@ -30,9 +30,9 @@ body { background-color: #1a1a1a; color: #fff; }
| {%s anime.Data.Title %} | +{%s anime.Title %} | {%dl anime.Anime %} | -{%d anime.Data.Episodes %} | +{%d anime.Episodes %} |