This commit is contained in:
daru
2022-04-15 01:26:18 +02:00
parent 9dfe6424c8
commit ea49d83475
6 changed files with 160 additions and 45 deletions

44
nuss.go
View File

@@ -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
}