Added WP boob filter to actors page.

This commit is contained in:
DebaucheryLibrarian 2021-02-28 03:38:54 +01:00
parent 46a3906bde
commit eca24a7c65
10 changed files with 504 additions and 45 deletions

View File

@ -58,6 +58,71 @@
</ul> </ul>
</nav> </nav>
<nav class="filter">
<ul class="nolist">
<li>
<Tooltip class="filter boobs">
<span class="filter-trigger"><Icon icon="boobs" />Boobs</span>
<template v-slot:tooltip>
<div class="filter-section">
<label class="filter-label off">Size</label>
<span class="range-container">
<span
class="range-label"
@click="boobSize = 0"
><Icon icon="boobs-small" /></span>
<input
v-model="boobSize"
class="range"
type="range"
min="0"
max="10"
>
<span
class="range-label on"
@click="boobSize = 10"
><Icon icon="boobs-big" /></span>
</span>
</div>
<div class="filter-section">
<label class="filter-label">Enhanced</label>
<span
:class="{ [['off', 'default', 'on'][naturalBoobs]]: true }"
class="range-container"
>
<span
class="range-label off"
@click="updateValue('naturalBoobs', 0)"
>no</span>
<input
v-model="naturalBoobs"
class="range-toggle"
type="range"
min="0"
max="2"
value="1"
@change="updateFilters"
>
<span
class="range-label on"
@click="updateValue('naturalBoobs', 2)"
>yes</span>
</span>
</div>
</template>
</Tooltip>
</li>
</ul>
</nav>
<Pagination <Pagination
ref="pagination" ref="pagination"
:items-total="totalCount" :items-total="totalCount"
@ -88,7 +153,24 @@ import Actor from './tile.vue';
import Gender from './gender.vue'; import Gender from './gender.vue';
import Pagination from '../pagination/pagination.vue'; import Pagination from '../pagination/pagination.vue';
async function fetchActors() { const toggleValues = [true, undefined, false];
function updateFilters() {
this.$router.push({
name: 'actors',
params: this.$route.params,
query: {
naturalBoobs: toggleValues[this.naturalBoobs],
},
});
}
function updateValue(prop, value) {
this[prop] = value;
this.updateFilters();
}
async function fetchActors(scroll) {
const curatedGender = this.gender.replace('trans', 'transsexual'); const curatedGender = this.gender.replace('trans', 'transsexual');
const { actors, totalCount } = await this.$store.dispatch('fetchActors', { const { actors, totalCount } = await this.$store.dispatch('fetchActors', {
@ -96,13 +178,16 @@ async function fetchActors() {
pageNumber: Number(this.$route.params.pageNumber) || 1, pageNumber: Number(this.$route.params.pageNumber) || 1,
letter: this.letter.replace('all', ''), letter: this.letter.replace('all', ''),
gender: curatedGender === 'other' ? null : curatedGender, gender: curatedGender === 'other' ? null : curatedGender,
naturalBoobs: toggleValues[this.naturalBoobs] ?? null,
}); });
this.actors = actors; this.actors = actors;
this.totalCount = totalCount; this.totalCount = totalCount;
if (scroll) {
this.$refs.pagination.$el.scrollIntoView(); this.$refs.pagination.$el.scrollIntoView();
} }
}
function letter() { function letter() {
return this.$route.params.letter || 'all'; return this.$route.params.letter || 'all';
@ -112,8 +197,12 @@ function gender() {
return this.$route.params.gender || 'all'; return this.$route.params.gender || 'all';
} }
async function route() { async function route(to, from) {
await this.fetchActors(); const scroll = to.params.pageNumber !== from.params.pageNumber
|| to.params.gender !== from.params.gender
|| to.params.letter !== from.params.letter;
await this.fetchActors(scroll);
} }
async function mounted() { async function mounted() {
@ -129,12 +218,16 @@ export default {
Pagination, Pagination,
}, },
data() { data() {
const naturalBoobs = ['true', undefined, 'false'].indexOf(this.$route.query.naturalBoobs);
return { return {
actors: [], actors: [],
pageTitle: null, pageTitle: null,
totalCount: 0, totalCount: 0,
limit: 50, limit: 50,
letters: ['all'].concat(Array.from({ length: 26 }, (value, index) => String.fromCharCode(index + 97).toUpperCase())), letters: ['all'].concat(Array.from({ length: 26 }, (value, index) => String.fromCharCode(index + 97).toUpperCase())),
boobSize: 0,
naturalBoobs: naturalBoobs > -1 ? naturalBoobs : 1,
}; };
}, },
computed: { computed: {
@ -147,6 +240,8 @@ export default {
mounted, mounted,
methods: { methods: {
fetchActors, fetchActors,
updateFilters,
updateValue,
}, },
}; };
</script> </script>
@ -200,8 +295,12 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding: 0 1rem; padding: 0 1rem;
margin: 0 0 1rem 0;
&:first-child {
margin: 1rem 0; margin: 1rem 0;
} }
}
.genders { .genders {
display: flex; display: flex;
@ -260,6 +359,135 @@ export default {
} }
} }
.filter-trigger {
display: inline-flex;
align-items: center;
color: var(--shadow);
font-weight: bold;
.icon {
fill: var(--shadow);
width: 1.5rem;
height: 1.5rem;
margin: 0 .5rem 0 0;
}
&:hover {
color: var(--shadow-strong);
cursor: pointer;
.icon {
fill: var(--shadow-strong);
}
}
}
.filter-section {
&:not(:last-child) {
margin: 0 0 .5rem 0;
}
}
.filter-label {
display: flex;
justify-content: center;
padding: 0 .5rem;
margin: .5rem 0 0 0;
color: var(--shadow);
font-weight: bold;
font-size: .9rem;
.icon {
margin: 0 .5rem 0 0;
}
}
.range-container {
display: flex;
align-items: center;
padding: .5rem 0;
&.on {
.range-label.on {
color: var(--enabled);
}
.range-toggle::-webkit-slider-thumb {
background: var(--enabled);
}
}
&.off {
.range-label.off {
color: var(--disabled);
}
.range-toggle::-webkit-slider-thumb {
background: var(--disabled);
}
}
.icon {
fill: var(--shadow);
width: 1.5rem;
height: 1.5rem;
&:hover {
fill: var(--shadow-strong);
}
}
}
.range-label {
width: 1.5rem;
padding: 0 .5rem;
color: var(--shadow);
font-weight: bold;
font-size: .9rem;
&.on {
text-align: right;
}
&:hover {
cursor: pointer;
&.on {
color: var(--enabled);
}
&.off {
color: var(--disabled);
}
}
}
.range,
.range-toggle {
flex-grow: 1;
height: 1rem;
appearance: none;
border-radius: .5rem;
background: var(--shadow-hint);
cursor: pointer;
&::-webkit-slider-thumb {
appearance: none;
background: var(--primary);
width: 1rem;
height: 1rem;
border-radius: .5rem;
}
}
.range-toggle {
background: radial-gradient(circle at center, var(--shadow-weak) 0, var(--shadow-weak) .5rem, var(--shadow-hint) .5rem);
&::-webkit-slider-thumb {
background: #aaa;
}
}
@media(max-width: $breakpoint) { @media(max-width: $breakpoint) {
.genders { .genders {
flex-direction: column; flex-direction: column;

View File

@ -28,6 +28,7 @@
<div <div
ref="content" ref="content"
class="content" class="content"
@scroll="scroll"
> >
<router-view @scroll="scrollToTop" /> <router-view @scroll="scrollToTop" />
</div> </div>
@ -76,6 +77,10 @@ function resize(event) {
this.events.emit('resize', event); this.events.emit('resize', event);
} }
function scroll(event) {
this.events.emit('scroll', event);
}
function scrollToTop() { function scrollToTop() {
this.$refs.content.scrollTop = 0; this.$refs.content.scrollTop = 0;
} }
@ -112,6 +117,7 @@ export default {
setConsent, setConsent,
blur, blur,
resize, resize,
scroll,
scrollToTop, scrollToTop,
}, },
}; };

View File

@ -126,43 +126,6 @@ export default {
<style lang="scss"> <style lang="scss">
@import 'breakpoints'; @import 'breakpoints';
.filter {
color: var(--shadow);
display: inline-flex;
align-items: center;
.icon {
fill: var(--shadow);
margin: -.1rem 0 0 0;
}
&:hover {
cursor: pointer;
.applied {
color: var(--shadow-strong);
}
.icon {
fill: var(--shadow-strong);
}
}
}
.filter-applied {
flex-grow: 1;
padding: .75rem .5rem;
font-size: 1rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: right;
&.empty {
color: var(--shadow);
}
}
.filter-mode { .filter-mode {
width: 100%; width: 100%;
background: none; background: none;
@ -299,6 +262,44 @@ export default {
} }
} }
::v-deep(.filter) {
color: var(--shadow);
display: inline-flex;
align-items: center;
.filter-applied {
flex-grow: 1;
padding: .75rem .5rem;
font-size: 1rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: right;
&.empty {
color: var(--shadow);
}
}
.icon {
fill: var(--shadow);
margin: -.1rem 0 0 0;
}
&:hover {
cursor: pointer;
.applied {
color: var(--shadow-strong);
}
.icon {
fill: var(--shadow-strong);
}
}
}
.filters { .filters {
flex-shrink: 0; flex-shrink: 0;
} }

View File

@ -14,6 +14,7 @@
ref="tooltip" ref="tooltip"
class="tooltip-wrapper" class="tooltip-wrapper"
:style="{ transform: `translate3d(${tooltipX}px, ${tooltipY}px, 0)` }" :style="{ transform: `translate3d(${tooltipX}px, ${tooltipY}px, 0)` }"
@click.stop
> >
<div class="tooltip-inner"> <div class="tooltip-inner">
<div class="tooltip"> <div class="tooltip">
@ -114,6 +115,10 @@ function mounted() {
this.events.on('resize', () => { this.events.on('resize', () => {
this.calculate(); this.calculate();
}); });
this.events.on('scroll', () => {
this.calculate();
});
} }
export default { export default {

View File

@ -37,6 +37,9 @@ $breakpoint4: 1500px;
--alert: #f00; --alert: #f00;
--warn: #fa0; --warn: #fa0;
--success: #5c2; --success: #5c2;
--enabled: #5c2;
--disabled: #c20;
} }
.light { .light {

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="16"
height="16"
viewBox="0 0 16 16"
id="svg6"
sodipodi:docname="boobs-big.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1024"
id="namedview13"
showgrid="false"
inkscape:zoom="37.078912"
inkscape:cx="4.5937815"
inkscape:cy="8.4734735"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="g1162" />
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>balloon</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<title
id="title2">balloon</title>
<g
id="g956">
<g
id="g1162"
transform="translate(-1.8996025,0.00604308)">
<g
id="g1168"
transform="translate(-0.11024949,0.0012838)">
<g
id="g889"
style="fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.93795949,0,0,0.93710618,0.23662054,0.1237841)" />
<path
id="path1152"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="M 4.3222656,0.00585938 A 0.75,0.75 0 0 0 3.9667969,0.1171875 0.75,0.75 0 0 0 3.7246094,1.1503906 c 0,0 1.1146988,1.819157 2.7734375,3.0625 0.3227491,0.2943755 0.6501098,0.4444019 1.09375,0.6953125 0.4562543,0.2580448 0.9887615,0.5647214 1.4921875,0.9238281 1.0068506,0.7182136 1.8153886,1.5969551 1.8730466,2.5996094 0.06248,1.0865645 -0.363068,1.9406844 -1.1269529,2.5605474 -0.763886,0.619861 -1.8889532,0.977194 -3.1796875,0.884765 C 5.1569855,11.77001 4.2382812,10.990234 4.2382812,10.990234 a 0.75,0.75 0 0 0 -1.0585937,0.08594 0.75,0.75 0 0 0 0.087891,1.058594 c 0,0 0.4557622,0.377648 1.2265625,0.71875 -0.2527653,0.539729 -0.4098138,1.322387 -0.2949218,2.46875 a 0.75,0.75 0 0 0 0.8203124,0.671875 0.75,0.75 0 0 0 0.671875,-0.820313 c -0.1010787,-1.008539 0.060549,-1.511362 0.1777344,-1.736328 0.046229,-0.08875 0.075361,-0.115706 0.099609,-0.140625 0.185591,0.03169 0.3738874,0.06183 0.5742188,0.07617 1.6271109,0.116517 3.1333474,-0.324944 4.2324222,-1.216797 0.65253,-0.529502 1.148799,-1.229275 1.429687,-2.033203 A 1.0678437,1.2649081 0.82441037 0 0 13.257812,8.8632812 1.0678437,1.2649081 0.82441037 0 0 12.328125,7.6035156 C 11.973526,6.2836051 10.938295,5.3126834 9.9550781,4.6113281 9.3750921,4.1976093 8.7939921,3.8639399 8.3300781,3.6015625 7.8661628,3.3391851 7.4755787,3.0821528 7.4941406,3.0996094 l -0.03125,-0.029297 -0.037109,-0.027344 C 6.0694104,2.0413279 5,0.359375 5,0.359375 A 0.75,0.75 0 0 0 4.3222656,0.00585938 Z"
transform="translate(1.8802471,-0.00861365)" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="16"
height="16"
viewBox="0 0 16 16"
id="svg6"
sodipodi:docname="boobs-small.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1024"
id="namedview13"
showgrid="false"
inkscape:zoom="52.4375"
inkscape:cx="5.1477976"
inkscape:cy="6.847224"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="g931" />
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>balloon</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<title
id="title2">balloon</title>
<g
id="g956">
<g
id="g1162"
transform="translate(-1.8996025,0.00604308)">
<g
id="g1168"
transform="translate(0.01935543,0.00257057)">
<g
id="g884">
<g
id="g889"
style="fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.93795949,0,0,0.93710618,0.23662054,0.1237841)" />
<g
id="g903"
transform="translate(1.5697818,-0.15718201)">
<g
id="g931">
<g
id="g898"
transform="translate(0.00955573,-1.3109405e-4)">
<path
id="path1152"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="M 5.7109375,0.15429688 A 0.75,0.75 0 0 0 5.625,0.16210938 0.75,0.75 0 0 0 4.9882812,1.0097656 c 0,0 0.2708587,2.0479956 1.1328126,3.7519532 l 0.00391,0.00586 0.00195,0.00586 c 0.4187945,0.7906168 0.7972805,1.2934683 1.109375,1.7070313 0.3120945,0.4135631 0.5493376,0.7266555 0.8085938,1.2675781 l 0.00391,0.00781 0.00391,0.00586 C 8.6417858,8.932853 8.353137,10.292621 7.7734375,10.835938 6.0318605,12.46821 6.5878906,15.207031 6.5878906,15.207031 a 0.75,0.75 0 0 0 0.8535156,0.63086 0.75,0.75 0 0 0 0.6289063,-0.855469 c 0,0 -0.1906455,-2.191262 0.7285156,-3.052734 0.4515507,-0.423211 0.7702309,-0.969357 0.9453125,-1.578126 A 1.289816,1.2511888 32.630782 0 0 9.9550781,10.335938 1.289816,1.2511888 32.630782 0 0 10.978516,8.8925781 1.289816,1.2511888 32.630782 0 0 9.6835938,7.828125 C 9.6061585,7.579714 9.5134895,7.3326915 9.3925781,7.0917969 c -5.859e-4,-0.00122 5.86e-4,-0.00269 0,-0.00391 C 9.0746818,6.4282504 8.7432149,5.9864573 8.4335938,5.5761719 8.1229416,5.16452 7.8243932,4.7703217 7.4570312,4.078125 6.7663602,2.7079711 6.4746094,0.79882812 6.4746094,0.79882812 A 0.75,0.75 0 0 0 5.7109375,0.15429688 Z"
transform="translate(0.31046527,0.14856836)" />
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="16"
height="16"
viewBox="0 0 16 16"
id="svg6">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>balloon</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<title
id="title2">balloon</title>
<g
id="g956">
<g
id="g889"
style="stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-linecap:butt;fill-opacity:1"
transform="matrix(0.93795949,0,0,0.93710618,0.23662054,0.1237841)">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1;opacity:1;stroke-width:0"
d="M 2.875 3.5058594 A 0.75 0.75 0 0 0 2.3496094 3.7539062 C 2.3496094 3.7539062 1.0435141 5.1896957 0.28320312 7.0273438 C -0.096952339 7.9461678 -0.35811228 8.9916396 -0.17773438 10.054688 C 0.0026435295 11.117735 0.68535445 12.151286 1.9277344 12.845703 L 1.9511719 12.859375 L 1.9765625 12.871094 C 3.0544849 13.372658 4.1139157 13.404897 5.0078125 13.140625 C 5.9017093 12.876353 6.6280545 12.346919 7.203125 11.783203 C 7.9074923 11.092743 7.9956677 10.768321 8.2773438 10.277344 C 8.5590779 10.768344 8.6474598 11.093003 9.3515625 11.783203 C 9.926633 12.346919 10.652978 12.876353 11.546875 13.140625 C 12.440772 13.404897 13.498249 13.372658 14.576172 12.871094 L 14.601562 12.859375 L 14.626953 12.845703 C 15.869333 12.151286 16.552044 11.117735 16.732422 10.054688 C 16.9128 8.9916396 16.65164 7.9461678 16.271484 7.0273438 C 15.511173 5.1896957 14.203125 3.7539062 14.203125 3.7539062 A 0.75 0.75 0 0 0 13.144531 3.6972656 A 0.75 0.75 0 0 0 13.087891 4.7558594 C 13.087891 4.7558594 14.253984 6.0769832 14.884766 7.6015625 C 15.200156 8.3638522 15.364542 9.1507107 15.253906 9.8027344 C 15.14483 10.44557 14.816961 11.000809 13.921875 11.511719 C 13.155249 11.862275 12.540513 11.871584 11.970703 11.703125 C 11.394624 11.532812 10.857052 11.160535 10.400391 10.712891 C 9.4870678 9.8176011 8.9570312 8.6933594 8.9570312 8.6933594 A 0.75 0.75 0 0 0 8.9238281 8.6289062 A 0.75 0.75 0 0 0 8.921875 8.625 A 0.75 0.75 0 0 0 8.8847656 8.5683594 A 0.75 0.75 0 0 0 8.8808594 8.5644531 A 0.75 0.75 0 0 0 8.8378906 8.5117188 A 0.75 0.75 0 0 0 8.8339844 8.5078125 A 0.75 0.75 0 0 0 8.7871094 8.4589844 A 0.75 0.75 0 0 0 8.7832031 8.4550781 A 0.75 0.75 0 0 0 8.7324219 8.4121094 A 0.75 0.75 0 0 0 8.7285156 8.4101562 A 0.75 0.75 0 0 0 8.671875 8.3710938 A 0.75 0.75 0 0 0 8.6679688 8.3691406 A 0.75 0.75 0 0 0 8.609375 8.3359375 A 0.75 0.75 0 0 0 8.6035156 8.3339844 A 0.75 0.75 0 0 0 8.5917969 8.328125 A 0.75 0.75 0 0 0 8.5820312 8.3242188 A 0.75 0.75 0 0 0 8.5410156 8.3066406 A 0.75 0.75 0 0 0 8.5234375 8.3007812 A 0.75 0.75 0 0 0 8.5117188 8.296875 A 0.75 0.75 0 0 0 8.4570312 8.28125 A 0.75 0.75 0 0 0 8.4550781 8.28125 A 0.75 0.75 0 0 0 8.4003906 8.2695312 A 0.75 0.75 0 0 0 8.328125 8.2617188 A 0.75 0.75 0 0 0 8.2558594 8.2597656 A 0.75 0.75 0 0 0 8.1855469 8.265625 A 0.75 0.75 0 0 0 8.1328125 8.2734375 A 0.75 0.75 0 0 0 8.1054688 8.2792969 A 0.75 0.75 0 0 0 8.0585938 8.2929688 A 0.75 0.75 0 0 0 8.0234375 8.3027344 A 0.75 0.75 0 0 0 7.9941406 8.3144531 A 0.75 0.75 0 0 0 7.9628906 8.328125 A 0.75 0.75 0 0 0 7.921875 8.3496094 A 0.75 0.75 0 0 0 7.8984375 8.3613281 A 0.75 0.75 0 0 0 7.8925781 8.3652344 A 0.75 0.75 0 0 0 7.8359375 8.4023438 A 0.75 0.75 0 0 0 7.7988281 8.4316406 A 0.75 0.75 0 0 0 7.7792969 8.4472656 A 0.75 0.75 0 0 0 7.7753906 8.4511719 A 0.75 0.75 0 0 0 7.7285156 8.4980469 A 0.75 0.75 0 0 0 7.7246094 8.5019531 A 0.75 0.75 0 0 0 7.6816406 8.5546875 A 0.75 0.75 0 0 0 7.6660156 8.578125 A 0.75 0.75 0 0 0 7.6367188 8.6191406 A 0.75 0.75 0 0 0 7.6035156 8.6796875 A 0.75 0.75 0 0 0 7.5957031 8.6933594 C 7.5957031 8.6933594 7.0656666 9.8176011 6.1523438 10.712891 C 5.6956823 11.160535 5.1581106 11.532812 4.5820312 11.703125 C 4.0127867 11.871417 3.3983695 11.86123 2.6328125 11.511719 C 1.7376912 11.000802 1.4098594 10.445581 1.3007812 9.8027344 C 1.1901459 9.1507107 1.352578 8.3638522 1.6679688 7.6015625 C 2.2987502 6.0769832 3.4667969 4.7558594 3.4667969 4.7558594 A 0.75 0.75 0 0 0 3.4101562 3.6972656 A 0.75 0.75 0 0 0 2.875 3.5058594 z "
id="path837" />
</g>
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill-opacity:1;fill-rule:nonzero;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1;stroke:none;opacity:1"
d="m 4.7322075,9.0651503 c 0,0.5795795 -0.469842,1.0494217 -1.0494215,1.0494217 -0.5795795,0 -1.0494216,-0.4698422 -1.0494216,-1.0494217 0,-0.5795796 0.4698421,-1.0494216 1.0494216,-1.0494216 0.5795795,0 1.0494215,0.469842 1.0494215,1.0494216 z m 6.5355845,0 c 0,0.5795795 0.469842,1.0494217 1.049422,1.0494217 0.57958,0 1.049422,-0.4698422 1.049422,-1.0494217 0,-0.5795796 -0.469842,-1.0494216 -1.049422,-1.0494216 -0.57958,0 -1.049422,0.469842 -1.049422,1.0494216 z"
id="path967" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -266,11 +266,16 @@ function initActorActions(store, router) {
pageNumber = 1, pageNumber = 1,
letter, letter,
gender, gender,
naturalBoobs,
}) { }) {
const genderFilter = (gender === null && 'gender: { isNull: true }') const genderFilter = (gender === null && 'gender: { isNull: true }')
|| (gender === 'all' && ' ') || (gender === 'all' && ' ')
|| `gender: { equalTo: "${gender}" }`; || `gender: { equalTo: "${gender}" }`;
const naturalBoobsFilter = (naturalBoobs && 'naturalBoobs: { equalTo: true }')
|| (naturalBoobs === false && 'naturalBoobs: { equalTo: false }')
|| '';
const { connection: { actors, totalCount } } = await graphql(` const { connection: { actors, totalCount } } = await graphql(`
query Actors( query Actors(
$limit: Int, $limit: Int,
@ -289,6 +294,7 @@ function initActorActions(store, router) {
startsWith: $letter startsWith: $letter
} }
${genderFilter} ${genderFilter}
${naturalBoobsFilter}
} }
) { ) {
totalCount totalCount
@ -342,6 +348,7 @@ function initActorActions(store, router) {
offset: Math.max(0, (pageNumber - 1)) * limit, offset: Math.max(0, (pageNumber - 1)) * limit,
limit, limit,
letter, letter,
naturalBoobs,
}); });
return { return {

View File

@ -163,12 +163,13 @@ function toBaseActors(actorsOrNames, release) {
// const entity = getRecursiveParent(release?.entity); // const entity = getRecursiveParent(release?.entity);
const entity = (release?.entity?.indepdendent && release?.entity) const entity = (release?.entity?.indepdendent && release?.entity)
|| release?.entity?.parent || release?.entity?.parent
|| release?.entity; || release?.entity
|| null;
const baseActor = { const baseActor = {
name, name,
slug, slug,
entryId: entity && (entryId || actorOrName.entryId || null), entryId: (entity && (entryId || actorOrName.entryId)) || null,
entity, entity,
hasProfile: !!actorOrName.name, // actor contains profile information hasProfile: !!actorOrName.name, // actor contains profile information
}; };
@ -533,7 +534,6 @@ async function interpolateProfiles(actorIdsOrNames) {
'penis_length', 'penis_length',
'penis_girth', 'penis_girth',
'circumcised', 'circumcised',
'natural_boobs',
'hair_color', 'hair_color',
'eyes', 'eyes',
'has_tattoos', 'has_tattoos',
@ -554,6 +554,8 @@ async function interpolateProfiles(actorIdsOrNames) {
profile.date_of_death = getMostFrequentDate(valuesByProperty.date_of_death); profile.date_of_death = getMostFrequentDate(valuesByProperty.date_of_death);
profile.age = getHighest(valuesByProperty.age); profile.age = getHighest(valuesByProperty.age);
profile.natural_boobs = profile.gender === 'male' ? null : getMostFrequent(valuesByProperty.natural_boobs);
// ensure most frequent country, city and state match up // ensure most frequent country, city and state match up
profile.birth_country_alpha2 = getMostFrequent(valuesByProperty.origin.map(location => location.country)); profile.birth_country_alpha2 = getMostFrequent(valuesByProperty.origin.map(location => location.country));
const remainingOriginCountries = valuesByProperty.origin.filter(location => location.country === profile.birth_country_alpha2); const remainingOriginCountries = valuesByProperty.origin.filter(location => location.country === profile.birth_country_alpha2);
@ -758,6 +760,8 @@ async function scrapeActors(argNames) {
const actorNames = await getActorNames(argNames); const actorNames = await getActorNames(argNames);
const baseActors = toBaseActors(actorNames); const baseActors = toBaseActors(actorNames);
console.log(baseActors);
logger.info(`Scraping profiles for ${actorNames.length} actors`); logger.info(`Scraping profiles for ${actorNames.length} actors`);
const sources = argv.profileSources || config.profiles || Object.keys(scrapers.actors); const sources = argv.profileSources || config.profiles || Object.keys(scrapers.actors);