amazon prime scrap özelliği eklendi

This commit is contained in:
2025-11-23 16:09:39 +03:00
parent 46d75b64d5
commit fefa6627e9
6 changed files with 988 additions and 28 deletions

View File

@@ -34,6 +34,48 @@ describe('parseNetflixHtml (canlı sayfa)', () => {
},
20000
);
it(
'thumbnail URLsini çıkarır',
() => {
const meta = parseNetflixHtml(liveHtml);
if (meta.thumbnail) {
expect(meta.thumbnail).toContain('nflxso.net');
}
// Thumbnail olmayabilir ama test geçmeli
},
20000
);
it(
'film/dizi açıklamasını (info) çıkarır',
() => {
const meta = parseNetflixHtml(liveHtml);
if (meta.info) {
expect(meta.info).toBeTruthy();
expect(meta.info).not.toContain('Netflix');
expect(meta.info).not.toContain('Fragmanları izleyin');
}
// Info olmayabilir ama varsa boş olmamalı
},
20000
);
it(
'film/dizi türünü (genre) çıkarır',
() => {
const meta = parseNetflixHtml(liveHtml);
if (meta.genre) {
expect(meta.genre).toBeTruthy();
expect(typeof meta.genre).toBe('string');
// Genre mapping test: 'Action' → 'Aksiyon'
['Aksiyon', 'Dram', 'Komedi', 'Fantastik'].includes(meta.genre) ||
['Action', 'Drama', 'Comedy', 'Fantasy'].includes(meta.genre);
}
// Genre olmayabilir ama varsa geçerli bir değer olmalı
},
20000
);
});
describe('scraperNetflix (canlı istek)', () => {

59
tests/prime.test.js Normal file
View File

@@ -0,0 +1,59 @@
import { beforeAll, describe, expect, it } from 'vitest';
import { scraperPrime } from '../src/index.js';
import { parsePrimeHtml } from '../src/parser.js';
const TEST_URL = 'https://www.primevideo.com/-/tr/detail/0NHIN3TGAI9L7VZ45RS52RHUPL/ref=share_ios_movie';
const UA =
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36';
describe('parsePrimeHtml (örnek HTML)', () => {
it('boş veya geçersiz HTML için boş obje döner', () => {
expect(parsePrimeHtml('')).toEqual({});
expect(parsePrimeHtml(null)).toEqual({});
});
it('meta etiketlerinden başlık ve yıl çıkarır', () => {
const html = `
<html>
<head>
<meta property="og:title" content="Little Women | Prime Video">
<meta name="description" content="2020 yapımı bir film | Prime Video">
</head>
</html>
`;
const meta = parsePrimeHtml(html);
expect(meta.name).toBe('Little Women');
});
it('thumbnail ve info alanını çıkarır', () => {
const html = `
<meta property="og:image" content="https://m.media-amazon.com/images/S/pv-target-images/test.jpg">
<meta name="description" content="Louisa May Alcott'ın hikayesi | Prime Video">
`;
const meta = parsePrimeHtml(html);
expect(meta.thumbnail).toBe('https://m.media-amazon.com/images/S/pv-target-images/test.jpg');
expect(meta.info).toBe("Louisa May Alcott'ın hikayesi");
});
it('tür bilgisini normalize eder', () => {
const html = `
<meta itemprop="genre" content="Comedy">
`;
const meta = parsePrimeHtml(html);
expect(meta.genre).toBe('Komedi');
});
});
describe('scraperPrime (canlı istek)', () => {
it(
'normalize edilmiş url, id ve meta bilgilerini döner',
async () => {
const meta = await scraperPrime(TEST_URL, { headless: false, userAgent: UA });
expect(meta.url).toBe('https://www.primevideo.com/detail/0NHIN3TGAI9L7VZ45RS52RHUPL');
expect(meta.id).toBe('0NHIN3TGAI9L7VZ45RS52RHUPL');
expect(meta.name).toBeTruthy();
expect(meta.year).toMatch(/\d{4}/);
},
20000
);
});