Improved Score date handling.

This commit is contained in:
DebaucheryLibrarian 2026-01-16 05:04:56 +01:00
parent 1feb44f95d
commit 5c090c604a
2 changed files with 48 additions and 11 deletions

View File

@ -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;

View File

@ -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());