Documentation
¶
Overview ¶
Package db provides database access for archive analysis cache.
Package db provides database access for media metadata.
Index ¶
- Constants
- func AddMediaEntry(databases []*sql.DB, path string, size int64, duration float64, status int)
- func AddMediaEntryWithDimensions(databases []*sql.DB, path string, size int64, duration float64, ...)
- func BeginImmediate(db *sql.DB) (*sql.Tx, error)
- func BulkMarkOptimizedExtensions(databases []*sql.DB)
- func BulkSetArchiveCache(db *sql.DB, entries []ArchiveCacheEntry) error
- func Connect(dbPath string) (*sql.DB, error)
- func ConnectWithInit(dbPath string) (*sql.DB, string, error)
- func DatabaseExists(path string) bool
- func DeleteArchiveCache(db *sql.DB, path string) error
- func InitArchiveCache(db *sql.DB) error
- func IsDatabaseDirectory(path string) bool
- func IsDatabaseFile(path string) bool
- func MarkBroken(databases []*sql.DB, path string)
- func MarkDeleted(databases []*sql.DB, path string)
- func MarkProcessingError(databases []*sql.DB, path string)
- func MarkShrinked(databases []*sql.DB, path string, status int)
- func MarkSkipped(databases []*sql.DB, path string)
- func MarkSuccess(databases []*sql.DB, path string)
- func MarkTooLarge(databases []*sql.DB, path string)
- func MarkUnplayable(databases []*sql.DB, path string)
- func ResolveDatabasePath(path string) (string, error)
- func SetArchiveCache(db *sql.DB, entry *ArchiveCacheEntry) error
- func UpdateMedia(databases []*sql.DB, oldPath, newPath string, newSize int64, duration float64, ...)
- type ArchiveCacheEntry
- type MediaRecord
Constants ¶
const ( ShrinkStatusNotProcessed = 0 // File has not been processed yet ShrinkStatusSuccess = 1 // Successfully processed and saved space ShrinkStatusTooLarge = 2 // Transcoded file was larger than original (kept original) ShrinkStatusUnplayable = 3 // File was unplayable/corrupt ShrinkStatusError = 5 // Processing error (file-specific, not environment) ShrinkStatusSkipped = 6 // Skipped (no savings, already optimized, etc.) ShrinkStatusBroken = 7 // File is broken (moved to broken directory) )
ShrinkStatus codes for tracking processing outcomes 0 = not processed, 1 = success, >1 = various failure/skip states
Variables ¶
This section is empty.
Functions ¶
func AddMediaEntry ¶
AddMediaEntry adds a new media entry to the database with a specific status
func AddMediaEntryWithDimensions ¶ added in v0.0.7
func AddMediaEntryWithDimensions(databases []*sql.DB, path string, size int64, duration float64, width, height int, status int)
AddMediaEntryWithDimensions adds a new media entry to the database with dimensions and status
func BeginImmediate ¶ added in v0.0.6
BeginImmediate starts a new transaction with IMMEDIATE mode. This acquires a write lock immediately, respecting the busy_timeout. Use this instead of db.Begin() to avoid SQLITE_BUSY errors from deferred lock upgrades.
func BulkMarkOptimizedExtensions ¶ added in v0.0.3
BulkMarkOptimizedExtensions marks files with already-optimized extensions as shrinked
func BulkSetArchiveCache ¶ added in v0.0.15
func BulkSetArchiveCache(db *sql.DB, entries []ArchiveCacheEntry) error
BulkSetArchiveCache stores multiple cache entries in a single transaction
func ConnectWithInit ¶
ConnectWithInit connects to a SQLite database and validates the schema
func DatabaseExists ¶
DatabaseExists checks if a database file exists and is valid
func DeleteArchiveCache ¶ added in v0.0.15
DeleteArchiveCache removes a cache entry for a specific archive
func InitArchiveCache ¶ added in v0.0.15
InitArchiveCache creates the archive_cache table if it doesn't exist
func IsDatabaseDirectory ¶
IsDatabaseDirectory checks if a path is a directory (not a database file)
func IsDatabaseFile ¶
IsDatabaseFile checks if a path is a SQLite database file
func MarkBroken ¶ added in v0.0.6
MarkBroken marks a file as broken (moved to broken directory)
func MarkDeleted ¶
MarkDeleted marks a file as deleted in all provided databases
func MarkProcessingError ¶ added in v0.0.6
MarkProcessingError marks a file as having a processing error
func MarkShrinked ¶
MarkShrinked marks a file as shrinked in the database with the given status code
func MarkSkipped ¶ added in v0.0.6
MarkSkipped marks a file as skipped (no savings, already optimized, etc.)
func MarkSuccess ¶ added in v0.0.6
MarkSuccess marks a file as successfully processed
func MarkTooLarge ¶ added in v0.0.6
MarkTooLarge marks a file as processed but result was larger than original
func MarkUnplayable ¶ added in v0.0.6
MarkUnplayable marks a file as unplayable/corrupt
func ResolveDatabasePath ¶
ResolveDatabasePath resolves a database path to an absolute path
func SetArchiveCache ¶ added in v0.0.15
func SetArchiveCache(db *sql.DB, entry *ArchiveCacheEntry) error
SetArchiveCache stores or updates archive analysis results in the cache
Types ¶
type ArchiveCacheEntry ¶ added in v0.0.15
type ArchiveCacheEntry struct {
Path string
TotalArchiveSize int64
FutureSize int64
ProcessingTime int
HasProcessable bool
IsBroken bool
PartFiles string // JSON-encoded list of part file paths
}
ArchiveCacheEntry represents a cached archive analysis result
func GetArchiveCache ¶ added in v0.0.15
func GetArchiveCache(db *sql.DB, path string) (*ArchiveCacheEntry, error)
GetArchiveCache retrieves cached analysis results for an archive
type MediaRecord ¶
type MediaRecord struct {
Path string
VideoCodecs string
AudioCodecs string
SubtitleCodecs string
MediaType string
Size int64
Duration float64
VideoCount int
AudioCount int
Width int
Height int
IsShrinked int // Status code: 0=not processed, 1=success, >1=various states
}
MediaRecord represents a row in the media table
func LoadMediaFromDB ¶
func LoadMediaFromDB(db *sql.DB, forceShrink bool, videoOnly, audioOnly, imageOnly, textOnly bool) ([]MediaRecord, error)
LoadMediaFromDB loads all processable media from a database