forked from DebaucheryLibrarian/traxxx
Added Amateur Allure.
This commit is contained in:
parent
3290a5f686
commit
e57f440665
|
@ -219,6 +219,17 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.networks {
|
||||||
|
display: grid;
|
||||||
|
grid-gap: 0 1rem;
|
||||||
|
flex-grow: 1;
|
||||||
|
padding: 1rem;
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
grid-template-rows: min-content;
|
||||||
|
overflow-y: auto;
|
||||||
|
scrollbar-color: $highlight-weak $profile;
|
||||||
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-height: 8rem;
|
max-height: 8rem;
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
:alt="release.title"
|
:alt="release.title"
|
||||||
class="item trailer-video"
|
class="item trailer-video"
|
||||||
controls
|
controls
|
||||||
|
@playing="playing = true"
|
||||||
|
@pause="playing = false"
|
||||||
>Sorry, the tailer cannot be played in your browser</video>
|
>Sorry, the tailer cannot be played in your browser</video>
|
||||||
|
|
||||||
<video
|
<video
|
||||||
|
@ -35,6 +37,8 @@
|
||||||
:alt="release.title"
|
:alt="release.title"
|
||||||
class="item trailer-video"
|
class="item trailer-video"
|
||||||
controls
|
controls
|
||||||
|
@playing="playing = true"
|
||||||
|
@pause="playing = false"
|
||||||
>Sorry, the tailer cannot be played in your browser</video>
|
>Sorry, the tailer cannot be played in your browser</video>
|
||||||
|
|
||||||
<img
|
<img
|
||||||
|
@ -43,6 +47,15 @@
|
||||||
:alt="release.title"
|
:alt="release.title"
|
||||||
class="item trailer-video"
|
class="item trailer-video"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
<a
|
||||||
|
v-if="release.poster"
|
||||||
|
:href="`/media/${release.poster.path}`"
|
||||||
|
:class="{ playing }"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
class="poster-link"
|
||||||
|
><Icon icon="image" /></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
|
@ -86,6 +99,11 @@ export default {
|
||||||
default: null,
|
default: null,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
playing: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
photos,
|
photos,
|
||||||
},
|
},
|
||||||
|
@ -114,6 +132,7 @@ export default {
|
||||||
|
|
||||||
.trailer {
|
.trailer {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
max-width: 100vw;
|
max-width: 100vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,6 +141,32 @@ export default {
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.poster-link {
|
||||||
|
position: absolute;
|
||||||
|
top: .5rem;
|
||||||
|
right: .5rem;
|
||||||
|
transition: opacity .1s ease;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
width: 1.5rem;
|
||||||
|
height: 1.5rem;
|
||||||
|
fill: $highlight;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.playing {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
opacity: 1;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
fill: $highlight-strong;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
height: 18rem;
|
height: 18rem;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|
|
@ -71,6 +71,7 @@ export default {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
|
grid-template-rows: min-content;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
scrollbar-color: $highlight-weak $profile;
|
scrollbar-color: $highlight-weak $profile;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,3 +17,11 @@
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-focus-inner {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ function initReleasesActions(store, _router) {
|
||||||
release {
|
release {
|
||||||
id
|
id
|
||||||
title
|
title
|
||||||
|
slug
|
||||||
date
|
date
|
||||||
url
|
url
|
||||||
batch
|
batch
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 61 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 61 KiB |
Binary file not shown.
After Width: | Height: | Size: 135 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
|
@ -866,6 +866,18 @@ const aliases = [
|
||||||
name: 'ball gag',
|
name: 'ball gag',
|
||||||
for: 'gag',
|
for: 'gag',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'ball lick',
|
||||||
|
for: 'ball-licking',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'ball suck',
|
||||||
|
for: 'ball-licking',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'ball sucking',
|
||||||
|
for: 'ball-licking',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'boob fucking',
|
name: 'boob fucking',
|
||||||
for: 'titty-fuck',
|
for: 'titty-fuck',
|
||||||
|
@ -878,6 +890,10 @@ const aliases = [
|
||||||
name: 'fmf',
|
name: 'fmf',
|
||||||
for: 'mff',
|
for: 'mff',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'mff',
|
||||||
|
for: 'mff',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'ffm',
|
name: 'ffm',
|
||||||
for: 'mff',
|
for: 'mff',
|
||||||
|
|
|
@ -48,6 +48,11 @@ const networks = [
|
||||||
description: 'Adult Time is a premium streaming service for adults! Watch adult movies, series, and channels from the top names in the industry.',
|
description: 'Adult Time is a premium streaming service for adults! Watch adult movies, series, and channels from the top names in the industry.',
|
||||||
parent: 'gamma',
|
parent: 'gamma',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
slug: 'amateurallure',
|
||||||
|
name: 'Amateur Allure',
|
||||||
|
url: 'https://www.amateurallure.com',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
slug: 'assylum',
|
slug: 'assylum',
|
||||||
name: 'Assylum',
|
name: 'Assylum',
|
||||||
|
|
|
@ -388,6 +388,29 @@ const sites = [
|
||||||
description: 'LadyGonzo.com is a new Adult Time porn series featuring Joanna Angel shooting hardcore sex and gonzo porn movies the way she\'d like to see it!',
|
description: 'LadyGonzo.com is a new Adult Time porn series featuring Joanna Angel shooting hardcore sex and gonzo porn movies the way she\'d like to see it!',
|
||||||
network: 'adulttime',
|
network: 'adulttime',
|
||||||
},
|
},
|
||||||
|
// AMATEUR ALLURE
|
||||||
|
{
|
||||||
|
name: 'Amateur Allure',
|
||||||
|
slug: 'amateurallure',
|
||||||
|
url: 'https://www.amateurallure.com',
|
||||||
|
parameters: {
|
||||||
|
upcoming: false,
|
||||||
|
latest: 'https://www.amateurallure.com/tour/updates/page_%d.html',
|
||||||
|
photos: 'https://www.amateurallure.com/tour/gallery.php',
|
||||||
|
},
|
||||||
|
network: 'amateurallure',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Swallow Salon',
|
||||||
|
slug: 'swallowsalon',
|
||||||
|
url: 'https://www.swallowsalon.com',
|
||||||
|
parameters: {
|
||||||
|
upcoming: false,
|
||||||
|
latest: 'https://www.swallowsalon.com/categories/movies_%d_d.html',
|
||||||
|
photos: 'https://www.swallowsalon.com/gallery.php',
|
||||||
|
},
|
||||||
|
network: 'amateurallure',
|
||||||
|
},
|
||||||
// ASSYLUM
|
// ASSYLUM
|
||||||
{
|
{
|
||||||
slug: 'assylum',
|
slug: 'assylum',
|
||||||
|
|
|
@ -94,6 +94,8 @@ async function extractItem(source) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchItem(source, index, existingItemsBySource, domain, role, attempt = 1, originalSource = null) {
|
async function fetchItem(source, index, existingItemsBySource, domain, role, attempt = 1, originalSource = null) {
|
||||||
|
if (!source) return null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (Array.isArray(source)) {
|
if (Array.isArray(source)) {
|
||||||
if (source.every(sourceX => !!sourceX.quality)) {
|
if (source.every(sourceX => !!sourceX.quality)) {
|
||||||
|
@ -124,7 +126,12 @@ async function fetchItem(source, index, existingItemsBySource, domain, role, att
|
||||||
logger.verbose(`Fetching ${domain} ${role} from ${source.src || source}`);
|
logger.verbose(`Fetching ${domain} ${role} from ${source.src || source}`);
|
||||||
|
|
||||||
// const res = await bhttp.get(source.src || source);
|
// const res = await bhttp.get(source.src || source);
|
||||||
const res = await get(source.src || source);
|
const res = await get(source.src || source, {
|
||||||
|
headers: {
|
||||||
|
...(source.referer && { referer: source.referer }),
|
||||||
|
...(source.host && { host: source.host }),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
if (res.statusCode === 200) {
|
if (res.statusCode === 200) {
|
||||||
const { pathname } = new URL(source.src || source);
|
const { pathname } = new URL(source.src || source);
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const { fetchLatest, fetchScene } = require('./julesjordan');
|
||||||
|
|
||||||
|
function extractActors(scene) {
|
||||||
|
const release = scene;
|
||||||
|
|
||||||
|
if (!scene.actors || scene.actors.length === 0) {
|
||||||
|
const introActorMatches = scene.title.match(/(?:presents|introduces|features|welcomes) (\w+ \w+)/i);
|
||||||
|
const introTwoActorMatches = scene.title.match(/(?:presents|introduces|features|welcomes) (?:(\w+)|(\w+ \w+)) and (\w+ \w+)/i);
|
||||||
|
const returnActorMatches = scene.title.match(/(?:(^\w+)|(\w+ \w+))(?:,| (?:return|visit|pov|give|suck|lick|milk|love|enjoy|service|is))/i);
|
||||||
|
const returnTwoActorMatches = scene.title.match(/(\w+ \w+) and (?:(\w+)|(\w+ \w+)) (?:return|visit|give|suck|lick|milk|love|enjoy|service|are)/i);
|
||||||
|
|
||||||
|
const rawActors = (introTwoActorMatches || introActorMatches || returnTwoActorMatches || returnActorMatches)?.slice(1);
|
||||||
|
const actors = rawActors?.filter((actor) => {
|
||||||
|
if (!actor) return false;
|
||||||
|
if (/swallow|\bcum|fuck|suck|give|giving|take|takes|taking|head|teen|babe|cute|beaut|naughty|teacher|nanny|adorable|brunette|blonde|bust|audition|from|\band\b|\bto\b/i.test(actor)) return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (actors) {
|
||||||
|
release.actors = actors;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (release.actors?.length > 1 || /threesome|threeway/.test(scene.title)) {
|
||||||
|
release.tags = scene.tags ? [...scene.tags, 'mff'] : ['mff'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return release;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchLatestWrap(site, page = 1) {
|
||||||
|
const latest = await fetchLatest(site, page);
|
||||||
|
|
||||||
|
return latest.map(scene => extractActors(scene));
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchSceneWrap(url, site) {
|
||||||
|
const scene = await fetchScene(url, site);
|
||||||
|
|
||||||
|
return extractActors(scene);
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
fetchLatest: fetchLatestWrap,
|
||||||
|
fetchScene: fetchSceneWrap,
|
||||||
|
};
|
|
@ -1,5 +1,6 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
const util = require('util');
|
||||||
const Promise = require('bluebird');
|
const Promise = require('bluebird');
|
||||||
const bhttp = require('bhttp');
|
const bhttp = require('bhttp');
|
||||||
const cheerio = require('cheerio');
|
const cheerio = require('cheerio');
|
||||||
|
@ -78,7 +79,7 @@ async function getPhotosLegacy(entryId, site, type = 'highres', page = 1) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getPhotos(entryId, site, type = 'highres', page = 1) {
|
async function getPhotos(entryId, site, type = 'highres', page = 1) {
|
||||||
const albumUrl = `${site.url}/trial/gallery.php?id=${entryId}&type=${type}&page=${page}`;
|
const albumUrl = `${site.parameters?.photos || `${site.url}/gallery.php`}?id=${entryId}&type=${type}&page=${page}`;
|
||||||
|
|
||||||
const res = await bhttp.get(albumUrl);
|
const res = await bhttp.get(albumUrl);
|
||||||
const html = res.body.toString();
|
const html = res.body.toString();
|
||||||
|
@ -86,7 +87,10 @@ async function getPhotos(entryId, site, type = 'highres', page = 1) {
|
||||||
const sourceLines = html.split(/\n/).filter(line => line.match(/ptx\["\w+"\]/));
|
const sourceLines = html.split(/\n/).filter(line => line.match(/ptx\["\w+"\]/));
|
||||||
const sources = sourceLines.reduce((acc, sourceLine) => {
|
const sources = sourceLines.reduce((acc, sourceLine) => {
|
||||||
const quality = sourceLine.match(/\["\w+"\]/)[0].slice(2, -2);
|
const quality = sourceLine.match(/\["\w+"\]/)[0].slice(2, -2);
|
||||||
const source = sourceLine.slice(sourceLine.indexOf('/trial'), sourceLine.indexOf('.jpg') + 4);
|
const sourceStart = sourceLine.match(/\/trial|\/tour|\/content/);
|
||||||
|
|
||||||
|
if (!sourceStart) return acc;
|
||||||
|
const source = sourceLine.slice(sourceStart.index, sourceLine.indexOf('.jpg') + 4);
|
||||||
|
|
||||||
if (!source) return acc;
|
if (!source) return acc;
|
||||||
if (!acc[quality]) acc[quality] = [];
|
if (!acc[quality]) acc[quality] = [];
|
||||||
|
@ -120,9 +124,9 @@ function scrapeLatest(html, site) {
|
||||||
return scenesElements.map((element) => {
|
return scenesElements.map((element) => {
|
||||||
const release = {};
|
const release = {};
|
||||||
|
|
||||||
const sceneLinkElement = $(element).find('a[title*=" "]');
|
const sceneLinkElement = $(element).find('a[title], .update_title a');
|
||||||
release.url = sceneLinkElement.attr('href');
|
release.url = sceneLinkElement.attr('href');
|
||||||
release.title = sceneLinkElement.text();
|
release.title = sceneLinkElement.text()?.trim() || sceneLinkElement.attr('alt')?.trim();
|
||||||
|
|
||||||
release.entryId = $(element).attr('data-setid');
|
release.entryId = $(element).attr('data-setid');
|
||||||
|
|
||||||
|
@ -135,14 +139,16 @@ function scrapeLatest(html, site) {
|
||||||
.toArray();
|
.toArray();
|
||||||
|
|
||||||
const photoElement = $(element).find('a img.thumbs');
|
const photoElement = $(element).find('a img.thumbs');
|
||||||
const photoCount = Number(photoElement.attr('cnt'));
|
const photoCount = Number(photoElement.attr('cnt')) || 1;
|
||||||
[release.poster, ...release.photos] = Array.from({ length: photoCount }, (value, index) => {
|
[release.poster, ...release.photos] = Array.from({ length: photoCount }, (value, index) => {
|
||||||
const src = photoElement.attr(`src${index}_1x`) || photoElement.attr(`src${index}`);
|
const src = photoElement.attr(`src${index}_1x`) || photoElement.attr(`src${index}`) || photoElement.attr('src');
|
||||||
|
|
||||||
if (!src) return null;
|
if (!src) return null;
|
||||||
if (src.match(/^http/)) return src;
|
|
||||||
|
|
||||||
return `${site.url}${src}`;
|
return {
|
||||||
|
src: /^http/.test(src) ? src : `${site.url}${src}`,
|
||||||
|
referer: site.url,
|
||||||
|
};
|
||||||
}).filter(photoUrl => photoUrl);
|
}).filter(photoUrl => photoUrl);
|
||||||
|
|
||||||
const teaserScript = $(element).find('script').html();
|
const teaserScript = $(element).find('script').html();
|
||||||
|
@ -249,21 +255,39 @@ async function scrapeScene(html, url, site) {
|
||||||
.split('\n');
|
.split('\n');
|
||||||
|
|
||||||
const posterPath = infoLines.find(line => line.match('useimage')).replace('useimage = "', '').slice(0, -2);
|
const posterPath = infoLines.find(line => line.match('useimage')).replace('useimage = "', '').slice(0, -2);
|
||||||
if (posterPath) release.poster = posterPath.match(/^http/) ? posterPath : `${site.url}${posterPath}`;
|
|
||||||
|
|
||||||
const trailerLine = infoLines.find(line => line.match('movie["Trailer_720"]'));
|
if (posterPath) {
|
||||||
|
const poster = /^http/.test(posterPath) ? posterPath : `${site.url}${posterPath}`;
|
||||||
|
|
||||||
|
if (poster) {
|
||||||
|
release.poster = {
|
||||||
|
src: poster,
|
||||||
|
referer: site.url,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (site.slug !== 'manuelferrara') {
|
if (site.slug !== 'manuelferrara') {
|
||||||
release.trailer = {
|
const trailerLines = infoLines.filter(line => /movie\["Trailer\w*"\]\[/.test(line));
|
||||||
src: trailerLine.slice(trailerLine.indexOf('path:"') + 6, trailerLine.indexOf('",movie')),
|
|
||||||
quality: 720,
|
if (trailerLines.length) {
|
||||||
|
release.trailer = trailerLines.map((trailerLine) => {
|
||||||
|
const src = trailerLine.match(/path:"([\w:/.&=?%]+)"/)?.[1];
|
||||||
|
const quality = trailerLine.match(/movie_height:'(\d+)/)?.[1];
|
||||||
|
|
||||||
|
return src && {
|
||||||
|
src: /^http/.test(src) ? src : `${site.url}${src}`,
|
||||||
|
quality: quality && Number(quality),
|
||||||
};
|
};
|
||||||
|
}).filter(Boolean);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
release.photos = await getPhotos(release.entryId, site);
|
release.photos = await getPhotos(release.entryId, site);
|
||||||
|
|
||||||
release.tags = $('.update_tags a').map((tagIndex, tagElement) => $(tagElement).text()).toArray();
|
release.tags = $('.update_tags a').map((tagIndex, tagElement) => $(tagElement).text()).toArray();
|
||||||
release.movie = $('.update_dvds a').attr('href');
|
|
||||||
|
const movie = $('.update_dvds a').attr('href');
|
||||||
|
if (movie) release.movie = movie;
|
||||||
|
|
||||||
release.stars = Number($('.avg_rating').text().trim().replace(/[\s|Avg Rating:]/g, ''));
|
release.stars = Number($('.avg_rating').text().trim().replace(/[\s|Avg Rating:]/g, ''));
|
||||||
|
|
||||||
|
@ -320,17 +344,29 @@ function scrapeProfile(html, url, actorName) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchLatest(site, page = 1) {
|
async function fetchLatest(site, page = 1) {
|
||||||
const res = await bhttp.get(`${site.url}/trial/categories/movies_${page}_d.html`);
|
const url = site.parameters?.latest ? util.format(site.parameters.latest, page) : `${site.url}/trial/categories/movies_${page}_d.html`;
|
||||||
|
const res = await bhttp.get(url);
|
||||||
|
|
||||||
|
if (res.statusCode === 200) {
|
||||||
return scrapeLatest(res.body.toString(), site);
|
return scrapeLatest(res.body.toString(), site);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchUpcoming(site) {
|
return res.statusCode;
|
||||||
const res = await bhttp.get(`${site.url}/trial/index.php`);
|
}
|
||||||
|
|
||||||
|
async function fetchUpcoming(site) {
|
||||||
|
if (site.parameters?.upcoming === false) return null;
|
||||||
|
|
||||||
|
const url = site.parameters?.upcoming ? util.format(site.parameters.upcoming) : `${site.url}/trial/index.php`;
|
||||||
|
const res = await bhttp.get(url);
|
||||||
|
|
||||||
|
if (res.statusCode === 200) {
|
||||||
return scrapeUpcoming(res.body.toString(), site);
|
return scrapeUpcoming(res.body.toString(), site);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return res.statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
async function fetchScene(url, site) {
|
async function fetchScene(url, site) {
|
||||||
const res = await bhttp.get(url);
|
const res = await bhttp.get(url);
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
const adulttime = require('./adulttime');
|
const adulttime = require('./adulttime');
|
||||||
const assylum = require('./assylum');
|
const assylum = require('./assylum');
|
||||||
|
const amateurallure = require('./amateurallure');
|
||||||
const babes = require('./babes');
|
const babes = require('./babes');
|
||||||
const bang = require('./bang');
|
const bang = require('./bang');
|
||||||
const bangbros = require('./bangbros');
|
const bangbros = require('./bangbros');
|
||||||
|
@ -65,6 +66,7 @@ module.exports = {
|
||||||
'21sextreme': sextreme,
|
'21sextreme': sextreme,
|
||||||
'21sextury': sextury,
|
'21sextury': sextury,
|
||||||
adulttime,
|
adulttime,
|
||||||
|
amateurallure,
|
||||||
assylum,
|
assylum,
|
||||||
babes,
|
babes,
|
||||||
bang,
|
bang,
|
||||||
|
@ -83,6 +85,7 @@ module.exports = {
|
||||||
fantasymassage,
|
fantasymassage,
|
||||||
fullpornnetwork,
|
fullpornnetwork,
|
||||||
girlsway,
|
girlsway,
|
||||||
|
girlgirl: julesjordan,
|
||||||
insex,
|
insex,
|
||||||
jayrock,
|
jayrock,
|
||||||
julesjordan,
|
julesjordan,
|
||||||
|
@ -106,6 +109,7 @@ module.exports = {
|
||||||
puretaboo,
|
puretaboo,
|
||||||
realitykings,
|
realitykings,
|
||||||
score,
|
score,
|
||||||
|
swallowsalon: julesjordan,
|
||||||
teamskeet,
|
teamskeet,
|
||||||
twistys,
|
twistys,
|
||||||
vivid,
|
vivid,
|
||||||
|
|
Loading…
Reference in New Issue