mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-19 21:46:11 +05:00
Merge branch 'master' into LGT
This commit is contained in:
@@ -107,21 +107,37 @@ func GetTorrent(hashHex string) *Torrent {
|
||||
|
||||
func SetTorrent(hashHex, title, poster, data string) *Torrent {
|
||||
hash := metainfo.NewHashFromHex(hashHex)
|
||||
tor := bts.GetTorrent(hash)
|
||||
if tor != nil {
|
||||
tor.Title = title
|
||||
tor.Poster = poster
|
||||
tor.Data = data
|
||||
torr := bts.GetTorrent(hash)
|
||||
torrDb := GetTorrentDB(hash)
|
||||
|
||||
if title == "" && torr == nil && torrDb != nil {
|
||||
torr = GetTorrent(hashHex)
|
||||
torr.GotInfo()
|
||||
if torr.Torrent != nil && torr.Torrent.Info() != nil {
|
||||
title = torr.Info().Name
|
||||
}
|
||||
}
|
||||
|
||||
tor = GetTorrentDB(hash)
|
||||
if tor != nil {
|
||||
tor.Title = title
|
||||
tor.Poster = poster
|
||||
tor.Data = data
|
||||
AddTorrentDB(tor)
|
||||
if torr != nil {
|
||||
if title == "" && torr.Torrent != nil && torr.Torrent.Info() != nil {
|
||||
title = torr.Info().Name
|
||||
}
|
||||
torr.Title = title
|
||||
torr.Poster = poster
|
||||
torr.Data = data
|
||||
}
|
||||
|
||||
if torrDb != nil {
|
||||
torrDb.Title = title
|
||||
torrDb.Poster = poster
|
||||
torrDb.Data = data
|
||||
AddTorrentDB(torrDb)
|
||||
}
|
||||
if torr != nil {
|
||||
return torr
|
||||
} else {
|
||||
return torrDb
|
||||
}
|
||||
return tor
|
||||
}
|
||||
|
||||
func RemTorrent(hashHex string) {
|
||||
@@ -201,14 +217,14 @@ func WriteStatus(w io.Writer) {
|
||||
}
|
||||
|
||||
func Preload(torr *Torrent, index int) {
|
||||
if !sets.BTsets.PreloadBuffer {
|
||||
size := int64(32 * 1024 * 1024)
|
||||
if size > sets.BTsets.CacheSize {
|
||||
size = sets.BTsets.CacheSize
|
||||
}
|
||||
torr.Preload(index, size)
|
||||
} else {
|
||||
size := int64(float32(sets.BTsets.ReaderReadAHead) / 100.0 * float32(sets.BTsets.CacheSize))
|
||||
torr.Preload(index, size)
|
||||
cache := float32(sets.BTsets.CacheSize)
|
||||
preload := float32(sets.BTsets.PreloadCache)
|
||||
size := int64((cache / 100.0) * preload)
|
||||
if size < 32*1024*1024 {
|
||||
size = 32 * 1024 * 1024
|
||||
}
|
||||
if size > sets.BTsets.CacheSize {
|
||||
size = sets.BTsets.CacheSize
|
||||
}
|
||||
torr.Preload(index, size)
|
||||
}
|
||||
|
||||
@@ -121,11 +121,13 @@ func (c *Cache) AdjustRA(readahead int64) {
|
||||
if settings.BTsets.CacheSize == 0 {
|
||||
c.capacity = readahead * 3
|
||||
}
|
||||
c.muReaders.Lock()
|
||||
for r, _ := range c.readers {
|
||||
r.SetReadahead(readahead)
|
||||
if len(c.readers) > 0 {
|
||||
c.muReaders.Lock()
|
||||
for r, _ := range c.readers {
|
||||
r.SetReadahead(readahead)
|
||||
}
|
||||
c.muReaders.Unlock()
|
||||
}
|
||||
c.muReaders.Unlock()
|
||||
}
|
||||
|
||||
func (c *Cache) GetState() *state.CacheState {
|
||||
@@ -194,12 +196,10 @@ func (c *Cache) cleanPieces() {
|
||||
c.removePiece(p)
|
||||
rems--
|
||||
if rems <= 0 {
|
||||
break
|
||||
utils.FreeOSMemGC()
|
||||
return
|
||||
}
|
||||
}
|
||||
if rems <= 0 {
|
||||
utils.FreeOSMemGC()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -83,5 +83,7 @@ func (p *DiskPiece) Release() {
|
||||
p.piece.Size = 0
|
||||
p.piece.Complete = false
|
||||
|
||||
os.Remove(p.name)
|
||||
|
||||
p.piece.cache.torrent.Piece(p.piece.Id).SetPriority(torrent.PiecePriorityNone)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user