mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-13 12:19:54 +01:00
MAL progress fetch
This commit is contained in:
35
nuss.go
35
nuss.go
@@ -4,6 +4,7 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/xujiajun/nutsdb"
|
||||
)
|
||||
@@ -30,7 +31,7 @@ func SaveUser(user *UserData) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func AddUserToAnime(username string, userId, animeId int64) (*AnimeUser, error) {
|
||||
func AddUserToAnime(username string, userId, animeId int64, progress int, updated time.Time) (*AnimeUser, error) {
|
||||
var anime AnimeUser
|
||||
err := db.Update(
|
||||
func(tx *nutsdb.Tx) error {
|
||||
@@ -62,6 +63,8 @@ func AddUserToAnime(username string, userId, animeId int64) (*AnimeUser, error)
|
||||
users = append(users, WatchUser{
|
||||
Username: username,
|
||||
MalID: userId,
|
||||
Progress: progress,
|
||||
Updated: updated,
|
||||
})
|
||||
anime = AnimeUser{
|
||||
Anime: animeId,
|
||||
@@ -164,6 +167,36 @@ func DeleteUserFromAnimes(userId int64) error {
|
||||
})
|
||||
}
|
||||
|
||||
func UpdateUserAnimeProgress(animeId, userId int64, progress int, updated time.Time) error {
|
||||
return db.Update(
|
||||
func(tx *nutsdb.Tx) error {
|
||||
keyBytes := Int64ToByte(animeId)
|
||||
e, err := tx.Get(bucketAnime, keyBytes)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// parse user list
|
||||
users, err := parseWatchUserList(e.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// find user
|
||||
for i, u := range users {
|
||||
// early terminate
|
||||
if u.MalID == userId {
|
||||
users[i].Progress = progress
|
||||
users[i].Updated = updated
|
||||
newData, err := json.Marshal(users)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return tx.Put(bucketAnime, keyBytes, newData, nutsdb.Persistent)
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("%d schaut nicht %d", userId, animeId)
|
||||
})
|
||||
}
|
||||
|
||||
func ReadRegisteredUsers() ([]UserData, error) {
|
||||
var users []UserData
|
||||
err := db.View(
|
||||
|
||||
Reference in New Issue
Block a user