5 Commits

Author SHA1 Message Date
renjue
888936d6b8 Avoid automatic HDHive unlock on detail page visits.
Keep resource listing read-only on media detail requests and defer unlock calls to explicit user ingest actions, while retaining cached fallback behavior for upstream rate limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 17:58:03 +08:00
renjue
9368b5d80c Fix HDHive response unwrapping for resources and unlock data.
Parse nested openapi envelopes from HDHive search/unlock endpoints so resource lists and links are extracted from inner data instead of incorrectly falling back to empty arrays.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 17:49:35 +08:00
renjue
91a37b2f18 Fail fast when HDHive API returns business errors.
Treat success=false responses from HDHive search/unlock endpoints as explicit service errors so missing API keys or auth issues are surfaced instead of silently returning empty resources.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 17:44:43 +08:00
renjue
e6407094bd Improve media detail UX and preserve search context.
Render structured media details instead of raw JSON, keep search state when navigating back from detail, and surface HDHive link validation and fallback resource-page links for clearer troubleshooting.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 17:37:48 +08:00
renjue
82581d2949 Implement full media crawler workflow with Flask backend and Vue frontend.
Add TMDB search and media detail pages, HDHive resource ingestion flow, unified error handling, Docker single-container runtime, and project docs/config updates for local deployment.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 16:16:18 +08:00