Tags module filters out undefined tags. Gamma will return [] instead of undefined when no tags are available.

This commit is contained in:
2020-03-06 18:59:32 +01:00
parent 3f30f80d34
commit 5c63bd860b
4 changed files with 29 additions and 12 deletions

View File

@@ -229,7 +229,7 @@ async function scrapeScene(html, url, site, scrapedRelease, mobileHtml) {
}
const hasTrans = release.actors?.some(actor => actor.gender === 'shemale');
const rawTags = data?.keywords?.split(', ') || data2?.keywords?.split(', ');
const rawTags = data?.keywords?.split(', ') || data2?.keywords?.split(', ') || [];
release.tags = hasTrans ? [...rawTags, 'transsexual'] : rawTags;
const channel = data?.productionCompany?.name || $('.studioLink a, .siteLink a').attr('title')?.trim();
@@ -471,7 +471,7 @@ function getDeepUrl(url, site, release, mobile = false) {
const pathname = release?.path || new URL(url).pathname;
if (mobile) {
return `${site.parameters.mobile}${pathname}`;
return `${site.parameters.mobile}${pathname.replace('/en/video', '')}`;
}
if (site.parameters?.deep === 'network') {
@@ -479,7 +479,7 @@ function getDeepUrl(url, site, release, mobile = false) {
}
if (site.parameters?.deep) {
return `${site.parameters.deep}${pathname}`;
return `${site.parameters.deep}${pathname.replace('/en/video', '')}`;
}
return url;
@@ -493,8 +493,6 @@ async function fetchScene(url, site, release) {
const deepUrl = getDeepUrl(url, site, release);
const mobileUrl = site.parameters?.mobile && getDeepUrl(url, site, release, true);
console.log(mobileUrl);
if (deepUrl) {
const [res, mobileRes] = await Promise.all([
bhttp.get(deepUrl),
@@ -507,7 +505,7 @@ async function fetchScene(url, site, release) {
]);
if (res.statusCode === 200) {
const mobileBody = mobileRes.statusCode === 200 ? mobileRes.body.toString() : null;
const mobileBody = mobileRes?.statusCode === 200 ? mobileRes.body.toString() : null;
const scene = await scrapeScene(res.body.toString(), url, site, release, mobileBody);
return { ...scene, deepUrl };
}

View File

@@ -62,7 +62,7 @@ async function matchTags(rawTags) {
async function associateTags(release, releaseId) {
const siteTags = release.site?.tags?.filter(tag => tag.inherit === true).map(tag => tag.id) || [];
const rawReleaseTags = release.tags || [];
const rawReleaseTags = release.tags.filter(Boolean) || [];
const releaseTags = rawReleaseTags.some(tag => typeof tag === 'string')
? await matchTags(release.tags) // scraper returned raw tags
: rawReleaseTags; // tags already matched by (outdated) scraper