From 95baa2f40c65de4e1ec7be1a186a44d9f13c7ffc Mon Sep 17 00:00:00 2001 From: daru Date: Sat, 16 Apr 2022 18:56:29 +0200 Subject: [PATCH] More struct work --- klotz.go | 12 +++++++++--- knecht.go | 10 ++-------- nuss.go | 22 +++++++++++----------- ober.go | 10 +++++----- schaffer.go | 5 +++-- season.qtpl | 4 ++-- season.qtpl.go | 4 ++-- 7 files changed, 34 insertions(+), 33 deletions(-) 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; } {% for _, anime := range animes %} - + - + {% endfor %}
{%s anime.Data.Title %}{%s anime.Title %} {%dl anime.Anime %}{%d anime.Data.Episodes %}{%d anime.Episodes %}
diff --git a/season.qtpl.go b/season.qtpl.go index 92e5a3d..4e74f52 100644 --- a/season.qtpl.go +++ b/season.qtpl.go @@ -33,7 +33,7 @@ func StreamIndex(qw422016 *qt422016.Writer, animes []Anime) { //line season.qtpl:31 qw422016.N().S(` `) //line season.qtpl:33 - qw422016.E().S(anime.Data.Title) + qw422016.E().S(anime.Title) //line season.qtpl:33 qw422016.N().S(` `) //line season.qtpl:34 @@ -41,7 +41,7 @@ func StreamIndex(qw422016 *qt422016.Writer, animes []Anime) { //line season.qtpl:34 qw422016.N().S(` `) //line season.qtpl:35 - qw422016.N().D(anime.Data.Episodes) + qw422016.N().D(anime.Episodes) //line season.qtpl:35 qw422016.N().S(` `) //line season.qtpl:37