Major Features:
- ✅ Complete TPDB scraper implementation with real API calls
- ✅ Auto-fetch on cache miss: search commands now automatically import from TPDB when not found locally
- ✅ Comprehensive documentation (5 markdown files for Bookstack)
- ✅ Import commands for performers, studios, and scenes
- ✅ Fixed JSON type mismatches (aliases array, studio numeric IDs)
Changes:
1. TPDB Scraper (internal/scraper/tpdb/):
- types.go: Full API response structures with correct types
- PerformerResponse.Aliases: string → []string (TPDB returns array)
- StudioResponse.ID: string → int (TPDB returns numeric IDs)
- SiteInfo.ID: string → int (scenes reference studios by number)
- mapper.go: Maps TPDB responses to internal models
- Converts aliases array to comma-separated string
- Converts numeric studio IDs to strings using strconv.Itoa()
- scraper.go: Real HTTP client with Bearer token auth
- SearchPerformers, SearchStudios, SearchScenes implemented
- GetPerformerByID, GetStudioByID, GetSceneByID implemented
2. CLI Auto-Fetch (cmd/goondex/main.go):
- performer-search: Auto-fetches from TPDB if local DB empty
- studio-search: Auto-fetches from TPDB if local DB empty
- scene-search: Auto-fetches basic metadata (no relationships)
- Graceful handling of missing TPDB_API_KEY
- Import → search again to get local IDs
3. Documentation (docs/):
- INDEX.md: Documentation overview and navigation
- ARCHITECTURE.md: System design, data flow, component diagrams
- DATABASE_SCHEMA.md: Complete schema with relationships and indexes
- CLI_REFERENCE.md: All commands with examples
- TPDB_INTEGRATION.md: API guide, data mapping, best practices
4. Fixes:
- .gitignore: Fixed pattern to allow cmd/goondex/* and cmd/goondexd/*
- README: Updated to reflect TPDB integration and auto-fetch
Testing:
- ✅ performer-search "Riley Reid" - auto-fetched 2 performers, cached
- ✅ studio-search "Brazzers" - auto-fetched 12 studios, cached
- ✅ Aliases now display correctly as comma-separated list
- ✅ Studio IDs properly converted from numeric to string
API Integration:
- Base URL: https://api.theporndb.net
- Authentication: Bearer token via TPDB_API_KEY env var
- Endpoints: /performers, /sites, /scenes
- Rate limiting handled with warnings
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>