From 057362d011346c3a2e9c5a815ade0e5d6fe69107 Mon Sep 17 00:00:00 2001 From: Niels Simenon Date: Wed, 20 May 2020 01:11:32 +0200 Subject: [PATCH] Added basic release and actor API. --- assets/components/actors/actor.vue | 19 +-- assets/img/icons/anchor.svg | 5 + assets/img/icons/lotus.svg | 77 ++++++++++++ assets/img/icons/tattoo.svg | 21 ++++ public/img/logos/freeones/freeoneslegacy.png | Bin 9351 -> 9320 bytes public/img/logos/freeones/lazy/freeones.png | Bin 4462 -> 4462 bytes .../logos/freeones/lazy/freeoneslegacy.png | Bin 10039 -> 10023 bytes public/img/logos/freeones/lazy/network.png | Bin 4462 -> 4462 bytes public/img/logos/freeones/thumbs/freeones.png | Bin 18014 -> 18014 bytes .../logos/freeones/thumbs/freeoneslegacy.png | Bin 22116 -> 22348 bytes public/img/logos/freeones/thumbs/network.png | Bin 18014 -> 18014 bytes src/actors.js | 98 ++++++++++++++- src/app.js | 1 + src/releases.js | 112 +++++++++++++++++- src/utils/argv-include.js | 4 +- src/web/actors.js | 27 ++--- src/web/releases.js | 16 ++- src/web/server.js | 6 + 18 files changed, 347 insertions(+), 39 deletions(-) create mode 100644 assets/img/icons/anchor.svg create mode 100755 assets/img/icons/lotus.svg create mode 100644 assets/img/icons/tattoo.svg diff --git a/assets/components/actors/actor.vue b/assets/components/actors/actor.vue index 22bdcdb0..08938563 100644 --- a/assets/components/actors/actor.vue +++ b/assets/components/actors/actor.vue @@ -210,7 +210,7 @@ v-if="actor.hasTattoos" class="bio-item tattoos hideable" > - Tattoos + Tattoos
+ +
- -
@@ -595,15 +595,16 @@ export default { .description { margin: 0; - padding: 0 2rem 0 0; + padding: 0 1rem; + border-left: solid 3px var(--lighten-hint); line-height: 1.5; font-size: .9rem; } .description-logo { display: block; - width: 15rem; - max-height: 2rem; + width: 12rem; + max-height: 1.5rem; margin: .5rem 0 1.5rem 0; object-fit: contain; object-position: 0 50%; @@ -623,9 +624,9 @@ export default { .photos-container { min-width: 15rem; box-sizing: border-box; - border-right: solid 1px $shadow-hint; - padding: 1rem 1.5rem 1rem 1rem; - margin: 0 .5rem 0 0; + border-left: solid 1px $shadow-hint; + padding: 1rem 1rem 1rem 1.5rem; + margin: 0 0 0 .5rem; } .photos.compact { diff --git a/assets/img/icons/anchor.svg b/assets/img/icons/anchor.svg new file mode 100644 index 00000000..4e4542b9 --- /dev/null +++ b/assets/img/icons/anchor.svg @@ -0,0 +1,5 @@ + + +anchor + + diff --git a/assets/img/icons/lotus.svg b/assets/img/icons/lotus.svg new file mode 100755 index 00000000..0dabe206 --- /dev/null +++ b/assets/img/icons/lotus.svg @@ -0,0 +1,77 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/assets/img/icons/tattoo.svg b/assets/img/icons/tattoo.svg new file mode 100644 index 00000000..dcd7f7df --- /dev/null +++ b/assets/img/icons/tattoo.svg @@ -0,0 +1,21 @@ + + heart7 + + + + + + + + + + + + + + + + + + + diff --git a/public/img/logos/freeones/freeoneslegacy.png b/public/img/logos/freeones/freeoneslegacy.png index 6900e730cbdc23d0afba5d34c5323b7371a48dda..7c623fd832683cbb50d799fd844d4a38022b79a6 100644 GIT binary patch delta 9276 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 delta 23 ecmccD!+5WUaRWOO2d^j}%a0D7shjzk{9OQHRtIDN diff --git a/public/img/logos/freeones/thumbs/freeoneslegacy.png b/public/img/logos/freeones/thumbs/freeoneslegacy.png index a1aa3cbddbda94ce3ef56ef0d28c6b02f1bd0f29..bfd1e53008af5c7adab0014318fde1cd21c92504 100644 GIT binary patch delta 19761 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 delta 19487 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 iU~%inD!a`7&O${wpoo__(5x>o}L diff --git a/public/img/logos/freeones/thumbs/network.png b/public/img/logos/freeones/thumbs/network.png index 0e99048e58243b633c44f41d7a7c13509c71169d..13cb6436621c87105746e288352cd55419c2ff50 100644 GIT binary patch delta 23 ecmccD!+5WUaRWOOhcG{*kk;mA#?Aap{w@GoTn2>z delta 23 ecmccD!+5WUaRWOO2d^j}%a0D7shjzk{9OQHRtIDN diff --git a/src/actors.js b/src/actors.js index 1d9ac36c..8faa6cf7 100644 --- a/src/actors.js +++ b/src/actors.js @@ -130,6 +130,73 @@ function toBaseActors(actorsOrNames, release) { }); } +function curateActor(actor) { + if (!actor) { + return null; + } + + const curatedActor = { + id: actor.id, + name: actor.name, + slug: actor.slug, + gender: actor.gender, + alias: actor.alias && { + id: actor.alias.id, + name: actor.alias.name, + gender: actor.alias.gender, + }, + network: actor.network && { + id: actor.network.id, + name: actor.network.name, + slug: actor.network.slug, + }, + dateOfBirth: actor.date_of_birth, + dateOfDeath: actor.date_of_death, + cup: actor.cup, + bust: actor.bust, + waist: actor.waist, + hip: actor.hip, + naturalBoobs: actor.natural_boobs, + height: actor.height, + weight: actor.weight, + eyes: actor.eyes, + hair: actor.hair, + hasTattoos: actor.has_tattoos, + hasPiercings: actor.has_piercings, + tattoos: actor.tattoos, + piercings: actor.piercings, + description: actor.description, + origin: actor.birth_country && { + country: { + alpha2: actor.birth_country.alpha2, + name: actor.birth_country.name, + alias: actor.birth_country.alias, + }, + state: actor.birth_state, + city: actor.birth_city, + }, + residence: actor.residence_country && { + country: { + alpha2: actor.residence_country.alpha2, + name: actor.residence_country.name, + alias: actor.residence_country.alias, + }, + state: actor.residence_state, + city: actor.residence_city, + }, + avatar: actor.avatar && { + id: actor.avatar.id, + path: actor.avatar.path, + width: actor.avatar.width, + height: actor.avatar.height, + size: actor.avatar.size, + source: actor.avatar.source, + }, + }; + + return curatedActor; +} + function curateActorEntry(baseActor, batchId) { return { name: baseActor.name, @@ -196,7 +263,7 @@ async function curateProfile(profile) { update: profile.update, }; - curatedProfile.description = domPurify.sanitize(profile.description.replace(/\s+/g, ' '), { ALLOWED_TAGS: [] }).trim() || null; + curatedProfile.description = domPurify.sanitize(profile.description?.replace(/\s+/g, ' '), { ALLOWED_TAGS: [] }).trim() || null; const hasher = curatedProfile.description && blake2 .createHash('blake2b') @@ -632,7 +699,36 @@ async function associateActors(releases, batchId) { return actors; } +async function fetchActor(actorId) { + const actor = await knex('actors') + .select(knex.raw(` + actors.*, + row_to_json(networks) as network, + row_to_json(actor_alias) as alias, + row_to_json(birth_country) as birth_country, + row_to_json(residence_country) as residence_country, + row_to_json(media) as avatar + `)) + .modify((queryBuilder) => { + if (Number.isNaN(Number(actorId))) { + queryBuilder.where('actors.slug', actorId); + return; + } + + queryBuilder.where('actors.id', actorId); + }) + .leftJoin('actors as actor_alias', 'actor_alias.id', 'actors.alias_for') + .leftJoin('networks', 'networks.id', 'actors.network_id') + .leftJoin('countries as birth_country', 'birth_country.alpha2', 'actors.birth_country_alpha2') + .leftJoin('countries as residence_country', 'residence_country.alpha2', 'actors.residence_country_alpha2') + .leftJoin('media', 'media.id', 'actors.avatar_media_id') + .first(); + + return curateActor(actor); +} + module.exports = { associateActors, + fetchActor, scrapeActors, }; diff --git a/src/app.js b/src/app.js index adeaf70c..741e5344 100644 --- a/src/app.js +++ b/src/app.js @@ -24,6 +24,7 @@ async function init() { if (argv.actorScenes) { const actorReleases = actors.map(actor => actor.releases).flat().filter(Boolean); + console.log(actors, actorReleases); await storeReleases(actorReleases); } diff --git a/src/releases.js b/src/releases.js index d5fe5089..b8e7df8a 100644 --- a/src/releases.js +++ b/src/releases.js @@ -2,19 +2,121 @@ const knex = require('./knex'); -async function fetchReleases(limit = 100) { - const releases = await knex('releases').limit(limit); +function curateRelease(release, withMedia = false) { + if (!release) { + return null; + } - return releases; + const network = release.site_network || release.network; + + return { + id: release.id, + entryId: release.entry_id, + shootId: release.shoot_id, + title: release.title, + url: release.url, + date: release.date, + description: release.description, + duration: release.duration, + site: release.site && { + id: release.site.id, + name: release.site.name, + slug: release.site.slug, + }, + network: network && { + id: network.id, + name: network.name, + slug: network.slug, + }, + actors: (release.actors || []).map(actor => ({ + id: actor.id, + name: actor.name, + gender: actor.gender, + })), + ...(withMedia && { + poster: release.poster ? { + id: release.poster.id, + path: release.poster.path, + width: release.poster.width, + height: release.poster.height, + size: release.poster.size, + source: release.poster.source, + } : null, + photos: (release.photos || []).map(photo => ({ + id: photo.id, + path: photo.path, + width: photo.width, + height: photo.height, + size: photo.size, + source: photo.source, + })), + }), + createdAt: release.created_at, + }; +} + +function withRelations(queryBuilder, withMedia = false) { + queryBuilder + .select(knex.raw(` + releases.id, releases.entry_id, releases.shoot_id, releases.title, releases.url, releases.date, releases.description, releases.duration, releases.created_at, + row_to_json(sites) as site, + row_to_json(networks) as network, + row_to_json(site_networks) as site_network, + json_agg(DISTINCT actors) as actors + `)) + .leftJoin('sites', 'sites.id', 'releases.site_id') + .leftJoin('networks', 'networks.id', 'releases.network_id') + .leftJoin('networks as site_networks', 'site_networks.id', 'sites.network_id') + .leftJoin('releases_actors', 'releases_actors.release_id', 'releases.id') + .leftJoin('actors', 'actors.id', 'releases_actors.actor_id') + .groupBy(knex.raw(` + releases.id, releases.entry_id, releases.shoot_id, releases.title, releases.url, releases.date, releases.description, releases.duration, releases.created_at, + sites.id, networks.id, site_networks.id + `)); + + if (withMedia) { + queryBuilder + .select(knex.raw(` + row_to_json(posters) as poster, + json_agg(DISTINCT photos) as photos + `)) + .leftJoin('releases_posters', 'releases_posters.release_id', 'releases.id') + .leftJoin('media as posters', 'posters.id', 'releases_posters.media_id') + .leftJoin('releases_photos', 'releases_photos.release_id', 'releases.id') + .leftJoin('media as photos', 'photos.id', 'releases_photos.media_id') + .groupBy('posters.id'); + } +} + +async function fetchRelease(releaseId) { + const release = await knex('releases') + .where('releases.id', releaseId) + .modify(withRelations, true) + .first(); + + return curateRelease(release, true); +} + +async function fetchReleases(limit = 100) { + const releases = await knex('releases') + .modify(withRelations) + .limit(Math.min(limit, 1000)); + + return releases.map(release => curateRelease(release)); } async function searchReleases(query, limit = 100) { - const releases = await knex.raw('SELECT * FROM search_releases(?) LIMIT ?;', [query, limit]); + // const releases = await knex.raw('SELECT * FROM search_releases(?) LIMIT ?;', [query, limit]); + const releases = await knex + .from(knex.raw('search_releases(?) as releases', [query])) + .modify(withRelations) + .limit(Math.min(limit, 1000)); - return releases.rows; + return releases.map(release => curateRelease(release)); } module.exports = { + fetchRelease, fetchReleases, searchReleases, }; diff --git a/src/utils/argv-include.js b/src/utils/argv-include.js index a955bec6..72fd0d3e 100644 --- a/src/utils/argv-include.js +++ b/src/utils/argv-include.js @@ -7,8 +7,8 @@ function include(argv) { photos: argv.media && argv.photos, poster: argv.media && argv.posters, posters: argv.media && argv.posters, - releases: argv.withReleases, - scenes: argv.withReleases, + releases: argv.withScenes, + scenes: argv.withScenes, teaser: argv.media && argv.videos && argv.teasers, teasers: argv.media && argv.videos && argv.teasers, trailer: argv.media && argv.videos && argv.trailers, diff --git a/src/web/actors.js b/src/web/actors.js index b6cace5c..2dd61957 100644 --- a/src/web/actors.js +++ b/src/web/actors.js @@ -1,31 +1,18 @@ 'use strict'; -const { fetchActors } = require('../actors'); +const { fetchActor } = require('../actors'); -async function fetchActorsApi(req, res) { - const actorId = typeof req.params.actorId === 'number' ? req.params.actorId : null; - const actorSlug = typeof req.params.actorId === 'string' ? req.params.actorId : null; +async function fetchActorApi(req, res) { + const actor = await fetchActor(req.params.actorId); - if (actorId || actorSlug) { - const actors = await fetchActors({ - id: actorId, - slug: actorSlug, - }); - - if (actors.length > 0) { - res.send(actors[0]); - return; - } - - res.status(404).send(); + if (actor) { + res.send({ actor }); return; } - const actors = await fetchActors(null, req.query.limit); - - res.send(actors); + res.status(404).send({ actor: null }); } module.exports = { - fetchActors: fetchActorsApi, + fetchActor: fetchActorApi, }; diff --git a/src/web/releases.js b/src/web/releases.js index 68e1f70f..b6094cea 100644 --- a/src/web/releases.js +++ b/src/web/releases.js @@ -1,6 +1,17 @@ 'use strict'; -const { fetchReleases, searchReleases } = require('../releases'); +const { fetchRelease, fetchReleases, searchReleases } = require('../releases'); + +async function fetchReleaseApi(req, res) { + const release = await fetchRelease(req.params.releaseId); + + if (release) { + res.send({ release }); + return; + } + + res.status(404).send({ release: null }); +} async function fetchReleasesApi(req, res) { const query = req.query.query || req.query.q; @@ -9,9 +20,10 @@ async function fetchReleasesApi(req, res) { ? await searchReleases(query, req.query.limit) : await fetchReleases(req.query.limit); - res.send(releases); + res.send({ releases }); } module.exports = { + fetchRelease: fetchReleaseApi, fetchReleases: fetchReleasesApi, }; diff --git a/src/web/server.js b/src/web/server.js index 48024c62..a53b2440 100644 --- a/src/web/server.js +++ b/src/web/server.js @@ -15,9 +15,12 @@ const logger = require('../logger')(__filename); const { ActorPlugins, SitePlugins, ReleasePlugins } = require('./plugins/plugins'); const { + fetchRelease, fetchReleases, } = require('./releases'); +const { fetchActor } = require('./actors'); + function initServer() { const app = express(); const router = Router(); @@ -61,6 +64,9 @@ function initServer() { router.use(bodyParser.json({ strict: false })); router.get('/api/releases', fetchReleases); + router.get('/api/releases/:releaseId', fetchRelease); + + router.get('/api/actors/:actorId', fetchActor); router.get('*', (req, res) => { res.render(path.join(__dirname, '../../assets/index.ejs'), {