Improve result modal and Envato previews
build-push / docker (push) Successful in 4m26s

This commit is contained in:
AI Assistant
2026-03-16 11:57:12 +09:00
parent 8101f17f5b
commit 45ff5b860c
7 changed files with 167 additions and 16 deletions
+29 -3
View File
@@ -25,7 +25,7 @@
- Upload / direct download flow is implemented and broadly usable.
- Search is implemented end-to-end and now refactored into source-specific collectors.
- Search remains the main unstable subsystem.
- Envato metadata and preview extraction are much stronger than before.
- Envato metadata and preview extraction are much stronger than before, including additional hydration-data preview fallback.
- Artgrid metadata fidelity is improved, but stable public hover-video preview extraction is still not solved.
- Frontend now logs more useful API and debug information than earlier versions.
- A local self-test workflow now exists and should be run before container builds or pushes.
@@ -182,10 +182,13 @@
- detach source on `mouseleave`
- Added in-app result viewer modal for search results:
- results now open in a modal instead of directly opening a new tab
- modal shows embedded site iframe, external open button, source summary, and full AI note
- modal now prefers internal preview media over embedded third-party iframes to avoid embed blocking
- external open button remains available
- Google Video results can now jump directly into the existing direct-download preview / crop flow from the result viewer
- Gemini reason generation is now intended to be Korean-first for readability
- Gemini Vision evaluation now covers all ranked results instead of only a top subset
- Search results now prioritize AI note text visually ahead of source summary
- Search query order and final top results now include light randomness so repeated searches are less static
## Current Features Implemented
- [x] Project folder structure
@@ -212,7 +215,7 @@
## Important Current Constraints / Known Problems
- Search backend quality is still the most fragile subsystem.
- Search relevance is still heuristic-heavy and not yet benchmarked against a durable real-query set.
- Embedded result viewer uses an iframe, so some third-party sites may still block embedding with `X-Frame-Options` / CSP.
- Embedded third-party result viewing is no longer relied on because many providers block iframe embedding with `X-Frame-Options` / CSP.
- Artgrid hover-video preview is still partial / unresolved:
- provided Artgrid HTML snapshots and downloaded asset bundles did not expose a stable public preview mp4/m3u8 URL
- public HTML often only exposes title / description / thumbnail / canonical URL
@@ -251,6 +254,29 @@
- promise rejections
- backend debug broadcasts
## Recent Change Log
- Date: `2026-03-16`
- What changed:
- Envato preview extraction now also inspects `INITIAL_HYDRATION_DATA` when direct page meta / JSON-LD preview URLs are missing.
- Search result cards and result modal now surface AI note before source summary text.
- Google Video direct download action moved into the AI note area and now seeds Zone C input before opening the shared preview/download modal.
- Result modal no longer depends on third-party iframe embedding and instead shows internal preview media plus external-open fallback.
- Search flow now shuffles collector query order and lightly randomizes the top merged results to reduce identical repeated outputs.
- Why it changed:
- Some Envato items still missed preview URLs.
- Third-party iframe embedding was failing for blocked sites and creating a poor modal experience.
- The user wanted AI note to be the primary explanatory text and Google Video download action to be more obvious.
- Repeated searches returning the same ordering made the discovery experience feel too static.
- How it was verified:
- `go test ./...`
- `python3 -m py_compile worker/downloader.py scripts/mock_searxng.py`
- `bash scripts/selftest.sh`
- added unit coverage for Envato hydration preview extraction
- What is still risky or incomplete:
- Envato hydration structure could change again, so this fallback is still heuristic.
- Full browser-level validation of the revised result modal and button placement was not fully reproducible in this environment.
- Search randomness currently changes ordering and query traversal, but does not guarantee materially different source pools if upstream SearXNG returns a narrow candidate set.
## Current Environment Variables
- `APP_ROOT`
- `APP_ADDR`