Fixed scene entity tag association.
This commit is contained in:
@@ -255,9 +255,6 @@ async function scrapeApiReleases(json, site) {
|
||||
];
|
||||
}
|
||||
|
||||
console.log(scene);
|
||||
console.log(release);
|
||||
|
||||
// release.movie = `${site.url}/en/movie/${scene.url_movie_title}/${scene.movie_id}`;
|
||||
|
||||
return release;
|
||||
|
||||
16
src/tags.js
16
src/tags.js
@@ -99,14 +99,20 @@ async function matchReleaseTags(releases) {
|
||||
|
||||
async function getEntityTags(releases) {
|
||||
const entityIds = releases.map((release) => release.entity?.id).filter(Boolean);
|
||||
const entityTags = await knex('entities_tags').whereIn('entity_id', entityIds);
|
||||
const entityTags = await knex('entities_tags')
|
||||
.select('id', 'name', 'entity_id')
|
||||
.whereIn('entity_id', entityIds)
|
||||
.leftJoin('tags', 'tags.id', 'entities_tags.tag_id');
|
||||
|
||||
const entityTagIdsByEntityId = entityTags.reduce((acc, entityTag) => {
|
||||
if (!acc[entityTag.entity_id]) {
|
||||
acc[entityTag.entity_id] = [];
|
||||
}
|
||||
|
||||
acc[entityTag.entity_id].push(entityTag.tag_id);
|
||||
acc[entityTag.entity_id].push({
|
||||
id: entityTag.id,
|
||||
name: entityTag.name,
|
||||
});
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
@@ -117,7 +123,7 @@ async function getEntityTags(releases) {
|
||||
function buildReleaseTagAssociations(releases, tagIdsBySlug, entityTagIdsByEntityId, type) {
|
||||
const tagAssociations = releases
|
||||
.map((release) => {
|
||||
const entityTagIds = entityTagIdsByEntityId[release.entity?.id]?.map((tag) => ({ id: tag.id, origin: tag.name })) || [];
|
||||
const entityTagIds = entityTagIdsByEntityId[release.entity?.id]?.map((tag) => ({ id: tag.id, original: tag.name })) || [];
|
||||
const releaseTags = release.tags?.filter(Boolean) || [];
|
||||
|
||||
const releaseTagsWithIds = releaseTags.every((tag) => typeof tag === 'number')
|
||||
@@ -152,9 +158,9 @@ async function associateReleaseTags(releases, type = 'release') {
|
||||
}
|
||||
|
||||
const tagIdsBySlug = await matchReleaseTags(releases);
|
||||
const EntityTagIdsByEntityId = await getEntityTags(releases);
|
||||
const entityTagIdsByEntityId = await getEntityTags(releases);
|
||||
|
||||
const tagAssociations = buildReleaseTagAssociations(releases, tagIdsBySlug, EntityTagIdsByEntityId, type);
|
||||
const tagAssociations = buildReleaseTagAssociations(releases, tagIdsBySlug, entityTagIdsByEntityId, type);
|
||||
|
||||
await bulkInsert(`${type}s_tags`, tagAssociations, false);
|
||||
}
|
||||
|
||||
@@ -61,8 +61,6 @@ async function filterUniqueReleases(releases) {
|
||||
|
||||
const duplicateReleaseEntries = duplicateReleaseEntryChunks.flat();
|
||||
|
||||
console.log(duplicateReleaseEntries);
|
||||
|
||||
const duplicateReleases = duplicateReleaseEntries.map((release) => curateRelease(release));
|
||||
const duplicateReleasesByEntityIdAndEntryId = duplicateReleases.reduce(mapReleasesToEntityIdAndEntryId, {});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user