Compare commits

...

2 Commits

Author SHA1 Message Date
DebaucheryLibrarian 6edd587a33 1.228.15 2023-07-01 22:24:23 +02:00
DebaucheryLibrarian a2331bc913 Added prefer option for entity resolution. Merged migrations. 2023-07-01 22:24:21 +02:00
6 changed files with 14 additions and 25 deletions

View File

@ -273,6 +273,7 @@ exports.up = (knex) => Promise.resolve()
table.integer('age', 3);
table.text('gender', 18);
table.text('orientation');
table.text('description');
table.text('birth_city');
@ -346,6 +347,7 @@ exports.up = (knex) => Promise.resolve()
table.text('real_name');
table.text('gender', 18);
table.text('orientation');
table.date('date_of_birth');
table.date('date_of_death');

View File

@ -1,19 +0,0 @@
exports.up = async (knex) => {
await knex.schema.alterTable('actors', (table) => {
table.text('orientation');
});
await knex.schema.alterTable('actors_profiles', (table) => {
table.text('orientation');
});
};
exports.down = async (knex) => {
await knex.schema.alterTable('actors', (table) => {
table.dropColumn('orientation');
});
await knex.schema.alterTable('actors_profiles', (table) => {
table.dropColumn('orientation');
});
};

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "traxxx",
"version": "1.228.14",
"version": "1.228.15",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "traxxx",
"version": "1.228.14",
"version": "1.228.15",
"license": "ISC",
"dependencies": {
"@casl/ability": "^5.2.2",

View File

@ -1,6 +1,6 @@
{
"name": "traxxx",
"version": "1.228.14",
"version": "1.228.15",
"description": "All the latest porn releases in one place",
"main": "src/app.js",
"scripts": {

View File

@ -244,6 +244,12 @@ const { argv } = yargs
type: 'string',
default: process.env.NODE_ENV === 'development' ? 'silly' : 'info',
})
.option('prefer-entity', {
alias: 'prefer',
describe: 'Prefer network or channel when resolving entities with the same identifier.',
choices: ['channel', 'network'],
type: 'string',
})
.option('resolve-place', {
describe: 'Call OSM Nominatim API for actor place of birth and residence. Raw value discarded if disabled.',
type: 'boolean',

View File

@ -199,7 +199,7 @@ async function fetchIncludedEntities() {
return curatedNetworks;
}
async function fetchEntitiesBySlug(entitySlugs, sort = 'asc') {
async function fetchEntitiesBySlug(entitySlugs, prefer = 'channel') {
const entities = await knex.raw(`
WITH RECURSIVE entity_tree as (
SELECT to_jsonb(entities) as entity,
@ -235,7 +235,7 @@ async function fetchEntitiesBySlug(entitySlugs, sort = 'asc') {
`, {
entitySlugs: entitySlugs.filter((slug) => !slug.includes('.')),
entityHosts: entitySlugs.filter((slug) => slug.includes('.')).map((hostname) => `%${hostname}%`),
sort: knex.raw(sort),
sort: knex.raw(prefer === 'channel' ? 'asc' : 'desc'),
});
// channel entity will overwrite network entity
@ -262,7 +262,7 @@ async function fetchReleaseEntities(baseReleases) {
.filter(Boolean),
));
return fetchEntitiesBySlug(entitySlugs, 'desc');
return fetchEntitiesBySlug(entitySlugs, argv.prefer || 'network');
}
async function fetchEntity(entityId, type) {