This repository has been archived by the owner on Sep 22, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
user_anime.go
74 lines (63 loc) · 1.66 KB
/
user_anime.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package user
import (
"fmt"
"github.com/rl404/go-malscraper/model"
"github.com/rl404/go-malscraper/pkg/utils"
)
type anime struct {
raws []model.UserRawAnime
cleanImg bool
data []model.UserAnime
}
// GetAnime to get user anime list.
func (p *parser) GetAnime(a []model.UserRawAnime) []model.UserAnime {
v := anime{raws: a, cleanImg: p.cleanImg}
v.setDetails()
return v.data
}
func (a *anime) setDetails() {
list := []model.UserAnime{}
for _, r := range a.raws {
tmp := model.UserAnime{
ID: r.AnimeID,
Title: fmt.Sprintf("%v", r.AnimeTitle),
Image: utils.URLCleaner(r.AnimeImage, "image", a.cleanImg),
Score: r.Score,
Status: r.Status,
Type: r.AnimeType,
Progress: r.WatchedEpisode,
Episode: r.AnimeEpisode,
Tag: fmt.Sprintf("%v", r.Tags),
Rating: r.AnimeRating,
AiringStatus: r.AnimeAiringStatus,
IsRewatching: a.getIsRewatching(r.IsRewatching),
Days: r.Days,
Storage: r.Storage,
Priority: r.Priority,
}
y1, m1, d1 := utils.StrToDate(r.AnimeStartDate)
tmp.AiringStart = model.Date{Year: y1, Month: m1, Day: d1}
y2, m2, d2 := utils.StrToDate(r.AnimeEndDate)
tmp.AiringEnd = model.Date{Year: y2, Month: m2, Day: d2}
t3, valid := utils.StrToTime(r.StartDate)
if !valid {
tmp.WatchStart = nil
} else {
tmp.WatchStart = &t3
}
t4, valid := utils.StrToTime(r.FinishDate)
if !valid {
tmp.WatchEnd = nil
} else {
tmp.WatchEnd = &t4
}
list = append(list, tmp)
}
a.data = list
}
func (a *anime) getIsRewatching(value interface{}) bool {
if v, ok := value.(float64); ok {
return v == 1
}
return false
}