feat(share): refactor page and enhance thumbnail extraction

- Extract 8 reusable components from monolithic share page
- Add LLM health indicator with 30s polling
- Implement stealth thumbnail extraction with 4-method cascade
- Integrate real-time thumbnail preview component
- Reduce share page from 306 to ~140 lines
- Add comprehensive outcome documentation

Components:
- UrlInputSection: URL input and extraction trigger
- ProgressIndicator: Loading state display
- ExtractedTextViewer: Collapsible text preview
- RecipeCard: Recipe display with Tandoor integration
- ErrorState: Error handling UI
- LogViewer: System logs with color coding
- LlmHealthIndicator: LLM status with polling
- ThumbnailPreview: Real-time thumbnail display

Thumbnail Methods:
1. Meta tag extraction (og:image, twitter:image)
2. Video poster attribute
3. Instagram embedded JSON data
4. Screenshot fallback

Stories Completed:
- Story 1: Component extraction and refactoring
- Story 2: LLM health status indicator
- Story 3: Enhanced stealth thumbnail extraction
- Story 4: Thumbnail preview integration

Closes: RefactorSharePageAndEnhanceThumbnails
This commit is contained in:
Giancarmine Salucci
2025-12-21 04:18:38 +01:00
parent 44823c365f
commit 7e4d82de8d
13 changed files with 1890 additions and 310 deletions

View File

@@ -5,7 +5,7 @@
"value": "SDRORLyWEsWWty2ZoVGdER",
"domain": ".instagram.com",
"path": "/",
"expires": 1800844170.041161,
"expires": 1800846591.249928,
"httpOnly": false,
"secure": true,
"sameSite": "Lax"
@@ -45,7 +45,7 @@
"value": "59661903731",
"domain": ".instagram.com",
"path": "/",
"expires": 1774060170.041253,
"expires": 1774062591.25003,
"httpOnly": false,
"secure": true,
"sameSite": "None"
@@ -55,27 +55,27 @@
"value": "1280x720",
"domain": ".instagram.com",
"path": "/",
"expires": 1766888970,
"expires": 1766891391,
"httpOnly": false,
"secure": true,
"sameSite": "Lax"
},
{
"name": "sessionid",
"value": "59661903731%3AbekaIlo4nn7x2n%3A29%3AAYhNsbfhqZQLxT1uyB7NobbpaGHVjXMMJ9UbWNXy2Q",
"name": "rur",
"value": "\"CLN\\05459661903731\\0541797822590:01fead5659017d4efdfdc9bb90a2cf855f93490046a238de613e340be499e36e5962d8bb\"",
"domain": ".instagram.com",
"path": "/",
"expires": 1797818681.825308,
"expires": -1,
"httpOnly": true,
"secure": true,
"sameSite": "Lax"
},
{
"name": "rur",
"value": "\"CLN\\05459661903731\\0541797820170:01fe4d06c032b2dd69a9371e780f6df9e7e3f17ddb2a68bcd030ca4ae9cbb7966e80fd2d\"",
"name": "sessionid",
"value": "59661903731%3AbekaIlo4nn7x2n%3A29%3AAYig82sWcnm2bGaQlry72PN7OrhFZ4YYZt4_qM78dA",
"domain": ".instagram.com",
"path": "/",
"expires": -1,
"expires": 1797822591.250111,
"httpOnly": true,
"secure": true,
"sameSite": "Lax"
@@ -87,19 +87,15 @@
"localStorage": [
{
"name": "chatd-deviceid",
"value": "8e16ee41-8d6a-4ad5-a954-6f0f2f7e8658"
"value": "60986038-5bc5-49ed-80c4-d723c6d5ea59"
},
{
"name": "hb_timestamp",
"value": "1766282682614"
"value": "1766286591975"
},
{
"name": "IGSession",
"value": "6m2tlb:1766285970158"
},
{
"name": "mutex_polaris_banzai",
"value": "63u12u:1766284171158"
"value": "6m2tlb:1766288392093"
},
{
"name": "pixel_fire_ts",
@@ -107,20 +103,16 @@
},
{
"name": "signal_flush_timestamp",
"value": "1766282682631"
"value": "1766286592008"
},
{
"name": "Session",
"value": "dcug3n:1766284205158"
"value": "0c19f1:1766286627093"
},
{
"name": "has_interop_upgraded",
"value": "{\"lastCheckedAt\":1766279008975,\"status\":false}"
},
{
"name": "mutex_banzai",
"value": "63u12u:1766284171158"
},
{
"name": "banzai:last_storage_flush",
"value": "1766279009540.7998"