package dav import ( "context" "fmt" "github.com/debridmediamanager/zurg/internal/config" "github.com/debridmediamanager/zurg/internal/torrent" ) func HandleDeleteTorrent(directory, torrentName string, torMgr *torrent.TorrentManager) error { torrents, ok := torMgr.DirectoryMap.Get(directory) if !ok { return fmt.Errorf("cannot find directory %s", directory) } if !torrents.Has(torrentName) { return fmt.Errorf("cannot find torrent %s", torrentName) } torMgr.Delete(torrentName, true) return nil } func HandleDeleteFile(directory, torrentName, fileName string, torMgr *torrent.TorrentManager) error { torrents, ok := torMgr.DirectoryMap.Get(directory) if !ok { return fmt.Errorf("cannot find directory %s", directory) } torrent, ok := torrents.Get(torrentName) if !ok { return fmt.Errorf("cannot find torrent %s", torrentName) } file, ok := torrent.SelectedFiles.Get(fileName) if !ok || file.State.Is("deleted_file") { return fmt.Errorf("cannot find file %s", fileName) } dirCfg := torMgr.Config.(*config.ZurgConfigV1).GetDirectoryConfig(directory) if dirCfg.OnlyShowTheBiggestFile { torMgr.Delete(torrentName, true) return nil } if err := file.State.Event(context.Background(), "delete_file"); err != nil { return fmt.Errorf("cannot delete file %s: %v", fileName, err) } if torMgr.CheckDeletedStatus(torrent) { torMgr.Delete(torrentName, true) } return nil }