Try reading rar contents
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
|
||||
"github.com/debridmediamanager/zurg/internal/config"
|
||||
"github.com/debridmediamanager/zurg/internal/fs"
|
||||
"github.com/debridmediamanager/zurg/internal/rar"
|
||||
"github.com/debridmediamanager/zurg/pkg/logutil"
|
||||
"github.com/debridmediamanager/zurg/pkg/realdebrid"
|
||||
mapset "github.com/deckarep/golang-set/v2"
|
||||
@@ -28,6 +29,7 @@ type TorrentManager struct {
|
||||
|
||||
Config config.ConfigInterface
|
||||
api *realdebrid.RealDebrid
|
||||
rarReader *rar.RarReader
|
||||
workerPool *ants.Pool
|
||||
log *logutil.Logger
|
||||
repairLog *logutil.Logger
|
||||
@@ -58,12 +60,13 @@ type TorrentManager struct {
|
||||
// NewTorrentManager creates a new torrent manager
|
||||
// it will fetch all torrents and their info in the background
|
||||
// and store them in-memory and cached in files
|
||||
func NewTorrentManager(cfg config.ConfigInterface, api *realdebrid.RealDebrid, workerPool *ants.Pool, log, repairLog *logutil.Logger) *TorrentManager {
|
||||
func NewTorrentManager(cfg config.ConfigInterface, api *realdebrid.RealDebrid, rarReader *rar.RarReader, workerPool *ants.Pool, log, repairLog *logutil.Logger) *TorrentManager {
|
||||
t := &TorrentManager{
|
||||
requiredVersion: "0.10.0",
|
||||
|
||||
Config: cfg,
|
||||
api: api,
|
||||
rarReader: rarReader,
|
||||
workerPool: workerPool,
|
||||
log: log,
|
||||
repairLog: repairLog,
|
||||
|
||||
@@ -316,6 +316,12 @@ func (t *TorrentManager) assignLinks(torrent *Torrent) bool {
|
||||
if !assigned {
|
||||
// if not assigned and is a rar, likely it was rar'ed by RD
|
||||
if strings.HasSuffix(strings.ToLower(unrestrict.Filename), ".rar") {
|
||||
// t.log.Debugf("Trying to get contents of rar file %s", unrestrict.Filename)
|
||||
// contents, err := t.rarReader.GetRARContents(unrestrict.Download)
|
||||
// if err != nil {
|
||||
// t.repairLog.Warnf("Cannot get contents of rar file %s: %v", unrestrict.Filename, err)
|
||||
// }
|
||||
// t.log.Debugf("contents: %v", contents)
|
||||
rarCount++
|
||||
} else {
|
||||
t.repairLog.Warnf("Cannot assign %s to any file in torrent %s", unrestrict.Filename, t.GetKey(torrent))
|
||||
|
||||
Reference in New Issue
Block a user