Added PG site search function and enabled site search bar. Added Full Porn network assets.

This commit is contained in:
ThePendulum 2020-02-15 01:10:32 +01:00
parent bf5a2096f5
commit fe3cc901b0
25 changed files with 239 additions and 27 deletions

View File

@ -1,11 +1,39 @@
<template> <template>
<div class="networks"> <div class="networks">
<input <form
:placeholder="`Find ${siteCount} sites in ${networks.length} networks`"
class="search" class="search"
@submit.prevent="searchSites"
>
<input
v-model="query"
:placeholder="`Find ${siteCount} sites in ${networks.length} networks`"
class="query"
@input="searchSites"
> >
<div class="network-tiles"> <button
type="submit"
class="search-button"
><Icon icon="search" /></button>
</form>
<div
v-if="query.length"
class="network-tiles"
>
<Site
v-for="site in searchResults"
:key="`site-tile-${site.slug}`"
:site="site"
/>
<span v-if="searchResults.length === 0">No results for "{{ query }}"</span>
</div>
<div
v-if="query.length === 0"
class="network-tiles"
>
<Network <Network
v-for="network in networks" v-for="network in networks"
:key="`network-tile-${network.slug}`" :key="`network-tile-${network.slug}`"
@ -17,6 +45,16 @@
<script> <script>
import Network from '../tile/network.vue'; import Network from '../tile/network.vue';
import Site from '../tile/site.vue';
async function searchSites() {
this.searchResults = await this.$store.dispatch('searchSites', {
query: this.query,
limit: 20,
});
console.log(this.searchResults);
}
async function mounted() { async function mounted() {
this.networks = await this.$store.dispatch('fetchNetworks'); this.networks = await this.$store.dispatch('fetchNetworks');
@ -30,17 +68,23 @@ function siteCount() {
export default { export default {
components: { components: {
Network, Network,
Site,
}, },
data() { data() {
return { return {
networks: [], query: '',
pageTitle: null, pageTitle: null,
networks: [],
searchResults: [],
}; };
}, },
computed: { computed: {
siteCount, siteCount,
}, },
mounted, mounted,
methods: {
searchSites,
},
}; };
</script> </script>
@ -52,8 +96,13 @@ export default {
} }
.search { .search {
display: flex;
width: 100%; width: 100%;
max-width: 40rem; max-width: 40rem;
}
.query {
flex-grow: 1;
box-sizing: border-box; box-sizing: border-box;
padding: 1rem; padding: 1rem;
border: none; border: none;
@ -68,6 +117,24 @@ export default {
} }
} }
.search-button {
padding: 1rem;
background: none;
border: none;
.icon {
fill: $shadow;
}
&:hover {
cursor: pointer;
.icon {
fill: $primary;
}
}
}
.network-tiles { .network-tiles {
display: grid; display: grid;
grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));

View File

@ -72,21 +72,37 @@ function initSitesActions(store, _router) {
return sites; return sites;
} }
/* async function searchSites({ _commit }, { query, limit = 20 }) {
async function fetchSiteReleases({ _commit }, siteId) { const { sites } = await graphql(`
const releases = await get(`/sites/${siteId}/releases`, { query SearchSites(
filter: store.state.ui.filter, $query: String!
after: store.getters.after, $limit:Int = 20,
before: store.getters.before, ) {
sites: searchSites(
search: $query,
first: $limit
) {
name
slug
url
network {
name
slug
url
}
}
}
`, {
query,
limit,
}); });
return releases; return sites;
} }
*/
return { return {
fetchSites, fetchSites,
// fetchSiteReleases, searchSites,
}; };
} }

View File

