fileevent

package
v0.30.0 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2025 License: AGPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsEqualCounts

func IsEqualCounts(a, b []int64) bool

IsEqualCounts checks if two slices of int64 have the same elements in the same order. Used for tests only

func NewCounts

func NewCounts() *counts

Types

type Code

type Code int
const (
	NotHandled Code = iota

	// ===== Discovery Events - Assets =====
	// These trigger asset registration in AssetTracker
	DiscoveredImage // Asset discovered (image type)
	DiscoveredVideo // Asset discovered (video type)

	// ===== Discovery Events - Non-Assets =====
	// These are only logged, not tracked
	DiscoveredSidecar     // Sidecar file (.json, .xmp, etc.)
	DiscoveredMetadata    // Metadata file
	DiscoveredUnknown     // Unknown file type
	DiscoveredBanned      // Banned file (e.g., .DS_Store, Thumbs.db)
	DiscoveredUnsupported // Unsupported file format

	// ===== Asset Lifecycle Events - To PROCESSED =====
	UploadedSuccess  // Asset successfully uploaded
	UploadedUpgraded // Server asset upgraded with input

	// ===== Asset Lifecycle Events - To DISCARDED =====
	UploadedServerDuplicate // Server already has this asset
	DiscardedBanned         // Asset with banned filename
	DiscardedUnsupported    // Asset with unsupported format (deprecated, use DiscoveredUnsupported)
	DiscardedFiltered       // Asset filtered out by user settings
	DiscardedLocalDuplicate // Duplicate asset in input
	DiscardedNotSelected    // Asset not selected for processing
	DiscardedServerBetter   // Server has better version of asset

	// ===== Asset Lifecycle Events - To ERROR =====
	ErrorUploadFailed // Upload failed
	ErrorServerError  // Server returned an error
	ErrorFileAccess   // Could not access file
	ErrorIncomplete   // Asset never reached final state

	// ===== Processing Events - Informational =====
	// These don't change asset state
	AnalysisAssociatedMetadata        // Metadata file associated with asset
	AnalysisMissingAssociatedMetadata // Expected metadata file missing
	ProcessedStacked                  // Asset added to stack
	ProcessedAlbumAdded               // Asset added to album
	ProcessedTagged                   // Asset tagged
	ProcessedLivePhoto                // Live photo processed

	// ===== Legacy/Compatibility =====
	// Maintained for backward compatibility
	Uploaded               // Legacy: use UploadedSuccess
	UploadAlbumCreated     // Album created/updated
	UploadAddToAlbum       // Legacy: use ProcessedAlbumAdded
	AnalysisLocalDuplicate // Legacy: use DiscardedLocalDuplicate
	UploadNotSelected      // Legacy: use DiscardedNotSelected
	UploadServerBetter     // Legacy: use DiscardedServerBetter
	Stacked                // Legacy: use ProcessedStacked
	LivePhoto              // Legacy: use ProcessedLivePhoto
	Tagged                 // Legacy: use ProcessedTagged
	Metadata               // Legacy metadata marker
	INFO                   // Generic info message
	Written                // File written to disk
	DiscoveredDiscarded    // Legacy: use specific discard reasons
	DiscoveredUseless      // Legacy: use DiscoveredUnknown or DiscoveredBanned
	Error                  // Generic error

	MaxCode
)

func (Code) String

func (e Code) String() string

type Recorder

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

func NewRecorder

func NewRecorder(l *slog.Logger) *Recorder

func (*Recorder) GenerateEventReport added in v0.30.0

func (r *Recorder) GenerateEventReport() string

GenerateEventReport creates a comprehensive report of all events

func (*Recorder) GetCounts

func (r *Recorder) GetCounts() []int64

func (*Recorder) GetEventCounts added in v0.30.0

func (r *Recorder) GetEventCounts() map[Code]int64

GetEventCounts returns event counts as a map (Code -> count)

func (*Recorder) GetEventSizes added in v0.30.0

func (r *Recorder) GetEventSizes() map[Code]int64

GetEventSizes returns event sizes as a map (Code -> total bytes)

func (*Recorder) Log

func (r *Recorder) Log() *slog.Logger

func (*Recorder) Record

func (r *Recorder) Record(ctx context.Context, code Code, file slog.LogValuer, args ...any)

func (*Recorder) RecordWithSize added in v0.30.0

func (r *Recorder) RecordWithSize(ctx context.Context, code Code, file slog.LogValuer, fileSize int64, args ...any)

func (*Recorder) Report

func (r *Recorder) Report() string

func (*Recorder) SetLogger

func (r *Recorder) SetLogger(l *slog.Logger)

func (*Recorder) TotalAssets

func (r *Recorder) TotalAssets() int64

func (*Recorder) TotalProcessed

func (r *Recorder) TotalProcessed(forcedMissingJSON bool) int64

func (*Recorder) TotalProcessedGP

func (r *Recorder) TotalProcessedGP() int64

Jump to

Keyboard shortcuts

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