diff --git a/src/parser.js b/src/parser.js index f0b759b..2844388 100644 --- a/src/parser.js +++ b/src/parser.js @@ -444,6 +444,52 @@ function extractPrimeYear($, html) { * Extract thumbnail from Amazon Prime page */ function extractPrimeThumbnail($, html) { + // 1. Ana hero background'daki resmi al (style="aspect-ratio:16/9" div'indeki ilk resim) + const heroMatch = html.match(/]*data-automation-id="hero-background"[^>]*>[\s\S]*?]*src="([^"]+)"/); + if (heroMatch && heroMatch[1]) { + const imageUrl = heroMatch[1]; + if (isValidPrimeThumbnail(imageUrl)) { + return imageUrl; + } + } + + // 2. data-testid="base-image" ve style="aspect-ratio:16/9" kombinasyonu + const baseAspectMatch = html.match(/style="aspect-ratio:16\/9"[^>]*>[\s\S]*?]*data-testid="base-image"[^>]*src="([^"]+)"/); + if (baseAspectMatch && baseAspectMatch[1]) { + const imageUrl = baseAspectMatch[1]; + if (isValidPrimeThumbnail(imageUrl)) { + return imageUrl; + } + } + + // 3. İlk loading="eager" olan resmi al (ana hero resmi) + const eagerImageMatch = html.match(/]*loading="eager"[^>]*src="([^"]+)"/); + if (eagerImageMatch && eagerImageMatch[1]) { + const imageUrl = eagerImageMatch[1]; + if (isValidPrimeThumbnail(imageUrl)) { + return imageUrl; + } + } + + // 4. İlk data-testid="base-image" olan resmi al + const baseImageMatch = html.match(/]*data-testid="base-image"[^>]*src="([^"]+)"/); + if (baseImageMatch && baseImageMatch[1]) { + const imageUrl = baseImageMatch[1]; + if (isValidPrimeThumbnail(imageUrl)) { + return imageUrl; + } + } + + // 5. _SX1080_FMjpg_ formatındaki en yüksek kaliteli resmi ara + const highQualityMatch = html.match(/(https:\/\/m\.media-amazon\.com\/images\/S\/pv-target-images\/[a-f0-9]+\._SX1080_FMjpg_\.jpg)/); + if (highQualityMatch && highQualityMatch[1]) { + const imageUrl = highQualityMatch[1]; + if (isValidPrimeThumbnail(imageUrl)) { + return imageUrl; + } + } + + // 6. En son fallback olarak meta tag'lerini kullan for (const selector of PRIME_THUMBNAIL_SELECTORS) { const imageUrl = $(selector).attr('content') || $(selector).attr('src'); if (imageUrl && isValidPrimeThumbnail(imageUrl)) {