diff --git a/assets/components/releases/release.vue b/assets/components/releases/release.vue index 39011b60..14da7b86 100644 --- a/assets/components/releases/release.vue +++ b/assets/components/releases/release.vue @@ -94,7 +94,7 @@ { const release = {}; @@ -20,6 +20,7 @@ function scrapeAll(scenes) { release.actors = query.all('.tour_update_models a', true); release.poster = query.img('.videoPic img'); + release.entity = entity; return release; }); @@ -76,10 +77,21 @@ function scrapeProfile({ query }) { } async function fetchLatest(channel, page = 1) { - const url = `https://pervcity.com/search.php?site[]=${channel.parameters.siteId}&page=${page}`; - const res = await qu.getAll(url, '.videoBlock'); + if (channel.parameters?.siteId) { + const url = `https://pervcity.com/search.php?site[]=${channel.parameters.siteId}&page=${page}`; + const res = await qu.getAll(url, '.videoBlock'); - return res.ok ? scrapeAll(res.items, channel) : res.status; + return res.ok ? scrapeAll(res.items, channel) : res.status; + } + + return null; +} + +async function fetchUpcoming(channel) { + const url = 'https://pervcity.com'; + const res = await qu.getAll(url, '.upcoming .videoBlock'); + + return res.ok ? scrapeAll(res.items, channel.parent) : res.status; } async function fetchScene(url, entity) { @@ -110,4 +122,5 @@ module.exports = { fetchLatest, fetchScene, fetchProfile, + fetchUpcoming, }; diff --git a/src/updates.js b/src/updates.js index 7cb49f39..0a65b9ed 100644 --- a/src/updates.js +++ b/src/updates.js @@ -94,7 +94,10 @@ async function scrapeReleases(scraper, entity, preData, upcoming = false) { return accReleases; } - const latestReleasesWithEntity = latestReleases.map(release => ({ ...release, entity })); // attach entity the release is assigned to when stored + const latestReleasesWithEntity = latestReleases.map(release => ({ + ...release, + entity: release.entity || entity, // allow override + })); // attach entity the release is assigned to when stored const uniqueReleases = argv.redownload ? latestReleasesWithEntity