This commit is contained in:
daru
2022-04-17 19:46:57 +02:00
parent 4612cd1eb0
commit 4107603e22
5 changed files with 121 additions and 23 deletions

View File

@@ -54,30 +54,35 @@ func GetUserAnimeListBytes(username, status string) ([]byte, error) {
return GetDataMal(userApiMal + username + "/animelist?limit=1000&status=" + status)
}
func GetUserData(username string) (*UserJikan, []byte, error) {
var user UserJikan
body, err := GetUserBytesCached(username)
if err != nil {
return nil, body, err
}
err = json.Unmarshal(body, &user)
return &user, body, err
}
func GetUserBytesCached(username string) ([]byte, error) {
func GetUserData(username string) (*User, []byte, error) {
var user User
data, err := userCache.Get(username)
if err != nil {
data, err = GetDataJikan(username)
err = nil
dataJikan, err := GetDataJikan(userApiJikan + username)
if err != nil {
return data, err
return nil, nil, err
}
if strings.Contains(string(data), "BadResponseException") {
return data, fmt.Errorf("user not found: %s", username)
return nil, nil, fmt.Errorf("user not found: %s", username)
}
var userJikan UserJikan
err = json.Unmarshal(dataJikan, &userJikan)
if err != nil {
return nil, nil, err
}
// convert to user
user = UserConvert(&userJikan)
data, err = json.Marshal(&user)
if err != nil {
return &user, data, err
}
userCache.Set(username, data)
return data, err
} else {
err = json.Unmarshal(data, &user)
}
return data, err
return &user, data, err
}
func GetSeasonDataAll() ([]Anime, []byte, error) {