Clean slate initialization of Goondex - a fast, local-first media indexer. Features: - SQLite database with WAL mode and foreign keys - Full schema for performers, studios, scenes, and tags - Many-to-many relationships via junction tables - CRUD stores for all entities with search capabilities - CLI with performer/studio/scene search commands - Pluggable scraper architecture with registry - TPDB client stub (ready for implementation) - Configuration system via YAML files - Comprehensive .gitignore and documentation Architecture: - cmd/goondex: CLI application with Cobra - cmd/goondexd: Daemon placeholder for v0.2.0 - internal/db: Database layer with stores - internal/model: Clean data models - internal/scraper: Scraper interface and TPDB client - config/: YAML configuration templates Database schema includes indexes on common query fields and uses RFC3339 timestamps for consistency. Built and tested successfully with Go 1.25.4. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
44 lines
1.1 KiB
YAML
44 lines
1.1 KiB
YAML
# Metadata Resolution Configuration
|
|
# Defines how fields are merged from external sources into local DB
|
|
|
|
defaults:
|
|
setCoverImage: true
|
|
setOrganized: true
|
|
includeMalePerformers: true
|
|
skipMultipleMatches: true
|
|
skipMultipleMatchesTag: null # optional tag ID to mark skipped items
|
|
skipSingleNamePerformers: false
|
|
skipSingleNamePerformerTag: null # optional tag ID
|
|
|
|
# Field strategies: IGNORE | MERGE | OVERWRITE
|
|
fieldOptions:
|
|
- field: "title"
|
|
strategy: "MERGE"
|
|
- field: "date"
|
|
strategy: "MERGE"
|
|
- field: "details"
|
|
strategy: "MERGE"
|
|
- field: "url"
|
|
strategy: "MERGE"
|
|
- field: "director"
|
|
strategy: "MERGE"
|
|
- field: "code"
|
|
strategy: "MERGE"
|
|
- field: "performers"
|
|
strategy: "MERGE"
|
|
createMissing: true
|
|
- field: "tags"
|
|
strategy: "MERGE"
|
|
createMissing: true
|
|
- field: "studio"
|
|
strategy: "MERGE"
|
|
createMissing: true
|
|
|
|
# Per-source overrides
|
|
overrides:
|
|
tpdb:
|
|
skipSingleNamePerformers: true
|
|
skipSingleNamePerformerTag: null
|
|
ae:
|
|
setCoverImage: false
|