forked from DebaucheryLibrarian/traxxx
Changed q get and geta APIs to include status, refactored scrapers. Showing front- and back-cover on movie tiles and release page (fix). Removed icons from main navigation. Returning scenes from Jules Jordan movie scraper.
This commit is contained in:
@@ -10,10 +10,10 @@ const slugUrlMap = {
|
||||
};
|
||||
|
||||
async function getPhotos(albumUrl) {
|
||||
const thumbnails = await geta(albumUrl, '.photo-thumb');
|
||||
const res = await geta(albumUrl, '.photo-thumb');
|
||||
|
||||
return thumbnails
|
||||
? thumbnails.map(({ q }) => q('source').srcset)
|
||||
return res.ok
|
||||
? res.items.map(({ q }) => q('source').srcset)
|
||||
: [];
|
||||
}
|
||||
|
||||
@@ -114,26 +114,26 @@ function scrapeProfile({ q, qa, qi, qu }, _actorName, origin) {
|
||||
|
||||
async function fetchLatest(site, page = 1) {
|
||||
const url = `${site.url}/video/gallery/${(page - 1) * 12}`;
|
||||
const qLatest = await geta(url, '.content-grid-item');
|
||||
const res = await geta(url, '.content-grid-item');
|
||||
|
||||
return qLatest && scrapeAll(qLatest, site);
|
||||
return res.ok ? scrapeAll(res.items, site) : res.status;
|
||||
}
|
||||
|
||||
async function fetchUpcoming(site) {
|
||||
if (site.parameters?.upcoming) {
|
||||
const url = `${site.url}/video/upcoming`;
|
||||
const qUpcoming = await geta(url, '.content-grid-item');
|
||||
const res = await geta(url, '.content-grid-item');
|
||||
|
||||
return qUpcoming && scrapeAll(qUpcoming, site);
|
||||
return res.ok ? scrapeAll(res.items, site) : res.status;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
async function fetchScene(url, site) {
|
||||
const qScene = await get(url);
|
||||
const res = await get(url);
|
||||
|
||||
return qScene && scrapeScene(qScene, url, site);
|
||||
return res.ok ? scrapeScene(res.item, url, site) : res.status;
|
||||
}
|
||||
|
||||
async function fetchProfile(actorName, siteSlug) {
|
||||
@@ -141,15 +141,17 @@ async function fetchProfile(actorName, siteSlug) {
|
||||
const origin = slugUrlMap[siteSlug] || `https://www.${siteSlug}.com`;
|
||||
|
||||
const url = `${origin}/model/alpha/${firstLetter}`;
|
||||
const { qa } = await get(url);
|
||||
const resModels = await get(url);
|
||||
|
||||
const modelPath = qa('.content-grid-item a.title').find(el => slugify(el.textContent) === slugify(actorName));
|
||||
if (!resModels.ok) return resModels.status;
|
||||
|
||||
const modelPath = resModels.item.qa('.content-grid-item a.title').find(el => slugify(el.textContent) === slugify(actorName));
|
||||
|
||||
if (modelPath) {
|
||||
const modelUrl = `${origin}${modelPath}`;
|
||||
const qModel = await get(modelUrl);
|
||||
const resModel = await get(modelUrl);
|
||||
|
||||
if (qModel) return scrapeProfile(qModel, actorName, origin);
|
||||
return resModel.ok ? scrapeProfile(resModel.item, actorName, origin) : resModel.status;
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user