Commit Graph

18 Commits

Author SHA1 Message Date
Team Goon
d9048db660 v0.1.0-dev3: Complete TPDB metadata with duplicate prevention
This release adds comprehensive metadata support and fixes the duplicate
performer issue.

MAJOR FIXES:
 Duplicate Prevention
   - Added UNIQUE(source, source_id) constraint to performers table
   - ON CONFLICT DO UPDATE in performer store
   - No more duplicate Riley Reid entries!

 Comprehensive TPDB Metadata
   - Extended Performer model with ALL TPDB fields
   - Physical: height, weight, measurements, cup size, eye/hair color
   - Personal: birthday, astrology, birthplace, ethnicity, nationality
   - Body: tattoos, piercings, boob job status
   - Career: start/end years, active status
   - Added PerformerExtras nested struct for TPDB "extras" object
   - Parse weight/height strings ("49kg" -> 49, "160cm" -> 160)
   - Handle British spelling (hair_colour, eye_colour)

 Enriched Import
   - Auto-fetch full performer details via GetPerformerByID
   - Search results now enriched with complete metadata
   - UUID + numeric TPDB ID both stored

 Enhanced CLI Output
   - Formatted display with all available stats
   - Height shown in cm and feet/inches
   - Weight shown in kg and lbs
   - Organized sections (IDs, Personal, Physical, Bio, Media)
   - Beautiful separator bars

TECHNICAL DETAILS:
- Schema: 25+ new performer fields with proper types
- Types: PerformerExtras struct for nested TPDB response
- Mapper: String parsing for "160cm", "49kg" format
- Store: Full field support in Create/Search/GetByID
- Display: Conditional rendering of all available data

TESTING:
 Riley Reid import: All 25+ fields populated correctly
 Duplicate prevention: Second import updates existing record
 Broad search ("riley"): Only 2 unique performers
 Data accuracy: Matches theporndb.net/performers/riley-reid

Database now captures:
- UUID: 26d101c0-1e23-4e1f-ac12-8c30e0e2f451
- TPDB ID: 83047
- Birthday: 1991-07-09
- Height: 160cm (5'3")
- Weight: 49kg (108lb)
- Measurements: 32A-24-34
- All tattoos, piercings, career info, and full bio

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 11:50:40 -05:00
Team Goon
65af261fe5 Anonymize documentation for discretion
- Removed specific git clone URL from README
- Removed example import path with repository details
- Removed issues tracker URL
- Maintained Go import paths (required for builds)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 22:06:56 -05:00
Team Goon
f7d82cd207 v0.1.0-dev2: Full TPDB integration with auto-fetch and comprehensive docs
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>
2025-11-14 22:04:23 -05:00
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
Team Goon
5edafa8ae3 v0.3.5-r4: restore search-performer, fix tpdb_bridge import, note StashDB API limitation 2025-11-08 15:44:09 -05:00
Team Goon
a750d1b436 Bump version to v0.3.5-r3 (TPDB enrichment & StashDB integration prep) 2025-11-08 11:27:58 -05:00
Team Goon
91feb27d8e v0.3.5-r2: Added --json flag and expanded performer search fields (age, gender icon, country flag, physical attributes) 2025-11-08 11:17:31 -05:00
Team Goon
c6b5ca4cb5 add performer schema validator and template 2025-11-07 07:51:11 -05:00
Team Goon
f830dbf408 v0.3.5-r1: stabilized Fish CLI verification (no errors) 2025-11-07 07:43:04 -05:00
Team Goon
3d46672c6e v0.3.5-r1: stabilized Fish CLI verification (no errors) 2025-11-07 07:40:28 -05:00
Team Goon
aebab346aa v0.3.5: unified Fish CLI integration (stable) 2025-11-06 19:06:31 -05:00
Team Goon
7834f7e7d8 docs: synchronize v0.3.4 documentation set (CLI, architecture, galleries, changelog, readme) 2025-11-06 17:33:06 -05:00
Team Goon
35142587c5 v0.3.4-docs-update: finalized documentation suite and version file 2025-11-06 14:29:21 -05:00
Team Goon
89027acd21 docs: add v0.3.3 changelog for stable CLI alias + import fixes 2025-11-06 11:16:48 -05:00
Team Goon
1bc2b5c42a fix: stabilize import paths and CLI alias system 2025-11-06 11:14:40 -05:00
Team Goon
1aa4818ed4 fix: stabilize import paths and CLI alias system 2025-11-06 11:14:26 -05:00
Team Goon
24c56d2221 docs: update changelog for v0.3.2-rebuild and Goondex rename 2025-11-06 10:50:15 -05:00
Team Goon
48592148fc Reinitialize Goondex v0.3.2 - fresh push from local clean copy 2025-11-06 10:24:24 -05:00