mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-13 12:19:54 +01:00
UnRegister
This commit is contained in:
48
nuss.go
48
nuss.go
@@ -91,7 +91,6 @@ func DeleteUserFromAnime(username string, userId, animeId int64) (*Anime, error)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
}
|
||||
// check if user already part
|
||||
for i, u := range users {
|
||||
@@ -120,6 +119,51 @@ func DeleteUserFromAnime(username string, userId, animeId int64) (*Anime, error)
|
||||
return &anime, err
|
||||
}
|
||||
|
||||
func DeleteUserFromAnimes(userId int64) error {
|
||||
return db.Update(
|
||||
func(tx *nutsdb.Tx) error {
|
||||
entries, err := tx.GetAll(bucketAnime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// iterate entries
|
||||
for _, e := range entries {
|
||||
// parse user list
|
||||
users, err := parseUserList(e.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// check if user is part
|
||||
for i, u := range users {
|
||||
if u.MalID == userId {
|
||||
// delete user from list
|
||||
users[i] = users[len(users)-1]
|
||||
users = users[:len(users)-1]
|
||||
// check if anime needs recycling
|
||||
if len(users) == 0 {
|
||||
err = tx.Delete(bucketAnime, e.Key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
newData, err := json.Marshal(users)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = tx.Put(bucketAnime, e.Key, newData, nutsdb.Persistent)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func ReadAnimes() ([]Anime, error) {
|
||||
var animes []Anime
|
||||
err := db.View(
|
||||
@@ -183,7 +227,7 @@ func DbRead(bucket, key string) ([]byte, error) {
|
||||
return val, err
|
||||
}
|
||||
|
||||
func DbDelete(bucket, key string, val []byte) error {
|
||||
func DbDelete(bucket, key string) error {
|
||||
return db.Update(
|
||||
func(tx *nutsdb.Tx) error {
|
||||
keyBytes := []byte(key)
|
||||
|
||||
Reference in New Issue
Block a user