Compare commits
2 Commits
ff633436cb
...
220f7e787d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
220f7e787d | ||
|
|
f1caa77e4b |
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.250.32",
|
"version": "1.250.33",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.250.32",
|
"version": "1.250.33",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-sdk/client-s3": "^3.458.0",
|
"@aws-sdk/client-s3": "^3.458.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.250.32",
|
"version": "1.250.33",
|
||||||
"description": "All the latest porn releases in one place",
|
"description": "All the latest porn releases in one place",
|
||||||
"main": "src/app.js",
|
"main": "src/app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ async function fetchScenes() {
|
|||||||
studios.name as studio_name,
|
studios.name as studio_name,
|
||||||
grandparents.id as parent_network_id,
|
grandparents.id as parent_network_id,
|
||||||
COALESCE(JSON_AGG(DISTINCT (actors.id, actors.name)) FILTER (WHERE actors.id IS NOT NULL), '[]') as actors,
|
COALESCE(JSON_AGG(DISTINCT (actors.id, actors.name)) FILTER (WHERE actors.id IS NOT NULL), '[]') as actors,
|
||||||
COALESCE(JSON_AGG(DISTINCT (tags.id, tags.name, tags.priority, tags_aliases.name)) FILTER (WHERE tags.id IS NOT NULL), '[]') as tags,
|
COALESCE(JSON_AGG(DISTINCT (tags.id, tags.name, tags.priority, tags_aliases.name, local_tags.actor_id)) FILTER (WHERE tags.id IS NOT NULL), '[]') as tags,
|
||||||
COALESCE(JSON_AGG(DISTINCT (movies.id, movies.title)) FILTER (WHERE movies.id IS NOT NULL), '[]') as movies,
|
COALESCE(JSON_AGG(DISTINCT (movies.id, movies.title)) FILTER (WHERE movies.id IS NOT NULL), '[]') as movies,
|
||||||
COALESCE(JSON_AGG(DISTINCT (series.id, series.title)) FILTER (WHERE series.id IS NOT NULL), '[]') as series,
|
COALESCE(JSON_AGG(DISTINCT (series.id, series.title)) FILTER (WHERE series.id IS NOT NULL), '[]') as series,
|
||||||
COALESCE(JSON_AGG(DISTINCT (releases_fingerprints.hash)) FILTER (WHERE releases_fingerprints.hash IS NOT NULL), '[]') as fingerprints,
|
COALESCE(JSON_AGG(DISTINCT (releases_fingerprints.hash)) FILTER (WHERE releases_fingerprints.hash IS NOT NULL), '[]') as fingerprints,
|
||||||
@@ -136,6 +136,14 @@ async function init() {
|
|||||||
dupe_index int
|
dupe_index int
|
||||||
)`);
|
)`);
|
||||||
|
|
||||||
|
await utilsApi.sql('drop table if exists scenes_tags');
|
||||||
|
await utilsApi.sql(`create table scenes_tags (
|
||||||
|
id int,
|
||||||
|
scene_id int,
|
||||||
|
tag_id int,
|
||||||
|
actor_id int
|
||||||
|
)`);
|
||||||
|
|
||||||
console.log('Recreated scenes table');
|
console.log('Recreated scenes table');
|
||||||
console.log('Fetching scenes from primary database');
|
console.log('Fetching scenes from primary database');
|
||||||
|
|
||||||
@@ -143,12 +151,13 @@ async function init() {
|
|||||||
|
|
||||||
console.log('Fetched scenes from primary database');
|
console.log('Fetched scenes from primary database');
|
||||||
|
|
||||||
const docs = scenes.map((scene) => {
|
const docs = scenes.flatMap((scene) => {
|
||||||
const flatActors = scene.actors.flatMap((actor) => actor.f2.match(/[\w']+/g)); // match word characters to filter out brackets etc.
|
const flatActors = scene.actors.flatMap((actor) => actor.f2.match(/[\w']+/g)); // match word characters to filter out brackets etc.
|
||||||
const flatTags = scene.tags.filter((tag) => tag.f3 > 6).flatMap((tag) => (tag.f4 ? `${tag.f2} ${tag.f4}` : tag.f2).match(/[\w']+/g)); // only make top tags searchable to minimize cluttered results
|
const flatTags = scene.tags.filter((tag) => tag.f3 > 6).flatMap((tag) => (tag.f4 ? `${tag.f2} ${tag.f4}` : tag.f2).match(/[\w']+/g)); // only make top tags searchable to minimize cluttered results
|
||||||
const filteredTitle = filterTitle(scene.title, [...flatActors, ...flatTags]);
|
const filteredTitle = filterTitle(scene.title, [...flatActors, ...flatTags]);
|
||||||
|
|
||||||
return {
|
return [
|
||||||
|
{
|
||||||
replace: {
|
replace: {
|
||||||
index: 'scenes',
|
index: 'scenes',
|
||||||
id: scene.id,
|
id: scene.id,
|
||||||
@@ -185,7 +194,19 @@ async function init() {
|
|||||||
dupe_index: scene.dupe_index || 0,
|
dupe_index: scene.dupe_index || 0,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
},
|
||||||
|
...scene.tags.map((tag) => ({
|
||||||
|
replace: {
|
||||||
|
index: 'scenes_tags',
|
||||||
|
// id: scene.id,
|
||||||
|
doc: {
|
||||||
|
scene_id: scene.id,
|
||||||
|
tag_id: tag.f1,
|
||||||
|
actor_id: tag.f5,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})),
|
||||||
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
// const accData = chunk(docs, 10000).reduce(async (chain, docsChunk, index, array) => {
|
// const accData = chunk(docs, 10000).reduce(async (chain, docsChunk, index, array) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user