mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-19 13:36:09 +05:00
dont preload if reader in begin of file
This commit is contained in:
@@ -37,6 +37,8 @@ type Cache struct {
|
|||||||
torrent *torrent.Torrent
|
torrent *torrent.Torrent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const FileRangeNotDelete = 5 * 1024 * 1024
|
||||||
|
|
||||||
func NewCache(capacity int64, storage *Storage) *Cache {
|
func NewCache(capacity int64, storage *Storage) *Cache {
|
||||||
ret := &Cache{
|
ret := &Cache{
|
||||||
capacity: capacity,
|
capacity: capacity,
|
||||||
@@ -204,6 +206,13 @@ func (c *Cache) getRemPieces() []*Piece {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for r, _ := range c.readers {
|
for r, _ := range c.readers {
|
||||||
|
notLoadSize := int64(FileRangeNotDelete)
|
||||||
|
if c.pieceLength > notLoadSize {
|
||||||
|
notLoadSize = c.pieceLength
|
||||||
|
}
|
||||||
|
if r.offset-r.file.Offset() < notLoadSize {
|
||||||
|
continue
|
||||||
|
}
|
||||||
pc := r.getReaderPiece()
|
pc := r.getReaderPiece()
|
||||||
end := r.getPiecesRange().End
|
end := r.getPiecesRange().End
|
||||||
limit := 5
|
limit := 5
|
||||||
@@ -230,9 +239,9 @@ func (c *Cache) getRemPieces() []*Piece {
|
|||||||
func (c *Cache) isIdInFileBE(ranges []Range, id int) bool {
|
func (c *Cache) isIdInFileBE(ranges []Range, id int) bool {
|
||||||
for _, rng := range ranges {
|
for _, rng := range ranges {
|
||||||
ss := int(rng.File.Offset() / c.pieceLength)
|
ss := int(rng.File.Offset() / c.pieceLength)
|
||||||
se := int((5*1024*1024 + rng.File.Offset()) / c.pieceLength)
|
se := int((FileRangeNotDelete + rng.File.Offset()) / c.pieceLength)
|
||||||
|
|
||||||
es := int((rng.File.Offset() + rng.File.Length() - 5*1024*1024) / c.pieceLength)
|
es := int((rng.File.Offset() + rng.File.Length() - FileRangeNotDelete) / c.pieceLength)
|
||||||
ee := int((rng.File.Offset() + rng.File.Length()) / c.pieceLength)
|
ee := int((rng.File.Offset() + rng.File.Length()) / c.pieceLength)
|
||||||
|
|
||||||
if id >= ss && id <= se || id >= es && id <= ee {
|
if id >= ss && id <= se || id >= es && id <= ee {
|
||||||
|
|||||||
Reference in New Issue
Block a user