From 108975774acb8a60afc8f4bde3d1cca5fc4c8fa1 Mon Sep 17 00:00:00 2001 From: YouROK <8yourok8@mail.ru> Date: Thu, 17 Jun 2021 10:10:05 +0300 Subject: [PATCH 1/3] add search folder .tsc for cache --- server/settings/btsets.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/server/settings/btsets.go b/server/settings/btsets.go index 6a167c1..145eccc 100644 --- a/server/settings/btsets.go +++ b/server/settings/btsets.go @@ -2,6 +2,10 @@ package settings import ( "encoding/json" + "io" + "io/fs" + "path/filepath" + "strings" "server/log" ) @@ -62,6 +66,23 @@ func SetBTSets(sets *BTSets) { if sets.TorrentsSavePath == "" { sets.UseDisk = false + } else if sets.UseDisk { + BTsets = sets + + go filepath.WalkDir(sets.TorrentsSavePath, func(path string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + if d.IsDir() && strings.ToLower(d.Name()) == ".tsc" { + BTsets.TorrentsSavePath = path + log.TLogln("Find directory \"" + BTsets.TorrentsSavePath + "\", use as cache dir") + return io.EOF + } + if d.IsDir() && strings.HasPrefix(d.Name(), ".") { + return filepath.SkipDir + } + return nil + }) } BTsets = sets From c31c3183214107fbbc8aefcd9f5c41bf05e40bdb Mon Sep 17 00:00:00 2001 From: YouROK <8yourok8@mail.ru> Date: Thu, 17 Jun 2021 10:57:28 +0300 Subject: [PATCH 2/3] set torrent name if empty title --- server/torr/apihelper.go | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/server/torr/apihelper.go b/server/torr/apihelper.go index 5229045..65cb0ea 100644 --- a/server/torr/apihelper.go +++ b/server/torr/apihelper.go @@ -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) { From 0be72ac2ba9e0ed4f524914a541cb4cd2d8d4501 Mon Sep 17 00:00:00 2001 From: YouROK <8yourok8@mail.ru> Date: Thu, 17 Jun 2021 11:16:30 +0300 Subject: [PATCH 3/3] set torrent name if empty title --- server/torr/storage/torrstor/cache.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/torr/storage/torrstor/cache.go b/server/torr/storage/torrstor/cache.go index a2258d5..a480ca8 100644 --- a/server/torr/storage/torrstor/cache.go +++ b/server/torr/storage/torrstor/cache.go @@ -194,12 +194,10 @@ func (c *Cache) cleanPieces() { c.removePiece(p) rems-- if rems <= 0 { - break + utils.FreeOSMemGC() + return } } - if rems <= 0 { - utils.FreeOSMemGC() - } } }