metadata

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BackupWorker

type BackupWorker struct {
	// contains filtered or unexported fields
}

func NewBackupWorker

func NewBackupWorker(configGetter config.ConfigGetter) *BackupWorker

func (*BackupWorker) Start

func (w *BackupWorker) Start(ctx context.Context) error

func (*BackupWorker) Stop

func (w *BackupWorker) Stop(ctx context.Context)

type MetadataReader

type MetadataReader struct {
	// contains filtered or unexported fields
}

MetadataReader provides read operations for the virtual filesystem

func NewMetadataReader

func NewMetadataReader(service *MetadataService) *MetadataReader

NewMetadataReader creates a new metadata reader

func (*MetadataReader) GetDirectoryInfo

func (mr *MetadataReader) GetDirectoryInfo(virtualPath string) (fs.FileInfo, error)

GetDirectoryInfo gets information about a real directory using os.Stat

func (*MetadataReader) GetFileMetadata

func (mr *MetadataReader) GetFileMetadata(virtualPath string) (*metapb.FileMetadata, error)

GetFileMetadata gets metadata for a virtual file

func (*MetadataReader) GetFileSegments

func (mr *MetadataReader) GetFileSegments(virtualPath string) ([]*metapb.SegmentData, error)

GetFileSegments retrieves usenet segments for a virtual file

func (*MetadataReader) GetMetadataService

func (mr *MetadataReader) GetMetadataService() *MetadataService

GetMetadataService returns the underlying metadata service

func (*MetadataReader) IsDirectory

func (mr *MetadataReader) IsDirectory(virtualPath string) (bool, error)

IsDirectory checks if a virtual path is a directory

func (*MetadataReader) ListDirectoryContents

func (mr *MetadataReader) ListDirectoryContents(virtualPath string) ([]fs.FileInfo, []*metapb.FileMetadata, error)

ListDirectoryContents lists all contents in a virtual directory path Returns real directories as fs.FileInfo and virtual files as FileMetadata

func (*MetadataReader) PathExists

func (mr *MetadataReader) PathExists(virtualPath string) (bool, error)

PathExists checks if a virtual path exists

type MetadataService

type MetadataService struct {
	// contains filtered or unexported fields
}

MetadataService provides low-level read/write operations for metadata files

func NewMetadataService

func NewMetadataService(rootPath string) *MetadataService

NewMetadataService creates a new metadata service

func (*MetadataService) CalculateSegmentSize

func (ms *MetadataService) CalculateSegmentSize(segments []*metapb.SegmentData) int64

CalculateSegmentSize calculates the total size from segment data

func (*MetadataService) CleanupEmptyDirectories

func (ms *MetadataService) CleanupEmptyDirectories(virtualPath string, protected []string) error

CleanupEmptyDirectories recursively removes empty directories under the given virtual path. Uses a bottom-up approach to ensure parent directories are also removed if they become empty.

func (ms *MetadataService) CleanupOrphanedIDSymlinks(ctx context.Context) (int, error)

CleanupOrphanedIDSymlinks walks the .ids/ directory and removes symlinks whose targets no longer exist. Empty shard directories are cleaned up afterwards. Returns the number of removed symlinks.

func (*MetadataService) CreateDirectory

func (ms *MetadataService) CreateDirectory(name string) error

func (*MetadataService) CreateDirectoryAll

func (ms *MetadataService) CreateDirectoryAll(name string) error

func (*MetadataService) CreateFileMetadata

func (ms *MetadataService) CreateFileMetadata(
	fileSize int64,
	sourceNzbPath string,
	status metapb.FileStatus,
	segmentData []*metapb.SegmentData,
	encryption metapb.Encryption,
	password string,
	salt string,
	aesKey []byte,
	aesIv []byte,
	releaseDate int64,
	par2Files []*metapb.Par2FileReference,
	nzbdavId string,
) *metapb.FileMetadata

CreateFileMetadata creates a new FileMetadata with basic fields

func (*MetadataService) CreateSegmentData

func (ms *MetadataService) CreateSegmentData(startOffset, endOffset int64, messageID string) *metapb.SegmentData

CreateSegmentData creates a new SegmentData with the given parameters

