mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-13 10:29:52 +01:00
Embrace the pointer
This commit is contained in:
1
huso.go
1
huso.go
@@ -163,6 +163,7 @@ func main() {
|
||||
}
|
||||
|
||||
Arbeit()
|
||||
BissleArbeit()
|
||||
LangeArbeit()
|
||||
|
||||
go Arbeiten()
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ func SendAppointBroadcast(creator string, app *Appointment) {
|
||||
},
|
||||
}
|
||||
|
||||
user, _, err := GetUserData(creator)
|
||||
user, _, err := GetUser(creator)
|
||||
if err == nil {
|
||||
msge.Author = &discordgo.MessageEmbedAuthor{
|
||||
Name: user.Username,
|
||||
@@ -84,7 +84,7 @@ func AnnounceAppointmentSoon(app *Appointment) {
|
||||
msgStart.WriteString(fmt.Sprintf("<@%d>", uData.DiscordID))
|
||||
}
|
||||
|
||||
msgs := fmt.Sprintf("⏰ Appointment starting in <t:%d:R>!\n[%s](https://anime.hanami.family/anime/%d) at\n<t:%d:F>", app.Time.Unix(), anime.Title, app.Anime, app.Time.Unix())
|
||||
msgs := fmt.Sprintf("⏰ Appointment starting <t:%d:R>!\n[%s](https://anime.hanami.family/anime/%d) at\n<t:%d:F>", app.Time.Unix(), anime.Title, app.Anime, app.Time.Unix())
|
||||
msge := discordgo.MessageEmbed{
|
||||
Description: msgs,
|
||||
URL: fmt.Sprintf("https://anime.hanami.family/anime/%d", app.Anime),
|
||||
|
||||
6
ober.go
6
ober.go
@@ -285,7 +285,7 @@ func UserGet(ctx *fasthttp.RequestCtx) {
|
||||
users := make([]User, 0)
|
||||
if usrVal != nil {
|
||||
// get specific user
|
||||
user, _, err := GetUserData(fmt.Sprintf("%s", usrVal))
|
||||
user, _, err := GetUser(fmt.Sprintf("%s", usrVal))
|
||||
if err != nil {
|
||||
ctx.WriteString(err.Error())
|
||||
ctx.SetStatusCode(fasthttp.StatusNotFound)
|
||||
@@ -303,7 +303,7 @@ func UserGet(ctx *fasthttp.RequestCtx) {
|
||||
regUsers = make([]UserData, 0)
|
||||
}
|
||||
for _, u := range regUsers {
|
||||
user, _, err := GetUserData(u.Username)
|
||||
user, _, err := GetUser(u.Username)
|
||||
if err != nil {
|
||||
addErrorToCtx(ctx, err)
|
||||
return
|
||||
@@ -424,7 +424,7 @@ func Register(ctx *fasthttp.RequestCtx) {
|
||||
return
|
||||
}
|
||||
// check user legit
|
||||
userData, _, err := GetUserData(register.Username)
|
||||
userData, _, err := GetUser(register.Username)
|
||||
if err != nil {
|
||||
ctx.WriteString(err.Error())
|
||||
ctx.SetStatusCode(fasthttp.StatusExpectationFailed)
|
||||
|
||||
@@ -133,7 +133,7 @@ func BissleArbeit() {
|
||||
}
|
||||
} else {
|
||||
for _, u := range regUsers {
|
||||
_, _, err = GetUserData(u.Username)
|
||||
err = refreshUser(u.Username)
|
||||
if err != nil {
|
||||
color.Errorln(err.Error())
|
||||
logOut.WriteError(err)
|
||||
@@ -237,14 +237,21 @@ func refreshAnime(animeId int64) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
animeCache.Set(key, data)
|
||||
return nil
|
||||
return animeCache.Set(key, data)
|
||||
}
|
||||
|
||||
func refreshSeason(season string) error {
|
||||
_, bytes, err := GetSeasonDataAll(season)
|
||||
if err == nil {
|
||||
err = seasoncache.Set(season, bytes)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
return seasoncache.Set(season, bytes)
|
||||
}
|
||||
|
||||
func refreshUser(username string) error {
|
||||
_, data, err := GetUserData(username)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return userCache.Set(username, data)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user