Goondex/config/metadata.yml
Team Goon 2e747c6660 Initial release: v0.1.0-dev1
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>
2025-11-14 21:37:26 -05:00

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