Added prefer option for entity resolution. Merged migrations.
This commit is contained in:
parent
744bdb3170
commit
a2331bc913
|
@ -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');
|
||||
|
|
|
@ -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');
|
||||
});
|
||||
};
|
|
@ -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',
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue