Merge branch 'experimental' into master
This commit is contained in:
commit
501e980e73
|
@ -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() {
|
||||
|
|
|
@ -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 |
|
@ -1259,6 +1259,10 @@ const aliases = [
|
|||
name: 'cunnilingus',
|
||||
for: 'pussy-eating',
|
||||
},
|
||||
{
|
||||
name: 'cunilingus',
|
||||
for: 'pussy-eating',
|
||||
},
|
||||
{
|
||||
name: 'pussy licking',
|
||||
for: 'pussy-eating',
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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'],
|
||||
|
|
|
@ -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',
|
||||
}),
|
||||
],
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,7 +56,11 @@ function prefixUrl(urlValue, origin, protocol = 'https') {
|
|||
return `${origin}${urlValue}`;
|
||||
}
|
||||
|
||||
if (origin) {
|
||||
return `${origin}/${urlValue}`;
|
||||
}
|
||||
|
||||
return urlValue;
|
||||
}
|
||||
|
||||
function q(context, selector, attrArg, applyTrim = true) {
|
||||
|
@ -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' } = {}) {
|
||||
|
|
Loading…
Reference in New Issue