func (*MetadataService) DeleteDirectory

func (ms *MetadataService) DeleteDirectory(virtualPath string) error

DeleteDirectory deletes a metadata directory and all its contents

func (*MetadataService) DeleteFileMetadata

func (ms *MetadataService) DeleteFileMetadata(virtualPath string) error

DeleteFileMetadata deletes a metadata file

func (*MetadataService) DeleteFileMetadataWithSourceNzb

func (ms *MetadataService) DeleteFileMetadataWithSourceNzb(ctx context.Context, virtualPath string, deleteSourceNzb bool) error

DeleteFileMetadataWithSourceNzb deletes a metadata file and optionally its source NZB

func (*MetadataService) DirectoryExists

func (ms *MetadataService) DirectoryExists(virtualPath string) bool

DirectoryExists checks if a metadata directory exists

func (*MetadataService) FileExists

func (ms *MetadataService) FileExists(virtualPath string) bool

FileExists checks if a metadata file exists for the given virtual path

func (*MetadataService) GetMetadataDirectoryPath

func (ms *MetadataService) GetMetadataDirectoryPath(virtualPath string) string

GetMetadataDirectoryPath returns the filesystem path for a metadata directory

func (*MetadataService) GetMetadataFilePath

func (ms *MetadataService) GetMetadataFilePath(virtualPath string) string

GetMetadataFilePath returns the filesystem path for a metadata file

func (*MetadataService) ListDirectory

func (ms *MetadataService) ListDirectory(virtualPath string) ([]string, error)

ListDirectory lists all metadata files in a directory

func (*MetadataService) ListSubdirectories

func (ms *MetadataService) ListSubdirectories(virtualPath string) ([]string, error)

ListSubdirectories lists all subdirectories in a metadata directory

func (*MetadataService) MoveToCorrupted

func (ms *MetadataService) MoveToCorrupted(ctx context.Context, virtualPath string) error

MoveToCorrupted moves a metadata file to a special corrupted directory for safety

func (*MetadataService) ReadFileMetadata

func (ms *MetadataService) ReadFileMetadata(virtualPath string) (*metapb.FileMetadata, error)

ReadFileMetadata reads file metadata from disk

func (ms *MetadataService) RemoveIDSymlink(nzbdavID string) error

RemoveIDSymlink removes an ID-based symlink from the .ids/ sharded directory.

func (*MetadataService) RenameFileMetadata

func (ms *MetadataService) RenameFileMetadata(oldVirtualPath, newVirtualPath string) error

RenameFileMetadata atomically renames a metadata file (and its .id sidecar) from oldVirtualPath to newVirtualPath. Uses os.Rename for atomicity on the same filesystem, falling back to read-write-delete for cross-device moves.

func (*MetadataService) UpdateFileMetadata

func (ms *MetadataService) UpdateFileMetadata(virtualPath string, updateFunc func(*metapb.FileMetadata)) error

UpdateFileMetadata updates the modified timestamp of metadata

func (*MetadataService) UpdateFileStatus

func (ms *MetadataService) UpdateFileStatus(virtualPath string, status metapb.FileStatus) error

UpdateFileStatus updates the status of a file in metadata

func (ms *MetadataService) UpdateIDSymlink(nzbdavID, virtualPath string) error

UpdateIDSymlink creates or updates an ID-based symlink in the .ids/ sharded directory. On Windows, symlinks are not supported and this operation is skipped gracefully.

func (*MetadataService) ValidateSourceNzb

func (ms *MetadataService) ValidateSourceNzb(metadata *metapb.FileMetadata) error

ValidateSourceNzb validates that the source NZB file exists and matches metadata

func (*MetadataService) WalkDirectoryFiles

func (ms *MetadataService) WalkDirectoryFiles(virtualPath string, fn func(fileVirtualPath string, meta *metapb.FileMetadata) error) error

WalkDirectoryFiles walks a metadata directory and calls fn for each file's virtual path and metadata.

func (*MetadataService) WriteFileMetadata

func (ms *MetadataService) WriteFileMetadata(virtualPath string, metadata *metapb.FileMetadata) error

WriteFileMetadata writes file metadata to disk

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL