mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-15 19:49:53 +01:00
Embrace the pointer
This commit is contained in:
66
knecht.go
66
knecht.go
@@ -87,51 +87,57 @@ func GetUserAnimeListData(username, status string) (*AnimeListMal, []byte, error
|
||||
return &list, data, err
|
||||
}
|
||||
|
||||
func GetUserData(username string) (*User, []byte, error) {
|
||||
func GetUser(username string) (*User, []byte, error) {
|
||||
var user User
|
||||
data, err := userCache.Get(username)
|
||||
if err != nil {
|
||||
err = nil
|
||||
dataJikan, err := GetDataJikan(userApiJikan + username)
|
||||
userp, data, err := GetUserData(username)
|
||||
if err != nil {
|
||||
return userp, data, err
|
||||
}
|
||||
userCache.Set(username, data)
|
||||
return userp, data, err
|
||||
} else {
|
||||
err = json.Unmarshal(data, &user)
|
||||
}
|
||||
|
||||
return &user, data, err
|
||||
}
|
||||
|
||||
func GetUserData(username string) (*User, []byte, error) {
|
||||
dataJikan, err := GetDataJikan(userApiJikan + username)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
if strings.Contains(string(dataJikan), "BadResponseException") {
|
||||
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
|
||||
}
|
||||
// workaround number #2 bcs jikan kekw
|
||||
if userJikan.Data.MalID == 0 {
|
||||
dataJikan, err = GetDataJikan(userApiJikan + username)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
if strings.Contains(string(dataJikan), "BadResponseException") {
|
||||
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
|
||||
}
|
||||
// workaround number #2 bcs jikan kekw
|
||||
if userJikan.Data.MalID == 0 {
|
||||
dataJikan, err = GetDataJikan(userApiJikan + username)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
if strings.Contains(string(dataJikan), "BadResponseException") {
|
||||
return nil, nil, fmt.Errorf("user not found: %s", username)
|
||||
}
|
||||
err = json.Unmarshal(dataJikan, &userJikan)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
if userJikan.Data.MalID == 0 {
|
||||
return nil, nil, fmt.Errorf("user returned empty object: %s", username)
|
||||
}
|
||||
// convert to user
|
||||
user = UserConvert(&userJikan)
|
||||
data, err = json.Marshal(&user)
|
||||
if err != nil {
|
||||
return &user, data, err
|
||||
}
|
||||
userCache.Set(username, data)
|
||||
} else {
|
||||
err = json.Unmarshal(data, &user)
|
||||
}
|
||||
|
||||
if userJikan.Data.MalID == 0 {
|
||||
return nil, nil, fmt.Errorf("user returned empty object: %s", username)
|
||||
}
|
||||
// convert to user
|
||||
user := UserConvert(&userJikan)
|
||||
data, err := json.Marshal(&user)
|
||||
return &user, data, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user