the big talk

This commit is contained in:
daru
2022-07-01 17:47:08 +02:00
parent f078c93b9e
commit fd84193d9d
4 changed files with 22 additions and 12 deletions

View File

@@ -74,7 +74,7 @@ func main() {
color.Notice.Printf("huso %s built on %s with %s\n", husoVersion, buildTime, runtime.Version())
logOut.WriteLine(fmt.Sprintf("🎉 huso %s built on %s with %s", husoVersion, buildTime, runtime.Version()))
jikanLimiter = rate.NewLimiter(rate.Every(time.Second), 1)
jikanLimiter = rate.NewLimiter(rate.Every(time.Second+(time.Millisecond*420)), 1)
// cache init
var err error

View File

@@ -75,6 +75,8 @@ func GetUserAnimeListData(username, status string) (*AnimeListMal, []byte, error
var list AnimeListMal
data, err := animeListCache.Get(username + status)
if err != nil {
color.Infoln(username + "'s " + status + " abfragen...")
logOut.WriteLine("📄 " + username + "'s " + status + " abfragen...")
data, err = GetDataMal(userApiMal + username + "/animelist?limit=1000&status=" + status + "&fields=list_status")
if err != nil {
return nil, nil, err

View File

@@ -55,6 +55,9 @@ func Arbeit() {
}
return
}
color.Infoln("Animelisten abfragen...")
logOut.WriteLine("📜 Animelisten abfragen...")
count := 0
// iterate anime
for _, a := range animesUsers {
// iterate users
@@ -68,40 +71,45 @@ func Arbeit() {
// check if user set anime as completed
if listState == malApiStatusC {
color.Infof("%s finished %d scored %d\n", u.Username, a.Anime, score)
logOut.WriteLine(fmt.Sprintf("📜 %s finished %d scored %d !", u.Username, a.Anime, score))
logOut.WriteLine(fmt.Sprintf("📝 %s finished %d scored %d !", u.Username, a.Anime, score))
// delete user from anime
_, err = DeleteUserFromAnime(u.Username, u.MalID, a.Anime)
if err != nil {
color.Errorln(err.Error())
logOut.WriteError(err)
}
count++
continue
}
// check if user set anime as dropped
if listState == malApiStatusD {
color.Infof("%s dropped %d\n", u.Username, a.Anime)
logOut.WriteLine(fmt.Sprintf("📜 %s dropped %d !", u.Username, a.Anime))
logOut.WriteLine(fmt.Sprintf("📝 %s dropped %d !", u.Username, a.Anime))
// delete user from anime
_, err = DeleteUserFromAnime(u.Username, u.MalID, a.Anime)
if err != nil {
color.Errorln(err.Error())
logOut.WriteError(err)
}
count++
continue
}
if newProgress == u.Progress {
continue
}
color.Infof("%s progress von %d: %d -> %d\n", u.Username, a.Anime, u.Progress, newProgress)
logOut.WriteLine(fmt.Sprintf("📜 %s progress von %d: %d -> %d", u.Username, a.Anime, u.Progress, newProgress))
logOut.WriteLine(fmt.Sprintf("📝 %s progress von %d: %d -> %d", u.Username, a.Anime, u.Progress, newProgress))
// update db
err = UpdateUserAnimeProgress(a.Anime, u.MalID, newProgress, updated)
if err != nil {
color.Errorln(err.Error())
logOut.WriteError(err)
}
count++
}
}
color.Infof("%d Sachen aktualisiert\n", count)
logOut.WriteLine(fmt.Sprintf("📜 %d Sachen aktualisiert", count))
}
func BissleArbeiten() {

View File

@@ -191,14 +191,6 @@ func FetchProgress(animeId int64, username string) (int, time.Time, int, string,
if newProgress != -1 {
return newProgress, updated, score, malApiStatusW, err
}
// check on hold
newProgress, updated, score, err = FetchProgressOnState(animeId, username, malApiStatusH)
if err != nil {
return newProgress, updated, score, "", err
}
if newProgress != -1 {
return newProgress, updated, score, malApiStatusH, err
}
// check completed
newProgress, updated, score, err = FetchProgressOnState(animeId, username, malApiStatusC)
if err != nil {
@@ -207,6 +199,14 @@ func FetchProgress(animeId int64, username string) (int, time.Time, int, string,
if newProgress != -1 {
return newProgress, updated, score, malApiStatusC, err
}
// check on hold
newProgress, updated, score, err = FetchProgressOnState(animeId, username, malApiStatusH)
if err != nil {
return newProgress, updated, score, "", err
}
if newProgress != -1 {
return newProgress, updated, score, malApiStatusH, err
}
// check dropped
newProgress, updated, score, err = FetchProgressOnState(animeId, username, malApiStatusD)
if err != nil {