mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-14 11:49:52 +01:00
Delete user from anime on finish
This commit is contained in:
@@ -13,7 +13,7 @@ import (
|
|||||||
"github.com/valyala/fasthttp"
|
"github.com/valyala/fasthttp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func SearchAnime(query string) ([]Anime, []byte, error) {
|
func SearchAnimeData(query string) ([]Anime, []byte, error) {
|
||||||
var animes []Anime
|
var animes []Anime
|
||||||
data, err := searchCache.Get(query)
|
data, err := searchCache.Get(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
53
ober.go
53
ober.go
@@ -91,21 +91,16 @@ func AnimeGet(ctx *fasthttp.RequestCtx) {
|
|||||||
ctx.SetStatusCode(fasthttp.StatusBadRequest)
|
ctx.SetStatusCode(fasthttp.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// search season first
|
// search anime
|
||||||
anime, err := SearchSeason(malId)
|
anime, err := SearchAnime(malId)
|
||||||
var bytes []byte
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
_, bytes, err = GetAnimeDetailData(malId)
|
addErrorToCtx(ctx, err)
|
||||||
if err != nil {
|
return
|
||||||
addErrorToCtx(ctx, err)
|
}
|
||||||
return
|
bytes, err := json.Marshal(&anime)
|
||||||
}
|
if err != nil {
|
||||||
} else {
|
addErrorToCtx(ctx, err)
|
||||||
bytes, err = json.Marshal(&anime)
|
return
|
||||||
if err != nil {
|
|
||||||
addErrorToCtx(ctx, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_, err = ctx.Write(bytes)
|
_, err = ctx.Write(bytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -123,8 +118,8 @@ func AnimeSearchGet(ctx *fasthttp.RequestCtx) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
query := string(ctx.QueryArgs().Peek("q"))
|
query := string(ctx.QueryArgs().Peek("q"))
|
||||||
// Search with query
|
// search with query
|
||||||
_, bytes, err := SearchAnime(query)
|
_, bytes, err := SearchAnimeData(query)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
addErrorToCtx(ctx, err)
|
addErrorToCtx(ctx, err)
|
||||||
return
|
return
|
||||||
@@ -271,15 +266,11 @@ func WatchExtendedGet(ctx *fasthttp.RequestCtx) {
|
|||||||
animeUsersExtended := make([]AnimeUserExtended, 0)
|
animeUsersExtended := make([]AnimeUserExtended, 0)
|
||||||
// make list advanced
|
// make list advanced
|
||||||
for _, a := range animeUsers {
|
for _, a := range animeUsers {
|
||||||
// Search season first
|
// search anime
|
||||||
var data *Anime
|
data, err := SearchAnime(a.Anime)
|
||||||
data, err := SearchSeason(a.Anime)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
data, _, err = GetAnimeDetailData(a.Anime)
|
addErrorToCtx(ctx, err)
|
||||||
if err != nil {
|
return
|
||||||
addErrorToCtx(ctx, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
animeUsersExtended = append(animeUsersExtended, AnimeUserExtended{
|
animeUsersExtended = append(animeUsersExtended, AnimeUserExtended{
|
||||||
Anime: a.Anime,
|
Anime: a.Anime,
|
||||||
@@ -545,16 +536,12 @@ func processUpdateReq(ctx *fasthttp.RequestCtx, update bool) {
|
|||||||
|
|
||||||
// iterate sent animes
|
// iterate sent animes
|
||||||
for i, anime := range animes {
|
for i, anime := range animes {
|
||||||
// check if anime is in season
|
// anime holen sie diese
|
||||||
_, err = SearchSeason(anime.Anime)
|
_, err = SearchAnime(anime.Anime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// anime not in season => holen sie diese
|
ctx.WriteString(err.Error())
|
||||||
_, _, err := GetAnimeDetailData(anime.Anime)
|
ctx.SetStatusCode(fasthttp.StatusNotFound)
|
||||||
if err != nil {
|
return
|
||||||
ctx.WriteString(err.Error())
|
|
||||||
ctx.SetStatusCode(fasthttp.StatusNotFound)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var animeData *AnimeUser
|
var animeData *AnimeUser
|
||||||
|
|||||||
@@ -39,9 +39,25 @@ func Arbeit() {
|
|||||||
if newProgress == u.Progress {
|
if newProgress == u.Progress {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// update db
|
|
||||||
color.Infof("%s progress von %d: %d -> %d\n", u.Username, a.Anime, u.Progress, newProgress)
|
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))
|
||||||
|
animeData, err := SearchAnime(a.Anime)
|
||||||
|
if err != nil {
|
||||||
|
color.Errorln(err.Error())
|
||||||
|
logOut.WriteError(err)
|
||||||
|
} else {
|
||||||
|
if animeData.Episodes != 0 && newProgress >= animeData.Episodes {
|
||||||
|
color.Infof("%s finished %d\n", u.Username, a.Anime)
|
||||||
|
logOut.WriteLine(fmt.Sprintf("📜 %s finished %d !", u.Username, a.Anime))
|
||||||
|
_, err = DeleteUserFromAnime(u.Username, u.MalID, a.Anime)
|
||||||
|
if err != nil {
|
||||||
|
color.Errorln(err.Error())
|
||||||
|
logOut.WriteError(err)
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// update db
|
||||||
err = UpdateUserAnimeProgress(a.Anime, u.MalID, newProgress, updated)
|
err = UpdateUserAnimeProgress(a.Anime, u.MalID, newProgress, updated)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
color.Errorln(err.Error())
|
color.Errorln(err.Error())
|
||||||
|
|||||||
13
schaffer.go
13
schaffer.go
@@ -132,6 +132,19 @@ func SearchSeason(animeId int64) (*Anime, error) {
|
|||||||
return nil, errors.New("anime not found")
|
return nil, errors.New("anime not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SearchAnime(animeId int64) (*Anime, error) {
|
||||||
|
// search season first
|
||||||
|
anime, err := SearchSeason(animeId)
|
||||||
|
if err != nil {
|
||||||
|
// get from MAL
|
||||||
|
anime, _, err = GetAnimeDetailData(animeId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return anime, err
|
||||||
|
}
|
||||||
|
|
||||||
func FetchProgress(animeId, userId int64, username string, progress int) (int, time.Time, error) {
|
func FetchProgress(animeId, userId int64, username string, progress int) (int, time.Time, error) {
|
||||||
// check watching first
|
// check watching first
|
||||||
list, _, err := GetUserAnimeListData(username, malApiStatusW)
|
list, _, err := GetUserAnimeListData(username, malApiStatusW)
|
||||||
|
|||||||
Reference in New Issue
Block a user