From c47fae3a1bec91fb142c315064d45e3f52aa2440 Mon Sep 17 00:00:00 2001 From: Niels Simenon Date: Fri, 3 Jul 2020 04:42:20 +0200 Subject: [PATCH] Setting composed title as page title. Using Teen Core Club title if it isn't shoot ID. --- assets/components/releases/release.vue | 6 +- public/img/logos/teencoreclub/favicon.png | Bin 0 -> 1804 bytes .../img/logos/teencoreclub/misc/favicon.png | Bin 0 -> 2149 bytes seeds/02_sites.js | 57 ++++++++++------ src/scrapers/teencoreclub.js | 63 ++++++++++++++++++ 5 files changed, 102 insertions(+), 24 deletions(-) create mode 100644 public/img/logos/teencoreclub/favicon.png create mode 100644 public/img/logos/teencoreclub/misc/favicon.png create mode 100644 src/scrapers/teencoreclub.js diff --git a/assets/components/releases/release.vue b/assets/components/releases/release.vue index b3d2d550..571ba221 100644 --- a/assets/components/releases/release.vue +++ b/assets/components/releases/release.vue @@ -103,7 +103,7 @@ >{{ release.title }}

{{ release.actors.map(actor => actor.name).join(', ') }} for {{ release.entity.name }} @@ -240,7 +240,9 @@ import Scroll from '../scroll/scroll.vue'; import Expand from '../expand/expand.vue'; function pageTitle() { - return this.release && this.release.title; + return this.release + && (this.release.title + || (this.release.actors.length > 0 ? `${this.release.actors.map(actor => actor.name).join(', ')} for ${this.release.entity.name}` : null)); } async function mounted() { diff --git a/public/img/logos/teencoreclub/favicon.png b/public/img/logos/teencoreclub/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..eaec4d3639832cf0777b11a0bde7078f97306dad GIT binary patch literal 1804 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 { + const release = {}; + + release.entryId = scene.id; + release.url = `${entity.url}/video/${scene.id}/${scene.slug}`; + + if (/bic/i.test(scene.title)) { + release.shootId = scene.title.toUpperCase().replace('-', '_'); + } else { + release.title = scene.title; + } + + release.description = scene.description; + release.date = moment.utc(scene.year, 'YYYY').toDate(); + release.datePrecision = 'year'; + + release.actors = scene.actors.map(actor => ({ + name: actor.name, + avatar: actor.image, + })); + + release.duration = scene.duration; + release.stars = scene.video_rating_score; + + [release.poster, ...release.photos] = scene.screenshots.map(url => prefixUrl(url)); + + if (scene.is_gay) { + release.tags = ['gay']; + } + + console.log(scene); + console.log(release); + return release; + }); +} + +async function fetchLatest(entity, page = 1) { + // console.log(entity, page); + + if (entity.parameters?.siteId) { + const res = await http.get(`https://teencoreclub.com/browsevideos/api/all?resType=all&page=${page}&label=${entity.parameters.siteId}`); + + if (res.ok) { + return scrapeLatest(res.body.data, entity); + } + + return res.status; + } + + return null; +} + +module.exports = { + fetchLatest, +};