Adapter Score scraper for Score Videos.
This commit is contained in:
@@ -32,10 +32,9 @@ function scrapeAll(html) {
|
||||
return exa(html, '.container .video').map(({ q, qa, qd, ql }) => {
|
||||
const release = {};
|
||||
|
||||
const linkEl = q('a.i-title');
|
||||
|
||||
release.title = linkEl.textContent.trim();
|
||||
release.title = q('.title, .i-title', true);
|
||||
|
||||
const linkEl = q('a');
|
||||
const url = new URL(linkEl.href);
|
||||
release.url = `${url.origin}${url.pathname}`;
|
||||
|
||||
@@ -44,14 +43,18 @@ function scrapeAll(html) {
|
||||
|
||||
[release.entryId] = url.pathname.split('/').slice(-2);
|
||||
|
||||
release.date = qd('.i-date', 'MMM DD', /\w+ \d{1,2}$/);
|
||||
release.actors = qa('.i-model', true);
|
||||
release.date = qd('.i-date', 'MMM DD', /\w+ \d{1,2}$/)
|
||||
|| qd('.dt-box', 'MMM.DD YYYY');
|
||||
release.actors = qa('.model, .i-model', true);
|
||||
release.duration = ql('.i-amount');
|
||||
|
||||
const posterEl = q('.item-img img');
|
||||
|
||||
if (posterEl) {
|
||||
release.poster = `https:${posterEl.src}`;
|
||||
}
|
||||
|
||||
if (posterEl?.dataset.gifPreview) {
|
||||
release.teaser = {
|
||||
src: `https:${posterEl.dataset.gifPreview}`,
|
||||
};
|
||||
@@ -62,15 +65,15 @@ function scrapeAll(html) {
|
||||
}
|
||||
|
||||
async function scrapeScene(html, url) {
|
||||
const { q, qa, qd, ql, qu, qp, qt } = ex(html, '#videos-page');
|
||||
const { q, qa, qtext, qd, ql, qu, qis, qp, qt } = ex(html, '#videos-page, #content');
|
||||
const release = {};
|
||||
|
||||
[release.entryId] = new URL(url).pathname.split('/').slice(-2);
|
||||
|
||||
release.title = q('#breadcrumb-top + h1', true);
|
||||
release.description = q('.p-desc', true);
|
||||
release.title = q('h2.text-uppercase, h2.title', true);
|
||||
release.description = qtext('.p-desc, .desc');
|
||||
|
||||
release.actors = qa('a[href*=models]', true);
|
||||
release.actors = qa('.value a[href*=models], .value a[href*=performer]', true);
|
||||
release.tags = qa('a[href*=tag]', true);
|
||||
|
||||
const dateEl = qa('.value').find(el => /\w+ \d+\w+, \d{4}/.test(el.textContent));
|
||||
@@ -80,8 +83,13 @@ async function scrapeScene(html, url) {
|
||||
release.duration = ql(durationEl);
|
||||
|
||||
const photosUrl = qu('a[href*=photos]');
|
||||
release.photos = await fetchPhotos(photosUrl);
|
||||
release.poster = qp('video'); // _800.jpg is larger than _xl.jpg in landscape
|
||||
|
||||
if (photosUrl) {
|
||||
release.photos = await fetchPhotos(photosUrl);
|
||||
release.poster = qp('video'); // _800.jpg is larger than _xl.jpg in landscape
|
||||
} else {
|
||||
release.photos = qis('img[src*=ThumbNails]');
|
||||
}
|
||||
|
||||
const trailer = qt();
|
||||
release.trailer = [
|
||||
@@ -154,7 +162,8 @@ function scrapeProfile(html) {
|
||||
}
|
||||
|
||||
async function fetchLatest(site, page = 1) {
|
||||
const url = `${site.url}/big-boob-videos?page=${page}`;
|
||||
const latestPath = site.parameters?.path || '/big-boob-videos';
|
||||
const url = `${site.url}${latestPath}?page=${page}`;
|
||||
const res = await bhttp.get(url);
|
||||
|
||||
if (res.statusCode === 200) {
|
||||
|
||||
Reference in New Issue
Block a user