This commit is contained in:
YouROK
2020-11-10 14:06:13 +03:00
parent c95eaccc57
commit 6a11651cf5
15 changed files with 566 additions and 209 deletions

View File

@@ -126,9 +126,9 @@ func (v *TDB) List(xpath string) []string {
}
}
buckt.ForEach(func(_, v []byte) error {
if len(v) > 0 {
ret = append(ret, string(v))
buckt.ForEach(func(k, _ []byte) error {
if len(k) > 0 {
ret = append(ret, string(k))
}
return nil
})

View File

@@ -7,7 +7,7 @@ import (
"github.com/anacrolix/torrent"
"github.com/anacrolix/torrent/metainfo"
"server/torr"
"server/torr/state"
)
type TorrentDB struct {
@@ -18,7 +18,7 @@ type TorrentDB struct {
Timestamp int64 `json:"timestamp,omitempty"`
Files []torr.TorrentFileStat `json:"files,omitempty"`
Files []state.TorrentFileStat `json:"files,omitempty"`
}
type File struct {
@@ -63,7 +63,7 @@ func ListTorrent() []*TorrentDB {
buf := tdb.Get("Torrents", key)
if len(buf) > 0 {
var torr *TorrentDB
err := json.Unmarshal(buf, torr)
err := json.Unmarshal(buf, &torr)
if err == nil {
list = append(list, torr)
}

View File

@@ -0,0 +1,79 @@
package settings
import (
"encoding/json"
"server/log"
)
type Viewed struct {
Hash string `json:"hash"`
FileIndex int `json:"file_index"`
}
func SetViewed(vv *Viewed) {
buf := tdb.Get("Viewed", vv.Hash)
var indeces map[int]struct{}
err := json.Unmarshal(buf, &indeces)
if err == nil {
indeces[vv.FileIndex] = struct{}{}
buf, err = json.Marshal(indeces)
if err == nil {
tdb.Set("Viewed", vv.Hash, buf)
}
}
if err != nil {
log.TLogln("Error set viewed:", err)
}
}
func RemViewed(vv *Viewed) {
buf := tdb.Get("Viewed", vv.Hash)
var indeces map[int]struct{}
err := json.Unmarshal(buf, &indeces)
if err == nil {
delete(indeces, vv.FileIndex)
buf, err = json.Marshal(indeces)
if err == nil {
tdb.Set("Viewed", vv.Hash, buf)
}
}
if err != nil {
log.TLogln("Error rem viewed:", err)
}
}
func ListViewed(hash string) []*Viewed {
var err error
if hash != "" {
buf := tdb.Get("Viewed", hash)
var indeces map[int]struct{}
err = json.Unmarshal(buf, &indeces)
if err == nil {
var ret []*Viewed
for i, _ := range indeces {
ret = append(ret, &Viewed{hash, i})
}
return ret
}
} else {
var ret []*Viewed
keys := tdb.List("Viewed")
for _, key := range keys {
buf := tdb.Get("Viewed", key)
var indeces map[int]struct{}
err = json.Unmarshal(buf, &indeces)
if err == nil {
for i, _ := range indeces {
ret = append(ret, &Viewed{hash, i})
}
}
}
return ret
}
if err != nil {
log.TLogln("Error list viewed:", err)
}
return nil
}