From 61a795d6348c6678c0435eea032ad33b1ac7193b Mon Sep 17 00:00:00 2001 From: Niels Simenon Date: Mon, 9 Mar 2020 16:54:45 +0100 Subject: [PATCH] Added 'includes' argument to scrapers to help them avoid unnecessary requests. Added movie actors and movie tags views. --- assets/js/curate.js | 1 + assets/js/fragments.js | 19 +++++++++++++++++++ migrations/20190325001339_releases.js | 8 ++++++++ seeds/00_tags.js | 8 ++++---- src/utils/argv-include.js | 18 ++++++++++++++++++ 5 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/utils/argv-include.js diff --git a/assets/js/curate.js b/assets/js/curate.js index 9b296161..5c31e372 100644 --- a/assets/js/curate.js +++ b/assets/js/curate.js @@ -33,6 +33,7 @@ function curateRelease(release) { if (release.trailer) curatedRelease.trailer = release.trailer.media; if (release.teaser) curatedRelease.teaser = release.teaser.media; if (release.actors) curatedRelease.actors = release.actors.map(({ actor }) => curateActor(actor, curatedRelease)); + if (release.movieTags && release.movieTags.length > 0) curatedRelease.tags = release.movieTags.map(({ tag }) => tag); if (release.movieActors && release.movieActors.length > 0) curatedRelease.actors = release.movieActors.map(({ actor }) => curateActor(actor, curatedRelease)); return curatedRelease; diff --git a/assets/js/fragments.js b/assets/js/fragments.js index 0862281e..88b0a1a8 100644 --- a/assets/js/fragments.js +++ b/assets/js/fragments.js @@ -169,6 +169,18 @@ const releasesFragment = ` orderBy: $orderBy, ) { ${releaseFields} + movieActors: movieActorsByMovieId(orderBy: ACTOR_BY_ACTOR_ID__GENDER_ASC) { + actor { + ${actorFields} + } + } + movieTags: movieTagsByMovieId(orderBy: TAG_BY_TAG_ID__PRIORITY_DESC) { + tag { + id + name + slug + } + } } `; @@ -195,6 +207,13 @@ const releaseFragment = ` ${actorFields} } } + movieTags: movieTagsByMovieId(orderBy: TAG_BY_TAG_ID__PRIORITY_DESC) { + tag { + id + name + slug + } + } movies: releasesMoviesBySceneId { movie { id diff --git a/migrations/20190325001339_releases.js b/migrations/20190325001339_releases.js index ddafae7b..c795e8dd 100644 --- a/migrations/20190325001339_releases.js +++ b/migrations/20190325001339_releases.js @@ -547,7 +547,14 @@ exports.up = knex => Promise.resolve() LEFT JOIN releases_actors ON releases_actors.release_id = releases.id GROUP BY movie_id, actor_id; + CREATE VIEW movie_tags AS + SELECT releases_movies.movie_id, releases_tags.tag_id FROM releases_movies + LEFT JOIN releases ON releases.id = releases_movies.scene_id + LEFT JOIN releases_tags ON releases_tags.release_id = releases.id + GROUP BY movie_id, tag_id; + COMMENT ON VIEW movie_actors IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (actor_id) references actors (id)'; + COMMENT ON VIEW movie_tags IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (tag_id) references tags (id)'; COMMENT ON COLUMN actors.height IS E'@omit read,update,create,delete,all,many'; COMMENT ON COLUMN actors.weight IS E'@omit read,update,create,delete,all,many'; @@ -558,6 +565,7 @@ exports.down = knex => knex.raw(` DROP FUNCTION IF EXISTS search_sites; DROP VIEW IF EXISTS movie_actors; + DROP VIEW IF EXISTS movie_tags; DROP TABLE IF EXISTS releases_actors CASCADE; DROP TABLE IF EXISTS releases_movies CASCADE; diff --git a/seeds/00_tags.js b/seeds/00_tags.js index 545ce837..5b06b112 100644 --- a/seeds/00_tags.js +++ b/seeds/00_tags.js @@ -118,7 +118,7 @@ const tags = [ { name: 'asian', slug: 'asian', - priority: 7, + priority: 5, group: 'ethnicity', }, { @@ -342,7 +342,7 @@ const tags = [ { name: 'ebony', slug: 'ebony', - priority: 7, + priority: 5, group: 'ethnicity', }, { @@ -427,7 +427,7 @@ const tags = [ { name: 'gaping', slug: 'gaping', - priority: 7, + priority: 6, }, { name: 'gay', @@ -481,7 +481,7 @@ const tags = [ { name: 'Latina', slug: 'latina', - priority: 7, + priority: 5, group: 'ethnicity', }, { diff --git a/src/utils/argv-include.js b/src/utils/argv-include.js new file mode 100644 index 00000000..35221bdc --- /dev/null +++ b/src/utils/argv-include.js @@ -0,0 +1,18 @@ +'use strict'; + +function include(argv) { + return { + covers: argv.media && argv.covers, + media: argv.media, + photos: argv.media && argv.photos, + poster: argv.media && argv.posters, + posters: argv.media && argv.posters, + teaser: argv.media && argv.videos && argv.teasers, + teasers: argv.media && argv.videos && argv.teasers, + trailer: argv.media && argv.videos && argv.trailers, + trailers: argv.media && argv.videos && argv.trailers, + videos: argv.videos, + }; +} + +module.exports = include;