forked from DebaucheryLibrarian/traxxx
Deleting flushed scenes from manticore.
This commit is contained in:
@@ -188,6 +188,8 @@ module.exports = {
|
|||||||
'wishescumtrue',
|
'wishescumtrue',
|
||||||
// hentaied
|
// hentaied
|
||||||
'somegore',
|
'somegore',
|
||||||
|
// digital playground
|
||||||
|
'digitalplayground', // no longer updates, produces a bunch of garbage for some reason
|
||||||
],
|
],
|
||||||
networks: [
|
networks: [
|
||||||
// dummy network for testing
|
// dummy network for testing
|
||||||
|
|||||||
@@ -16,14 +16,14 @@ async function updateManticoreStashedScenes(docs) {
|
|||||||
await chunk(docs, 1000).reduce(async (chain, docsChunk) => {
|
await chunk(docs, 1000).reduce(async (chain, docsChunk) => {
|
||||||
await chain;
|
await chain;
|
||||||
|
|
||||||
const sceneIds = docsChunk.map((doc) => doc.replace.id);
|
const sceneIds = docsChunk.filter((doc) => !!doc.replace).map((doc) => doc.replace.id);
|
||||||
|
|
||||||
const stashes = await knex('stashes_scenes')
|
const stashes = await knex('stashes_scenes')
|
||||||
.select('stashes_scenes.id as stashed_id', 'stashes_scenes.scene_id', 'stashes_scenes.created_at', 'stashes.id as stash_id', 'stashes.user_id as user_id')
|
.select('stashes_scenes.id as stashed_id', 'stashes_scenes.scene_id', 'stashes_scenes.created_at', 'stashes.id as stash_id', 'stashes.user_id as user_id')
|
||||||
.leftJoin('stashes', 'stashes.id', 'stashes_scenes.stash_id')
|
.leftJoin('stashes', 'stashes.id', 'stashes_scenes.stash_id')
|
||||||
.whereIn('scene_id', sceneIds);
|
.whereIn('scene_id', sceneIds);
|
||||||
|
|
||||||
const stashDocs = docsChunk.flatMap((doc) => {
|
const stashDocs = docsChunk.filter((doc) => doc.replace).flatMap((doc) => {
|
||||||
const sceneStashes = stashes.filter((stash) => stash.scene_id === doc.replace.id);
|
const sceneStashes = stashes.filter((stash) => stash.scene_id === doc.replace.id);
|
||||||
|
|
||||||
if (sceneStashes.length === 0) {
|
if (sceneStashes.length === 0) {
|
||||||
@@ -50,6 +50,25 @@ async function updateManticoreStashedScenes(docs) {
|
|||||||
if (stashDocs.length > 0) {
|
if (stashDocs.length > 0) {
|
||||||
await indexApi.bulk(stashDocs.map((doc) => JSON.stringify(doc)).join('\n'));
|
await indexApi.bulk(stashDocs.map((doc) => JSON.stringify(doc)).join('\n'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const deleteSceneIds = docs.filter((doc) => doc.delete).map((doc) => doc.delete.id);
|
||||||
|
|
||||||
|
if (deleteSceneIds.length > 0) {
|
||||||
|
await indexApi.callDelete({
|
||||||
|
index: 'scenes_stashed',
|
||||||
|
query: {
|
||||||
|
bool: {
|
||||||
|
must: [
|
||||||
|
{
|
||||||
|
in: {
|
||||||
|
scene_id: deleteSceneIds,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
}, Promise.resolve());
|
}, Promise.resolve());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,9 +147,20 @@ async function updateManticoreSceneSearch(releaseIds) {
|
|||||||
studios.showcased
|
studios.showcased
|
||||||
`, releaseIds && [releaseIds]);
|
`, releaseIds && [releaseIds]);
|
||||||
|
|
||||||
// console.log(scenes.rows);
|
const scenesById = Object.fromEntries(scenes.rows.map((scene) => [scene.id, scene]));
|
||||||
|
|
||||||
|
const docs = releaseIds.map((sceneId) => {
|
||||||
|
const scene = scenesById[sceneId];
|
||||||
|
|
||||||
|
if (!scene) {
|
||||||
|
return {
|
||||||
|
delete: {
|
||||||
|
index: 'scenes',
|
||||||
|
id: sceneId,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
const docs = scenes.rows.map((scene) => {
|
|
||||||
const flatActors = scene.actors.flatMap((actor) => actor.f2.split(' '));
|
const flatActors = scene.actors.flatMap((actor) => actor.f2.split(' '));
|
||||||
const flatTags = scene.tags.filter((tag) => tag.f3 > 6).flatMap((tag) => [tag.f2].concat(tag.f4)).filter(Boolean); // only make top tags searchable to minimize cluttered results
|
const flatTags = scene.tags.filter((tag) => tag.f3 > 6).flatMap((tag) => [tag.f2].concat(tag.f4)).filter(Boolean); // only make top tags searchable to minimize cluttered results
|
||||||
const filteredTitle = filterTitle(scene.title, [...flatActors, ...flatTags]);
|
const filteredTitle = filterTitle(scene.title, [...flatActors, ...flatTags]);
|
||||||
@@ -291,7 +321,20 @@ async function updateManticoreMovieSearch(movieIds) {
|
|||||||
movies_covers.*
|
movies_covers.*
|
||||||
`, movieIds && [movieIds]);
|
`, movieIds && [movieIds]);
|
||||||
|
|
||||||
const docs = movies.rows.map((movie) => {
|
const moviesById = Object.fromEntries(movies.rows.map((movie) => [movie.id, movie]));
|
||||||
|
|
||||||
|
const docs = movieIds.map((movieId) => {
|
||||||
|
const movie = moviesById[movieId];
|
||||||
|
|
||||||
|
if (!movie) {
|
||||||
|
return {
|
||||||
|
delete: {
|
||||||
|
index: 'movies',
|
||||||
|
id: movieId,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
const combinedTags = Object.values(Object.fromEntries(movie.tags.concat(movie.movie_tags).map((tag) => [tag.f1, {
|
const combinedTags = Object.values(Object.fromEntries(movie.tags.concat(movie.movie_tags).map((tag) => [tag.f1, {
|
||||||
id: tag.f1,
|
id: tag.f1,
|
||||||
name: tag.f2,
|
name: tag.f2,
|
||||||
|
|||||||
Reference in New Issue
Block a user