@ -460,6 +460,14 @@ exports.up = knex => Promise.resolve()
COMMENT ON COLUMN actors.height IS E'@omit read,update,create,delete,all,many'; COMMENT ON COLUMN actors.height IS E'@omit read,update,create,delete,all,many';
COMMENT ON COLUMN actors.weight IS E'@omit read,update,create,delete,all,many'; COMMENT ON COLUMN actors.weight IS E'@omit read,update,create,delete,all,many';
CREATE FUNCTION search_sites(search text) RETURNS SETOF sites AS $$
SELECT * FROM sites
WHERE
name ILIKE ('%' || search || '%') OR
slug ILIKE ('%' || search || '%') OR
url ILIKE ('%' || search || '%')
$$ LANGUAGE SQL STABLE;
/* /*
CREATE VIEW releases_actors_sortable AS CREATE VIEW releases_actors_sortable AS
SELECT releases_actors.*, actors.gender, actors.name, actors.birthdate FROM releases_actors SELECT releases_actors.*, actors.gender, actors.name, actors.birthdate FROM releases_actors

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

View File

@ -72,24 +72,12 @@ const networks = [
url: 'https://ddfnetwork.com', url: 'https://ddfnetwork.com',
description: 'European porn videos hub with exclusive VR, 4K and full HD XXX videos and hot sex photos of Europes finest porn star babes.', description: 'European porn videos hub with exclusive VR, 4K and full HD XXX videos and hot sex photos of Europes finest porn star babes.',
}, },
{
slug: 'famedigital',
name: 'Fame Digital',
url: 'https://www.famedigital.com',
description: 'Watch and download thousands of the best porn videos at FameDigital.com, the largest porn network on the web! The hottest teens, MILFs and more pornstars are all here!',
},
{ {
slug: 'digitalplayground', slug: 'digitalplayground',
name: 'Digital Playground', name: 'Digital Playground',
url: 'https://www.digitalplayground.com', url: 'https://www.digitalplayground.com',
description: 'DigitalPlayground.com is the leader in high quality adult blockbuster movies and award winning sex parodies that feature the most exclusive pornstars online! Adult Film Database of adult movies.', description: 'DigitalPlayground.com is the leader in high quality adult blockbuster movies and award winning sex parodies that feature the most exclusive pornstars online! Adult Film Database of adult movies.',
}, },
{
slug: 'metrohd',
name: 'Metro HD',
url: 'https://www.metrohd.com',
description: 'Checkout MetroHD official pornsite featuring top rated pornstars and XXX videos.',
},
{ {
slug: 'dogfartnetwork', slug: 'dogfartnetwork',
name: 'Dogfart Network', name: 'Dogfart Network',
@ -106,7 +94,12 @@ const networks = [
slug: 'fantasymassage', slug: 'fantasymassage',
name: 'Fantasy Massage', name: 'Fantasy Massage',
url: 'https://www.fantasymassage.com', url: 'https://www.fantasymassage.com',
description: '', },
{
slug: 'famedigital',
name: 'Fame Digital',
url: 'https://www.famedigital.com',
description: 'Watch and download thousands of the best porn videos at FameDigital.com, the largest porn network on the web! The hottest teens, MILFs and more pornstars are all here!',
}, },
{ {
slug: 'fakehub', slug: 'fakehub',
@ -114,6 +107,12 @@ const networks = [
url: 'https://www.fakehub.com', url: 'https://www.fakehub.com',
description: 'Wherever they go, there is porn. Hospital, Taxis, Casting… Maybe fucking to a fake cop, fake agent or fake taxi driver. And we record it all.', description: 'Wherever they go, there is porn. Hospital, Taxis, Casting… Maybe fucking to a fake cop, fake agent or fake taxi driver. And we record it all.',
}, },
{
slug: 'fullpornnetwork',
name: 'Full Porn Network',
url: 'https://www.fullpornnetwork.com',
description: 'FullPornNetwork.com is the latest and greatest for one stop shop porn sites. Check out the expanding library of the multi-site network. All of fan\'s favorite content from ANALIZED.COM, DTFsluts.com, YourMomDoesPorn.com and many more. Give die hard porn fans access to an array of premium content available in 4k and 1080p. Full access included streaming hd and unlimited downloads. Be exclusive, be a member to FullPornNetwork.com Today.',
},
{ {
slug: 'girlsway', slug: 'girlsway',
name: 'Girlsway', name: 'Girlsway',
@ -160,6 +159,12 @@ const networks = [
url: 'https://www.men.com', url: 'https://www.men.com',
description: 'Check out the best gay porn site on the net with daily updates, award-winning original series, exclusive Men.com models and over 800 of the hottest guys in gay porn.', description: 'Check out the best gay porn site on the net with daily updates, award-winning original series, exclusive Men.com models and over 800 of the hottest guys in gay porn.',
}, },
{
slug: 'metrohd',
name: 'Metro HD',
url: 'https://www.metrohd.com',
description: 'Checkout MetroHD official pornsite featuring top rated pornstars and XXX videos.',
},
{ {
slug: 'mikeadriano', slug: 'mikeadriano',
name: 'Mike Adriano', name: 'Mike Adriano',

View File

@ -1842,6 +1842,122 @@ const sites = [
photos: 'https://www.fantasymassage.com/en/photo', photos: 'https://www.fantasymassage.com/en/photo',
}, },
}, },
// FULL PORN NETWORK
{
slug: 'analbbc',
name: 'Anal BBC',
url: 'https://analbbc.com/',
tags: ['anal', 'bbc'],
network: 'fullpornnetwork',
},
{
slug: 'analviolation',
name: 'Anal Violation',
url: 'https://analviolation.com/',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'analized',
name: 'ANALIZED',
url: 'https://analized.com/',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'baddaddypov',
name: 'Bad Daddy POV',
url: 'https://baddaddypov.com/',
tags: ['pov', 'family'],
network: 'fullpornnetwork',
},
{
slug: 'dtfsluts',
name: 'DTF Sluts',
url: 'https://dtfsluts.com/',
network: 'fullpornnetwork',
},
{
slug: 'girlfaction',
name: 'Girlfaction',
url: 'https://girlfaction.com/',
tags: ['lesbian'],
network: 'fullpornnetwork',
},
{
slug: 'hergape',
name: 'Her Gape',
url: 'https://hergape.com/',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'homemadeanalwhores',
name: 'Homemade Anal Whores',
url: 'https://homemadeanalwhores.com/',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'jamesdeen',
name: 'James Deen',
url: 'https://jamesdeen.com/',
network: 'fullpornnetwork',
},
{
slug: 'onlyprince',
name: 'Only Prince',
url: 'https://onlyprince.com/',
tags: ['bbc'],
network: 'fullpornnetwork',
},
{
slug: 'pervertgallery',
name: 'Pervert Gallery',
url: 'http://pervertgallery.com/',
network: 'fullpornnetwork',
},
{
slug: 'povperverts',
name: 'POV Perverts',
url: 'http://povperverts.net/',
tags: ['pov'],
network: 'fullpornnetwork',
},
{
slug: 'teenageanalsluts',
name: 'Teenage Anal Sluts',
url: 'https://teenageanalsluts.com/',
tags: ['anal'],
network: 'fullpornnetwork',
},
{
slug: 'twistedvisual',
name: 'Twisted Visual',
url: 'https://twistedvisual.com/',
network: 'fullpornnetwork',
},
{
slug: 'yourmomdoesanal',
name: 'Your Mom Does Anal',
url: 'http://yourmomdoesanal.com/',
tags: ['anal', 'milf'],
network: 'fullpornnetwork',
},
{
slug: 'yourmomdoesporn',
name: 'Your Mom Does Porn',
url: 'https://yourmomdoesporn.com/',
tags: ['milf'],
network: 'fullpornnetwork',
},
{
slug: 'mugfucked',
name: 'Mugfucked',
url: 'https://mugfucked.com/',
tags: ['facefucking', 'blowjob'],
network: 'fullpornnetwork',
},
// GIRLSWAY // GIRLSWAY
{ {
slug: 'girlsway', slug: 'girlsway',
@ -4549,7 +4665,7 @@ const sites = [
network: 'score', network: 'score',
}, },
{ {
name: 'Fucked MILFs', name: 'Your Mom Loves Anal',
slug: 'yourmomlovesanal', slug: 'yourmomlovesanal',
url: 'https://www.milfbundle.com/yourmomlovesanal', url: 'https://www.milfbundle.com/yourmomlovesanal',
network: 'score', network: 'score',