Try reading rar contents

This commit is contained in:
Ben Sarmiento
2024-05-27 05:20:40 +02:00
parent de5cf68841
commit fb37fd69e1
6 changed files with 89 additions and 1 deletions

View File

@@ -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,

View File

@@ -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))