Modularized release component between movie and scene. Added Kink Classics channel.

This commit is contained in:
DebaucheryLibrarian
2020-08-12 03:30:20 +02:00
parent 40aed1086f
commit 5cabeed19d
136 changed files with 610 additions and 361 deletions

View File

@@ -49,15 +49,15 @@ async function init() {
}
if (argv.save) {
if (deepScenes.length > 0 || deepMovieScenes.length > 0) {
await storeScenes(deepScenes || []);
}
if (deepMovies.length > 0) {
const storedMovieScenes = await storeScenes(deepMovieScenes);
await storeMovies(deepMovies, storedMovieScenes);
}
if (deepScenes.length > 0 || deepMovieScenes.length > 0) {
await storeScenes(deepScenes || []);
}
}
knex.destroy();

View File

@@ -45,7 +45,7 @@ function scrapeMovieScenes(scenes) {
});
}
async function scrapeRelease({ query, html }, url, channel, type = 'scene') {
async function scrapeRelease({ query, html }, url, channel, baseRelease, type = 'scene') {
const release = {};
release.entryId = new URL(url).pathname.match(/\/(\d+)/)[1];
@@ -71,7 +71,7 @@ async function scrapeRelease({ query, html }, url, channel, type = 'scene') {
if (type === 'scene') {
release.director = query.text('.director');
release.duration = query.number('.release-date:last-child') * 60;
release.poster = query.url('link[rel="image_src"]') || query.meta('property="og:image"');
release.poster = baseRelease?.poster || query.url('link[rel="image_src"]') || query.meta('property="og:image"');
}
if (type === 'movie') {
@@ -138,27 +138,27 @@ async function fetchLatest(channel, page = 1) {
return res.status;
}
async function fetchScene(url, channel) {
async function fetchScene(url, channel, baseRelease) {
const res = await qu.get(url, null, null, {
// invalid certificate
rejectUnauthorized: false,
});
if (res.ok) {
return scrapeRelease(res.item, url, channel);
return scrapeRelease(res.item, url, channel, baseRelease);
}
return res.status;
}
async function fetchMovie(url, channel) {
async function fetchMovie(url, channel, baseRelease) {
const res = await qu.get(url, null, null, {
// invalid certificate
rejectUnauthorized: false,
});
if (res.ok) {
return scrapeRelease(res.item, url, channel, 'movie');
return scrapeRelease(res.item, url, channel, baseRelease, 'movie');
}
return res.status;