Improved Score date handling.
This commit is contained in:
parent
1feb44f95d
commit
5c090c604a
|
|
@ -158,7 +158,7 @@ async function scrapeRelease(baseRelease, entitiesByHostname, type = 'scene') {
|
||||||
parameters: getRecursiveParameters(entity),
|
parameters: getRecursiveParameters(entity),
|
||||||
};
|
};
|
||||||
|
|
||||||
logger.debug(`Memory usage before: ${process.memoryUsage.rss() / 1000000} MB (${baseRelease.url})`);
|
// logger.debug(`Memory usage before: ${process.memoryUsage.rss() / 1000000} MB (${baseRelease.url})`);
|
||||||
|
|
||||||
const rawScrapedRelease = type === 'scene'
|
const rawScrapedRelease = type === 'scene'
|
||||||
? await fetchScene(layoutScraper, baseRelease.url, entity, baseRelease, options)
|
? await fetchScene(layoutScraper, baseRelease.url, entity, baseRelease, options)
|
||||||
|
|
@ -179,7 +179,7 @@ async function scrapeRelease(baseRelease, entitiesByHostname, type = 'scene') {
|
||||||
|
|
||||||
await waitImmediate;
|
await waitImmediate;
|
||||||
|
|
||||||
logger.debug(`Memory usage after: ${process.memoryUsage.rss() / 1000000} MB (${baseRelease.url})`);
|
// logger.debug(`Memory usage after: ${process.memoryUsage.rss() / 1000000} MB (${baseRelease.url})`);
|
||||||
|
|
||||||
const scrapedRelease = rawScrapedRelease?.scene || rawScrapedRelease;
|
const scrapedRelease = rawScrapedRelease?.scene || rawScrapedRelease;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,49 @@ function resizeSrc(src) {
|
||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function deriveDate(query) {
|
||||||
|
const now = new Date();
|
||||||
|
|
||||||
|
// Nov. 12th
|
||||||
|
const dateMY = query.date('.i-date', 'MMM. YYYY', { match: /(\w+\.? \d{4})/ });
|
||||||
|
|
||||||
|
if (dateMY) {
|
||||||
|
return {
|
||||||
|
date: dateMY,
|
||||||
|
precision: 'month',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const dateMDo = query.date('.i-date', 'MMM. Do', { match: /(\w+\.? \d{1,2}\w+)/ });
|
||||||
|
|
||||||
|
if (dateMDo) {
|
||||||
|
if (dateMDo > now) {
|
||||||
|
dateMDo.setFullYear(now.getFullYear() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
date: dateMDo,
|
||||||
|
precision: 'day',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const dateAgo = query.dateAgo('.i-date');
|
||||||
|
|
||||||
|
if (dateAgo) {
|
||||||
|
return {
|
||||||
|
date: dateAgo.date,
|
||||||
|
precision: dateAgo.precision === 'week' // not much use for weekly precision
|
||||||
|
? 'month'
|
||||||
|
: dateAgo.precision,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
date: null,
|
||||||
|
precision: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function scrapeAll(scenes, channel, parameters) {
|
function scrapeAll(scenes, channel, parameters) {
|
||||||
return scenes.map(({ query }) => {
|
return scenes.map(({ query }) => {
|
||||||
const release = {};
|
const release = {};
|
||||||
|
|
@ -32,16 +75,10 @@ function scrapeAll(scenes, channel, parameters) {
|
||||||
release.title = query.content('a.i-title, h2.i-title');
|
release.title = query.content('a.i-title, h2.i-title');
|
||||||
release.duration = query.duration('.time-ol');
|
release.duration = query.duration('.time-ol');
|
||||||
|
|
||||||
release.date = query.date('.i-date', ['MMM. Do', 'MMM. YYYY'], { match: /(\w+\.? \d{1,2}\w+)|(\w+\.? \d{4})/ });
|
const { date, precision } = deriveDate(query);
|
||||||
|
|
||||||
if (!release.date) {
|
release.date = date;
|
||||||
const date = query.dateAgo('.i-date');
|
release.datePrecision = precision;
|
||||||
|
|
||||||
if (date) {
|
|
||||||
release.date = date.date;
|
|
||||||
release.datePrecision = date.precision === 'week' ? 'month' : date.precision;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
release.actors = query.content('.i-model').split(',').map((actor) => actor.trim());
|
release.actors = query.content('.i-model').split(',').map((actor) => actor.trim());
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue