Setting composed title as page title. Using Teen Core Club title if it isn't shoot ID.
This commit is contained in:
@@ -103,7 +103,7 @@
|
|||||||
>{{ release.title }}</h2>
|
>{{ release.title }}</h2>
|
||||||
|
|
||||||
<h2
|
<h2
|
||||||
v-if="release.actors.length > 0"
|
v-else-if="release.actors.length > 0"
|
||||||
class="title title-composed"
|
class="title title-composed"
|
||||||
>
|
>
|
||||||
{{ release.actors.map(actor => actor.name).join(', ') }} for {{ release.entity.name }}
|
{{ 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';
|
import Expand from '../expand/expand.vue';
|
||||||
|
|
||||||
function pageTitle() {
|
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() {
|
async function mounted() {
|
||||||
|
|||||||
BIN
public/img/logos/teencoreclub/favicon.png
Normal file
BIN
public/img/logos/teencoreclub/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/img/logos/teencoreclub/misc/favicon.png
Normal file
BIN
public/img/logos/teencoreclub/misc/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -203,6 +203,7 @@ const sites = [
|
|||||||
alias: ['dpf'],
|
alias: ['dpf'],
|
||||||
url: 'https://www.dpfanatics.com',
|
url: 'https://www.dpfanatics.com',
|
||||||
description: 'Welcome to DPFanatics, brought to you by 21Sextury. DP Fanatics brings you the best DP sex and double penetration porn you can find. Double vaginal penetration, double anal, amateur and teen DP inside!',
|
description: 'Welcome to DPFanatics, brought to you by 21Sextury. DP Fanatics brings you the best DP sex and double penetration porn you can find. Double vaginal penetration, double anal, amateur and teen DP inside!',
|
||||||
|
tags: ['dp'],
|
||||||
parent: '21sextury',
|
parent: '21sextury',
|
||||||
parameters: {
|
parameters: {
|
||||||
referer: 'https://www.21sextury.com',
|
referer: 'https://www.21sextury.com',
|
||||||
@@ -5732,6 +5733,7 @@ const sites = [
|
|||||||
name: 'AssTeenMouth',
|
name: 'AssTeenMouth',
|
||||||
slug: 'assteenmouth',
|
slug: 'assteenmouth',
|
||||||
url: 'https://assteenmouth.com',
|
url: 'https://assteenmouth.com',
|
||||||
|
tags: ['anal'],
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '180',
|
siteId: '180',
|
||||||
@@ -5751,6 +5753,7 @@ const sites = [
|
|||||||
slug: 'analyzedgirls',
|
slug: 'analyzedgirls',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://analyzedgirls.com',
|
url: 'https://analyzedgirls.com',
|
||||||
|
tags: ['anal'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '178',
|
siteId: '178',
|
||||||
},
|
},
|
||||||
@@ -5782,6 +5785,7 @@ const sites = [
|
|||||||
slug: 'defiled18',
|
slug: 'defiled18',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://defiled18.com',
|
url: 'https://defiled18.com',
|
||||||
|
tags: ['bdsm'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '188',
|
siteId: '188',
|
||||||
},
|
},
|
||||||
@@ -5791,6 +5795,7 @@ const sites = [
|
|||||||
slug: 'doubleteamedteens',
|
slug: 'doubleteamedteens',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://doubleteamedteens.com',
|
url: 'https://doubleteamedteens.com',
|
||||||
|
tags: ['dp', 'mfm', 'threesome'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '190',
|
siteId: '190',
|
||||||
},
|
},
|
||||||
@@ -5834,6 +5839,7 @@ const sites = [
|
|||||||
slug: 'maketeengape',
|
slug: 'maketeengape',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://maketeengape.com',
|
url: 'https://maketeengape.com',
|
||||||
|
tags: ['anal', 'gaping'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '200',
|
siteId: '200',
|
||||||
},
|
},
|
||||||
@@ -5852,6 +5858,7 @@ const sites = [
|
|||||||
slug: 'seductive18',
|
slug: 'seductive18',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://seductive18.com',
|
url: 'https://seductive18.com',
|
||||||
|
tags: ['teen'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '204',
|
siteId: '204',
|
||||||
},
|
},
|
||||||
@@ -5861,6 +5868,7 @@ const sites = [
|
|||||||
slug: 'teenanalcasting',
|
slug: 'teenanalcasting',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://teenanalcasting.com',
|
url: 'https://teenanalcasting.com',
|
||||||
|
tags: ['anal'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '206',
|
siteId: '206',
|
||||||
},
|
},
|
||||||
@@ -5888,6 +5896,7 @@ const sites = [
|
|||||||
slug: 'teenstryblacks',
|
slug: 'teenstryblacks',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://teenstryblacks.com',
|
url: 'https://teenstryblacks.com',
|
||||||
|
tags: ['interracial', 'bbc'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '214',
|
siteId: '214',
|
||||||
},
|
},
|
||||||
@@ -5906,24 +5915,11 @@ const sites = [
|
|||||||
slug: 'teachmyass',
|
slug: 'teachmyass',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://teachmyass.com',
|
url: 'https://teachmyass.com',
|
||||||
|
tags: ['anal'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '368',
|
siteId: '368',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: 'Nightclub',
|
|
||||||
slug: 'nightclub',
|
|
||||||
parent: 'teencoreclub',
|
|
||||||
url: 'https://nightclub.com',
|
|
||||||
parameters: {},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Nightclub Live',
|
|
||||||
slug: 'nightclublive',
|
|
||||||
parent: 'teencoreclub',
|
|
||||||
url: 'https://nightclublive.com',
|
|
||||||
parameters: {},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: 'Drilled Chicks',
|
name: 'Drilled Chicks',
|
||||||
slug: 'drilledchicks',
|
slug: 'drilledchicks',
|
||||||
@@ -5936,6 +5932,7 @@ const sites = [
|
|||||||
slug: 'analcheckups',
|
slug: 'analcheckups',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://analcheckups.com',
|
url: 'https://analcheckups.com',
|
||||||
|
tags: ['anal'],
|
||||||
parameters: {},
|
parameters: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -5945,13 +5942,6 @@ const sites = [
|
|||||||
url: 'https://fabsluts.com',
|
url: 'https://fabsluts.com',
|
||||||
parameters: {},
|
parameters: {},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: 'Jerk-Off Pass',
|
|
||||||
slug: 'jerkoffpass',
|
|
||||||
parent: 'teencoreclub',
|
|
||||||
url: 'https://jerkoffpass.com',
|
|
||||||
parameters: {},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: 'Nylon Spunk Junkies',
|
name: 'Nylon Spunk Junkies',
|
||||||
slug: 'nylonspunkjunkies',
|
slug: 'nylonspunkjunkies',
|
||||||
@@ -5964,6 +5954,7 @@ const sites = [
|
|||||||
slug: 'shegotsix',
|
slug: 'shegotsix',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://shegotsix.com',
|
url: 'https://shegotsix.com',
|
||||||
|
tags: ['gangbang'],
|
||||||
parameters: {},
|
parameters: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -6013,17 +6004,39 @@ const sites = [
|
|||||||
slug: 'youngthroats',
|
slug: 'youngthroats',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://youngthroats.com',
|
url: 'https://youngthroats.com',
|
||||||
|
tags: ['blowjob', 'facefucking', 'deepthroat'],
|
||||||
parameters: {
|
parameters: {
|
||||||
siteId: '220',
|
siteId: '220',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
/* VOD service
|
/* VOD services
|
||||||
|
{
|
||||||
|
name: 'Nightclub',
|
||||||
|
slug: 'nightclub',
|
||||||
|
parent: 'teencoreclub',
|
||||||
|
url: 'https://nightclub.com',
|
||||||
|
parameters: {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Nightclub Live',
|
||||||
|
slug: 'nightclublive',
|
||||||
|
parent: 'teencoreclub',
|
||||||
|
url: 'https://nightclublive.com',
|
||||||
|
parameters: {},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "Let's Go Dirty",
|
name: "Let's Go Dirty",
|
||||||
slug: 'letsgodirty',
|
slug: 'letsgodirty',
|
||||||
parent: 'teencoreclub',
|
parent: 'teencoreclub',
|
||||||
url: 'https://letsgodirty.com',
|
url: 'https://letsgodirty.com',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'Jerk-Off Pass',
|
||||||
|
slug: 'jerkoffpass',
|
||||||
|
parent: 'teencoreclub',
|
||||||
|
url: 'https://jerkoffpass.com',
|
||||||
|
parameters: {},
|
||||||
|
},
|
||||||
*/
|
*/
|
||||||
// TWISTYS
|
// TWISTYS
|
||||||
{
|
{
|
||||||
|
|||||||
63
src/scrapers/teencoreclub.js
Normal file
63
src/scrapers/teencoreclub.js
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const moment = require('moment');
|
||||||
|
|
||||||
|
const http = require('../utils/http');
|
||||||
|
const { prefixUrl } = require('../utils/qu');
|
||||||
|
|
||||||
|
function scrapeLatest(scenes, entity) {
|
||||||
|
return scenes.map((scene) => {
|
||||||
|
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,
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user