mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-13 12:29:53 +01:00
WatchGet
This commit is contained in:
44
nuss.go
44
nuss.go
@@ -1,8 +1,10 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/xujiajun/nutsdb"
|
||||
)
|
||||
@@ -29,21 +31,52 @@ func SaveUser(user *UserData) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func ReadAnimes() ([]Anime, error) {
|
||||
var animes []Anime
|
||||
err := db.View(
|
||||
func(tx *nutsdb.Tx) error {
|
||||
entries, err := tx.GetAll(bucketAnime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
animes = make([]Anime, len(entries))
|
||||
// iterate entries
|
||||
for _, entry := range entries {
|
||||
// decode anime list
|
||||
malId, c := binary.Varint(entry.Key)
|
||||
if c <= 0 {
|
||||
return fmt.Errorf("int64 decode error: %s %s", entry.Key, entry.Value)
|
||||
}
|
||||
// parse user list
|
||||
var users []WatchUser
|
||||
err = json.Unmarshal(entry.Value, &users)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
anime := Anime{
|
||||
Anime: malId,
|
||||
Users: users,
|
||||
}
|
||||
animes = append(animes, anime)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
return animes, err
|
||||
}
|
||||
|
||||
func DbClean() error {
|
||||
err := db.Update(
|
||||
return db.Update(
|
||||
func(tx *nutsdb.Tx) error {
|
||||
return db.Merge()
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func DbSave(bucket, key string, val []byte) error {
|
||||
err := db.Update(
|
||||
return db.Update(
|
||||
func(tx *nutsdb.Tx) error {
|
||||
keyBytes := []byte(key)
|
||||
return tx.Put(bucket, keyBytes, val, nutsdb.Persistent)
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func DbRead(bucket, key string) ([]byte, error) {
|
||||
@@ -63,10 +96,9 @@ func DbRead(bucket, key string) ([]byte, error) {
|
||||
}
|
||||
|
||||
func DbDelete(bucket, key string, val []byte) error {
|
||||
err := db.Update(
|
||||
return db.Update(
|
||||
func(tx *nutsdb.Tx) error {
|
||||
keyBytes := []byte(key)
|
||||
return tx.Delete(bucket, keyBytes)
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user