mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-19 21:46:11 +05:00
Merge branch 'capacity'
This commit is contained in:
@@ -83,7 +83,7 @@ func (c *Cache) Piece(m metainfo.Piece) storage.PieceImpl {
|
|||||||
if val, ok := c.pieces[m.Index()]; ok {
|
if val, ok := c.pieces[m.Index()]; ok {
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
return nil
|
return &PieceFake{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Cache) Close() error {
|
func (c *Cache) Close() error {
|
||||||
|
|||||||
33
server/torr/storage/torrstor/piecefake.go
Normal file
33
server/torr/storage/torrstor/piecefake.go
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
package torrstor
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"github.com/anacrolix/torrent/storage"
|
||||||
|
)
|
||||||
|
|
||||||
|
type PieceFake struct{}
|
||||||
|
|
||||||
|
func (PieceFake) ReadAt(p []byte, off int64) (n int, err error) {
|
||||||
|
err = errors.New("fake")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PieceFake) WriteAt(p []byte, off int64) (n int, err error) {
|
||||||
|
err = errors.New("fake")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PieceFake) MarkComplete() error {
|
||||||
|
return errors.New("fake")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PieceFake) MarkNotComplete() error {
|
||||||
|
return errors.New("fake")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (PieceFake) Completion() storage.Completion {
|
||||||
|
return storage.Completion{
|
||||||
|
Complete: false,
|
||||||
|
Ok: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"server/torr/storage"
|
"server/torr/storage"
|
||||||
|
|
||||||
"github.com/anacrolix/torrent/metainfo"
|
"github.com/anacrolix/torrent/metainfo"
|
||||||
storage2 "github.com/anacrolix/torrent/storage"
|
ts "github.com/anacrolix/torrent/storage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Storage struct {
|
type Storage struct {
|
||||||
@@ -24,16 +24,20 @@ func NewStorage(capacity int64) *Storage {
|
|||||||
return stor
|
return stor
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Storage) OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (storage2.TorrentImpl, error) {
|
func (s *Storage) OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (ts.TorrentImpl, error) {
|
||||||
|
capFunc := func() (int64, bool) {
|
||||||
|
return s.capacity, true
|
||||||
|
}
|
||||||
s.mu.Lock()
|
s.mu.Lock()
|
||||||
defer s.mu.Unlock()
|
defer s.mu.Unlock()
|
||||||
ch := NewCache(s.capacity, s)
|
ch := NewCache(s.capacity, s)
|
||||||
ch.Init(info, infoHash)
|
ch.Init(info, infoHash)
|
||||||
s.caches[infoHash] = ch
|
s.caches[infoHash] = ch
|
||||||
// return ch, nil
|
// return ch, nil
|
||||||
return storage2.TorrentImpl{
|
return ts.TorrentImpl{
|
||||||
Piece: ch.Piece,
|
Piece: ch.Piece,
|
||||||
Close: ch.Close,
|
Close: ch.Close,
|
||||||
|
Capacity: &capFunc,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user