Merge branch 'experimental' into master

This commit is contained in:
DebaucheryLibrarian 2020-09-08 15:45:02 +02:00
commit 501e980e73
12 changed files with 53 additions and 28 deletions

View File

@ -26,10 +26,19 @@
v-for="channel in channelsPerNetwork"
:key="`channel-${channel.id}`"
class="filter-item"
:class="{ [channel.type]: true, independent: channel.independent }"
:class="{
[channel.type]: true,
independent: channel.independent,
selected: selectedChannels.includes(channel.slug),
}"
>
<router-link
:to="{ query: { ...$route.query, channels: channel.slug, mode }, params: { pageNumber: 1 } }"
:to="{ query: {
...$route.query,
[channel.type === 'network' ? 'networks' : 'channels']: channel.slug,
[channel.type === 'network' ? 'channels' : 'networks']: undefined,
mode,
}, params: { pageNumber: 1 } }"
class="filter-name"
>
<img
@ -42,9 +51,8 @@
</router-link>
<router-link
:to="{ query: { ...$route.query, ...getNewRange(channel.slug), mode }, params: { pageNumber: 1 } }"
:to="{ query: { ...$route.query, ...getNewRange(channel), mode }, params: { pageNumber: 1 } }"
class="filter-include"
:class="{ selected: selectedChannels.includes(channel.slug) }"
>
<Icon
icon="checkmark"
@ -64,11 +72,19 @@
<script>
function getNewRange(channel) {
if (this.selectedChannels.includes(channel)) {
return { channels: this.selectedChannels.filter(selectedTag => selectedTag !== channel).join(',') || undefined };
console.log(channel);
if (this.selectedChannels.includes(channel.slug)) {
return {
channels: this.selectedChannels.filter(selectedTag => selectedTag !== channel.slug).join(',') || undefined,
networks: undefined,
};
}
return { channels: this.selectedChannels.concat(channel).join(',') };
return {
channels: this.selectedChannels.concat(channel.slug).join(','),
networks: undefined,
};
}
function selectedChannels() {

View File

@ -104,8 +104,3 @@ export default {
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1259,6 +1259,10 @@ const aliases = [
name: 'cunnilingus',
for: 'pussy-eating',
},
{
name: 'cunilingus',
for: 'pussy-eating',
},
{
name: 'pussy licking',
for: 'pussy-eating',

View File

@ -5014,6 +5014,7 @@ const sites = [
url: 'http://www.analoverdose.com',
description: 'Before proceeding, use caution: the stunning pornstars of Anal Overdose are so fiery that they cause heavy breathing, throbbing cocks and volcanic loads of cum. If you think you can handle the heat of smoking tits, sweltering pussy and red hot ass.',
parent: 'pervcity',
tags: ['anal'],
parameters: {
siteId: 2,
tourId: 3,
@ -5036,6 +5037,7 @@ const sites = [
description: "Oral Overdose is the only site you need to live out every saliva soaked blowjob of your dreams in HD POV! We've got the most stunning cocksuckers in the world going to town on big dick. These babes not only love cock, they can't get enough of it! In fact, there is no prick too huge for our hungry girls' throats. You'll find gorgeous, big tits pornstars exercising their gag reflex in intense balls deep facefuck scenes. We also feature fresh, young newbies taking on the gagging deepthroat challenge.",
url: 'http://www.oraloverdose.com',
parent: 'pervcity',
tags: ['blowjob'],
parameters: {
siteId: 4,
tourId: 4,
@ -5047,6 +5049,7 @@ const sites = [
description: "You've just won the golden ticket to the best Chocolate BJs on the planet! We've sought far and wide to bring you the most beautiful black and ethnic pornstars. And they're in our members' area now! They can't wait to suck your white lollipop and lick the thick cream shooting from your big dick. Of course, no matter how sweet the booty or juicy the big tits, these brown foxes aren't all sugar and spice. In fact, when it comes to giving head, these big ass ebony babes know what they want: huge white cocks filling their throats!",
url: 'http://www.chocolatebjs.com',
parent: 'pervcity',
tags: ['blowjob', 'ebony'],
parameters: {
siteId: 5,
tourId: 6,
@ -5058,6 +5061,7 @@ const sites = [
description: "You don't need to travel the globe in search of the anal wonders of the world, because you get your own private tour right here on Up Her Asshole! Our stunning pornstars and rookie starlets welcome all ass fetish and anal sex fans, with their twerking bubble butts and winking assholes. However, big booty worship is just a slice of the fun. Combined with juicy tits (big and small, wet pussy (hairy and bald, these girls deliver a spectacular sensory experience in HD POV. Not only are you in danger of busting a nut before the going gets good, but also when the good turns remarkable with rimming, fingering and butt toys!",
url: 'http://upherasshole.com',
parent: 'pervcity',
tags: ['anal'],
parameters: {
siteId: 6,
tourId: 9,

View File

@ -617,7 +617,7 @@ const tagPosters = [
['dvp', 'poster', 'Riley Reid in "Pizza That Ass" for Reid My Lips'],
['dv-tp', 'poster', 'Juelz Ventura in "Gangbanged 5" for Elegant Angel'],
['ebony', 2, 'Nia Nacci for Sweetheart Video'],
['facefucking', 1, 'Paige Owens in "Dark Meat 12" for Evil Angel'],
['facefucking', 4, 'Brooklyn Gray in "Throats Fucks 6" for Evil Angel'],
['facial', 0, 'Brooklyn Gray in "All About Ass 4" for Evil Angel'],
['fake-boobs', 2, 'Gia Milana in "Hot Anal Latina" for HardX'],
['family', 0, 'Teanna Trump in "A Family Appear: Part One" for Brazzers'],
@ -707,6 +707,7 @@ const tagPhotos = [
['ebony', 1, 'Ana Foxxx in "DP Me 4" for HardX'],
['facial', 2, 'Ashly Anderson for Hookup Hotshot'],
['facial', 'poster', 'Jynx Maze'],
['facefucking', 1, 'Paige Owens in "Dark Meat 12" for Evil Angel'],
['facefucking', 2, 'Jynx Maze for Throated'],
['facefucking', 3, 'Adriana Chechik in "Performing Magic Butt Tricks With Jules Jordan. What Will Disappear In Her Ass?" for Jules Jordan'],
['fake-boobs', 9, 'Putri Cinta for StasyQ'],

View File

@ -9,7 +9,7 @@ require('winston-daily-rotate-file');
const args = require('./argv');
function logger(filepath) {
const root = filepath.match(/src\/|dist\//);
const root = filepath.match(/src[/\\]|dist[/\\]/);
const filename = filepath.slice(root.index + root[0].length)
.replace(path.extname(filepath), '');
@ -29,7 +29,7 @@ function logger(filepath) {
}),
new winston.transports.DailyRotateFile({
datePattern: 'YYYY-MM-DD',
filename: 'log/%DATE%.log',
filename: path.join('log', '%DATE%.log'),
level: 'silly',
}),
],

View File

@ -310,7 +310,7 @@ async function fetchActorReleases(profileUrl, getActorReleasesUrl, page = 1, acc
if (!res.ok) return [];
const releases = scrapeAll(res.item.html, null, origin);
const nextPage = res.item.qu.url('.Gamma_Paginator a.next');
const nextPage = res.item.query.url('.Gamma_Paginator a.next');
if (nextPage) {
return fetchActorReleases(profileUrl, getActorReleasesUrl, page + 1, accReleases.concat(releases));
@ -434,8 +434,6 @@ async function fetchApiLatest(site, page = 1, preData, include, upcoming = false
encodeJSON: true,
});
console.log(page, res.statusCode, res.body.results);
if (res.statusCode === 200 && res.body.results?.[0]?.hits) {
return scrapeApiReleases(res.body.results[0].hits, site);
}
@ -592,7 +590,7 @@ async function fetchProfile({ name: actorName }, context, altSearchUrl, getActor
return null;
}
async function fetchApiProfile(actorName, context, include) {
async function fetchApiProfile({ name: actorName }, context, include) {
const siteSlug = context.entity.slug || context.site?.slug || context.network?.slug;
const actorSlug = encodeURI(actorName);
@ -600,7 +598,7 @@ async function fetchApiProfile(actorName, context, include) {
const { apiUrl } = await fetchApiCredentials(referer);
const res = await bhttp.post(apiUrl, {
const res = await http.post(apiUrl, {
requests: [
{
indexName: 'all_actors',
@ -608,13 +606,12 @@ async function fetchApiProfile(actorName, context, include) {
},
],
}, {
headers: {
Referer: referer,
},
}, {
encodeJSON: true,
});
if (res.statusCode === 200 && res.body.results[0].hits.length > 0) {
if (res.status === 200 && res.body.results[0].hits.length > 0) {
const actorData = res.body.results[0].hits.find(actor => slugify(actor.name) === slugify(actorName));
if (actorData) {

View File

@ -7,8 +7,8 @@ function include(argv) {
photos: argv.media && argv.photos,
poster: argv.media && argv.posters,
posters: argv.media && argv.posters,
releases: argv.withScenes,
scenes: argv.withScenes,
releases: argv.actorsScenes,
scenes: argv.actorsScenes,
teaser: argv.media && argv.videos && argv.teasers,
teasers: argv.media && argv.videos && argv.teasers,
trailer: argv.media && argv.videos && argv.trailers,

View File

@ -40,6 +40,10 @@ function formatDate(dateValue, format, inputFormat) {
}
function prefixUrl(urlValue, origin, protocol = 'https') {
if (!urlValue) {
return null;
}
if (/^http/.test(urlValue)) {
return urlValue;
}
@ -52,9 +56,13 @@ function prefixUrl(urlValue, origin, protocol = 'https') {
return `${origin}${urlValue}`;
}
if (origin) {
return `${origin}/${urlValue}`;
}
return urlValue;
}
function q(context, selector, attrArg, applyTrim = true) {
const attr = attrArg === true ? 'textContent' : attrArg;
@ -217,7 +225,7 @@ function images(context, selector = 'img', attr, { origin, protocol = 'https' }
function url(context, selector = 'a', attr = 'href', { origin, protocol = 'https' } = {}) {
const urlEl = q(context, selector, attr);
return attr ? prefixUrl(urlEl, origin, protocol) : urlEl;
return prefixUrl(urlEl, origin, protocol);
}
function urls(context, selector = 'a', attr = 'href', { origin, protocol = 'https' } = {}) {