Using batch insert for profiles to prevent errors on large inserts.

This commit is contained in:
ThePendulum 2020-05-21 03:44:44 +02:00
parent 703b77897d
commit 532a4b679b
1005 changed files with 13340 additions and 323 deletions

View File

@ -622,7 +622,6 @@ export default {
}
.photos-container {
min-width: 15rem;
box-sizing: border-box;
border-left: solid 1px $shadow-hint;
padding: 1rem 1rem 1rem 1.5rem;

View File

@ -1,46 +1,46 @@
<template>
<div class="networks">
<form
class="search"
@submit.prevent="searchSites"
>
<input
v-model="query"
:placeholder="`Find ${siteCount} sites in ${networks.length} networks`"
class="query"
@input="searchSites"
>
<div class="networks">
<form
class="search"
@submit.prevent="searchSites"
>
<input
v-model="query"
:placeholder="`Find ${siteCount} sites in ${networks.length} networks`"
class="query"
@input="searchSites"
>
<button
type="submit"
class="search-button"
><Icon icon="search" /></button>
</form>
<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"
/>
<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>
<span v-if="searchResults.length === 0">No results for "{{ query }}"</span>
</div>
<div
v-if="query.length === 0"
class="network-tiles"
>
<Network
v-for="network in networks"
:key="`network-tile-${network.slug}`"
:network="network"
/>
</div>
</div>
<div
v-if="query.length === 0"
class="network-tiles"
>
<Network
v-for="network in networks"
:key="`network-tile-${network.slug}`"
:network="network"
/>
</div>
</div>
</template>
<script>
@ -48,41 +48,41 @@ 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,
});
this.searchResults = await this.$store.dispatch('searchSites', {
query: this.query,
limit: 20,
});
}
async function mounted() {
this.networks = await this.$store.dispatch('fetchNetworks');
this.pageTitle = 'Networks';
this.networks = await this.$store.dispatch('fetchNetworks');
this.pageTitle = 'Networks';
}
function siteCount() {
return this.networks.map(network => network.sites).flat().length;
return this.networks.map(network => network.sites).flat().length;
}
export default {
components: {
Network,
Site,
},
data() {
return {
query: '',
pageTitle: null,
networks: [],
searchResults: [],
};
},
computed: {
siteCount,
},
mounted,
methods: {
searchSites,
},
components: {
Network,
Site,
},
data() {
return {
query: '',
pageTitle: null,
networks: [],
searchResults: [],
};
},
computed: {
siteCount,
},
mounted,
methods: {
searchSites,
},
};
</script>

View File

@ -1,227 +1,227 @@
<template>
<div
v-if="release"
class="content"
>
<Banner :release="release" />
<div
v-if="release"
class="content"
>
<Banner :release="release" />
<div class="details">
<div class="column">
<a
v-if="release.date"
v-tooltip.bottom="release.url && `View scene on ${release.site.name}`"
:title="release.url && `View scene on ${release.site.name}`"
:href="release.url"
:class="{ link: release.url }"
target="_blank"
rel="noopener noreferrer"
class="tidbit date"
>
<Icon
v-if="isAfter(new Date(), release.date)"
icon="calendar2"
/>
<div class="details">
<div class="column">
<a
v-if="release.date"
v-tooltip.bottom="release.url && `View scene on ${release.site.name}`"
:title="release.url && `View scene on ${release.site.name}`"
:href="release.url"
:class="{ link: release.url }"
target="_blank"
rel="noopener noreferrer"
class="tidbit date"
>
<Icon
v-if="isAfter(new Date(), release.date)"
icon="calendar2"
/>
<Icon
v-else
v-tooltip.bottom="'To be released'"
icon="sun3"
/>
<Icon
v-else
v-tooltip.bottom="'To be released'"
icon="sun3"
/>
<span class="showable">{{ formatDate(release.date, 'MMM D, YYYY') }}</span>
<span class="hideable">{{ formatDate(release.date, 'MMMM D, YYYY') }}</span>
</a>
<span class="showable">{{ formatDate(release.date, 'MMM D, YYYY') }}</span>
<span class="hideable">{{ formatDate(release.date, 'MMMM D, YYYY') }}</span>
</a>
<span
v-if="release.shootId"
v-tooltip.bottom="`Shoot #`"
class="tidbit shoot hideable"
>
<Icon icon="clapboard-play" />
{{ release.shootId }}
</span>
<span
v-if="release.shootId"
v-tooltip.bottom="`Shoot #`"
class="tidbit shoot hideable"
>
<Icon icon="clapboard-play" />
{{ release.shootId }}
</span>
<span
v-if="release.duration"
v-tooltip.bottom="`Duration`"
class="tidbit duration hideable"
>
<Icon icon="stopwatch" />
<span
v-if="release.duration"
v-tooltip.bottom="`Duration`"
class="tidbit duration hideable"
>
<Icon icon="stopwatch" />
<span
v-if="release.duration >= 3600"
class="duration-segment"
>{{ Math.floor(release.duration / 3600).toString().padStart(2, '0') }}:</span>
<span class="duration-segment">{{ Math.floor((release.duration % 3600) / 60).toString().padStart(2, '0') }}:</span>
<span class="duration-segment">{{ (release.duration % 60).toString().padStart(2, '0') }}</span>
</span>
<span
v-if="release.duration >= 3600"
class="duration-segment"
>{{ Math.floor(release.duration / 3600).toString().padStart(2, '0') }}:</span>
<span class="duration-segment">{{ Math.floor((release.duration % 3600) / 60).toString().padStart(2, '0') }}:</span>
<span class="duration-segment">{{ (release.duration % 60).toString().padStart(2, '0') }}</span>
</span>
<span class="tidbit site">
<a
v-if="release.site.independent"
:href="`/network/${release.network.slug}`"
>
<img
:src="`/img/logos/${release.network.slug}/network.png`"
:title="release.network.name"
class="logo logo-site"
>
</a>
<span class="tidbit site">
<a
v-if="release.site.independent"
:href="`/network/${release.network.slug}`"
>
<img
:src="`/img/logos/${release.network.slug}/thumbs/network.png`"
:title="release.network.name"
class="logo logo-site"
>
</a>
<template v-else>
<a :href="`/network/${release.network.slug}`">
<img
:src="`/img/logos/${release.network.slug}/network.png`"
:title="release.network.name"
:alt="release.network.name"
class="logo logo-network"
>
</a>
<template v-else>
<a :href="`/network/${release.network.slug}`">
<img
:src="`/img/logos/${release.network.slug}/thumbs/network.png`"
:title="release.network.name"
:alt="release.network.name"
class="logo logo-network"
>
</a>
<span class="chain">presents</span>
<span class="chain">presents</span>
<a
:href="`/site/${release.site.slug}`"
>
<img
:src="`/img/logos/${release.network.slug}/${release.site.slug}.png`"
:title="release.site.name"
class="logo logo-site"
>
</a>
</template>
<a
:href="`/site/${release.site.slug}`"
>
<img
:src="`/img/logos/${release.network.slug}/thumbs/${release.site.slug}.png`"
:title="release.site.name"
class="logo logo-site"
>
</a>
</template>
</span>
</div>
</div>
</span>
</div>
</div>
<div class="info column">
<h2 class="row title">{{ release.title }}</h2>
<div class="info column">
<h2 class="row title">{{ release.title }}</h2>
<div class="row associations">
<ul class="actors nolist">
<li
v-for="actor in release.actors"
:key="actor.id"
>
<Actor :actor="actor" />
</li>
</ul>
<div class="row associations">
<ul class="actors nolist">
<li
v-for="actor in release.actors"
:key="actor.id"
>
<Actor :actor="actor" />
</li>
</ul>
<div
v-if="release.movies && release.movies.length > 0"
class="movies"
>
<Release :release="release.movies[0]" />
</div>
</div>
<div
v-if="release.movies && release.movies.length > 0"
class="movies"
>
<Release :release="release.movies[0]" />
</div>
</div>
<div
v-if="release.scenes && release.scenes.length > 0"
class="scenes"
>
<h3>Scenes</h3>
<Releases
:releases="release.scenes"
class="row"
/>
</div>
<div
v-if="release.scenes && release.scenes.length > 0"
class="scenes"
>
<h3>Scenes</h3>
<Releases
:releases="release.scenes"
class="row"
/>
</div>
<div
v-if="release.tags.length > 0"
class="row"
>
<Icon icon="price-tags3" />
<div
v-if="release.tags.length > 0"
class="row"
>
<Icon icon="price-tags3" />
<ul class="tags nolist">
<li
v-for="tag in release.tags"
:key="`tag-${tag.slug}`"
class="tag"
>
<a
:href="`/tag/${tag.slug}`"
class="link"
>{{ tag.name }}</a>
</li>
</ul>
</div>
<ul class="tags nolist">
<li
v-for="tag in release.tags"
:key="`tag-${tag.slug}`"
class="tag"
>
<a
:href="`/tag/${tag.slug}`"
class="link"
>{{ tag.name }}</a>
</li>
</ul>
</div>
<div
v-if="release.duration"
class="row duration showable"
>
<Icon icon="stopwatch" />
<div
v-if="release.duration"
class="row duration showable"
>
<Icon icon="stopwatch" />
<span
v-if="release.duration >= 3600"
class="duration-segment"
>{{ Math.floor(release.duration / 3600).toString().padStart(2, '0') }}:</span>
<span class="duration-segment">{{ Math.floor((release.duration % 3600) / 60).toString().padStart(2, '0') }}:</span>
<span class="duration-segment">{{ (release.duration % 60).toString().padStart(2, '0') }}</span>
</div>
<span
v-if="release.duration >= 3600"
class="duration-segment"
>{{ Math.floor(release.duration / 3600).toString().padStart(2, '0') }}:</span>
<span class="duration-segment">{{ Math.floor((release.duration % 3600) / 60).toString().padStart(2, '0') }}:</span>
<span class="duration-segment">{{ (release.duration % 60).toString().padStart(2, '0') }}</span>
</div>
<p
v-if="release.description"
class="row description"
>
<Icon icon="info2" />
{{ release.description }}
</p>
<p
v-if="release.description"
class="row description"
>
<Icon icon="info2" />
{{ release.description }}
</p>
<div
v-if="release.studio"
class="row"
>
<Icon icon="video-camera2" />
<div
v-if="release.studio"
class="row"
>
<Icon icon="video-camera2" />
<a
v-if="release.studio"
:href="release.studio.url"
target="_blank"
rel="noopener noreferrer"
class="link"
>{{ release.studio.name }}</a>
</div>
<a
v-if="release.studio"
:href="release.studio.url"
target="_blank"
rel="noopener noreferrer"
class="link"
>{{ release.studio.name }}</a>
</div>
<div
v-if="release.shootId"
class="row showable"
>
<Icon icon="clapboard-play" />
<div
v-if="release.shootId"
class="row showable"
>
<Icon icon="clapboard-play" />
<a
:href="release.url"
:title="`release.shootId`"
target="_blank"
rel="noopener noreferrer"
class="link shoot"
>{{ release.shootId }}</a>
</div>
<a
:href="release.url"
:title="`release.shootId`"
target="_blank"
rel="noopener noreferrer"
class="link shoot"
>{{ release.shootId }}</a>
</div>
<span class="row">
<Icon icon="drawer-in" />
<span class="row">
<Icon icon="drawer-in" />
<a
:href="`/added/${formatDate(release.dateAdded, 'YYYY-MM-DD')}`"
:title="`Added on ${formatDate(release.dateAdded, 'MMMM D, YYYY')}`"
target="_blank"
rel="noopener noreferrer"
class="link added"
>{{ formatDate(release.dateAdded, 'MMMM D, YYYY') }}</a>
</span>
<a
:href="`/added/${formatDate(release.dateAdded, 'YYYY-MM-DD')}`"
:title="`Added on ${formatDate(release.dateAdded, 'MMMM D, YYYY')}`"
target="_blank"
rel="noopener noreferrer"
class="link added"
>{{ formatDate(release.dateAdded, 'MMMM D, YYYY') }}</a>
</span>
<div class="row">
<Icon icon="paste2" />
<div class="row">
<Icon icon="paste2" />
<input
class="filename"
:value="filename"
@focus="copyFilename"
>
</div>
</div>
</div>
<input
class="filename"
:value="filename"
@focus="copyFilename"
>
</div>
</div>
</div>
</template>
<script>
@ -234,45 +234,45 @@ import Release from '../tile/release.vue';
import Releases from './releases.vue';
function pageTitle() {
return this.release && this.release.title;
return this.release && this.release.title;
}
function copyFilename(event) {
event.target.setSelectionRange(0, event.target.value.length);
document.execCommand('copy');
event.target.setSelectionRange(0, event.target.value.length);
document.execCommand('copy');
}
async function mounted() {
this.release = await this.$store.dispatch('fetchReleaseById', this.$route.params.releaseId);
this.filename = format(config.filename.pattern, {
...this.release,
shootId: this.release.shootId || '',
date: this.formatDate(this.release.date, config.filename.date),
}, {
spreadSeparator: config.filename.separator,
});
this.release = await this.$store.dispatch('fetchReleaseById', this.$route.params.releaseId);
this.filename = format(config.filename.pattern, {
...this.release,
shootId: this.release.shootId || '',
date: this.formatDate(this.release.date, config.filename.date),
}, {
spreadSeparator: config.filename.separator,
});
}
export default {
components: {
Actor,
Banner,
Release,
Releases,
},
data() {
return {
release: null,
filename: null,
};
},
computed: {
pageTitle,
},
mounted,
methods: {
copyFilename,
},
components: {
Actor,
Banner,
Release,
Releases,
},
data() {
return {
release: null,
filename: null,
};
},
computed: {
pageTitle,
},
mounted,
methods: {
copyFilename,
},
};
</script>

View File

@ -37,8 +37,6 @@ async function mounted() {
'interracial',
'mff',
'mfm',
'natural-boobs',
'fake-boobs',
'teen',
'milf',
'blowjob',
@ -48,6 +46,19 @@ async function mounted() {
'facial',
'creampie',
],
appearance: [
'asian',
'ebony',
'latina',
'caucasian',
'natural-boobs',
'fake-boobs',
'blonde',
'brunette',
'redhead',
'tattoos',
'piercings',
],
oral: [
'blowjob',
'deepthroat',
@ -58,17 +69,6 @@ async function mounted() {
'ass-eating',
'ass-to-mouth',
],
appearance: [
'asian',
'ebony',
'latina',
'caucasian',
'blonde',
'brunette',
'redhead',
'tattoos',
'piercings',
],
extreme: [
'airtight',
'double-anal',

View File

@ -46,7 +46,7 @@
v-else
class="avatar"
><img
:src="`/img/avatar_${actor.gender || 'female'}.png`"
:src="`/img/avatar_${actor.gender || 'female'}.svg`"
class="avatar-fallback"
></span>
@ -209,9 +209,9 @@ export default {
}
.avatar-fallback {
max-height: 75%;
max-width: 80%;
opacity: .5;
max-height: 100%;
max-width: 100%;
opacity: .1;
}
.details {

12756
assets/img/woman_original.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 956 KiB

View File

@ -0,0 +1,172 @@
<?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"
sodipodi:docname="woman_outline.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
id="svg8"
version="1.1"
viewBox="0 0 110.7845 194.22073"
height="194.22073mm"
width="110.7845mm">
<defs
id="defs2" />
<sodipodi:namedview
fit-margin-bottom="0"
fit-margin-right="0"
fit-margin-left="0"
fit-margin-top="0"
inkscape:window-maximized="1"
inkscape:window-y="932"
inkscape:window-x="1182"
inkscape:window-height="1024"
inkscape:window-width="1920"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="456.75252"
inkscape:cx="-281.74276"
inkscape:zoom="0.5"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata5">
<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></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-46.27311,-75.943911)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<path
sodipodi:nodetypes="cssccc"
id="path847"
d="m 104.31937,92.914593 c 0.30973,10.797187 4.11432,14.124527 16.08115,18.642697 4.27327,1.61341 5.48703,4.07564 5.82149,10.14631 0.25591,4.64494 0.21908,8.00572 6.51967,12.97682 0,0 0.91365,5.00014 5.35946,9.09447 m -20.00849,2.48781 c 9.4708,20.21912 21.0445,8.40162 20.00849,-2.48781 0,0 1.67522,-5.03161 -5.34509,-9.18001"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path851"
d="m 135.72911,136.72365 c 0.18452,-0.55093 2.96947,-0.34716 1.6745,2.47495"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccsc"
id="path855"
d="m 130.47058,156.94101 c -0.2307,13.40549 0.0213,26.01055 8.04754,39.03058 3.05007,6.65748 3.57659,3.55475 6.32044,18.85292 1.09106,6.08312 -0.10374,12.48545 -0.16037,19.81444"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path857"
d="m 109.19896,146.83623 c 0,0 -12.901525,21.58057 -31.601551,0.86672"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<ellipse
ry="3.0457127"
rx="1.0819"
cy="139.14059"
cx="95.920715"
id="path859"
style="opacity:1;fill:none;fill-rule:evenodd;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" />
<ellipse
cx="94.392563"
cy="136.44125"
rx="4.5837765"
ry="4.6306114"
id="path861"
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<ellipse
ry="1.1067159"
rx="1.0600367"
cy="135.93007"
cx="94.511871"
id="path863"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path868"
d="m 67.229468,149.10354 c 6.462479,18.43696 18.334243,22.55189 7.965853,45.42625"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="csscsc"
id="path870"
d="m 83.796706,76.943911 c 0.68774,10.292423 -2.480312,17.825741 -11.544147,20.994868 -5.483973,1.917446 -7.810811,-1.016747 -12.033763,1.963836 -5.640966,3.981425 -5.649707,2.041005 -10.158844,18.475215 -4.711947,37.97162 -0.738757,34.73925 -2.602289,53.55303 -0.8239,8.3179 1.325023,9.15922 2.510932,10.69244 0,0 18.473818,31.61929 29.947866,43.79767"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cssssssssssssscscsscsccc"
id="path872"
d="m 79.916461,226.42097 c 0,0 3.418602,4.02486 4.085471,10.37895 0.666869,6.35408 1.935951,6.09012 3.390561,9.91338 1.45461,3.82327 1.455782,7.97935 3.96567,14.94285 1.666302,4.62303 3.309447,0.21611 2.652572,-2.40103 -1.172902,-4.67309 -0.599474,-14.25364 2.081567,-4.90206 1.043323,3.63915 2.57166,6.49568 3.841638,9.70261 2.02037,5.1018 6.13074,5.49259 3.88637,-0.0994 -1.61645,-4.02746 -5.750274,-17.1406 0.81061,-3.82837 0.66031,1.33979 1.27689,3.27498 1.71675,4.31779 2.15695,5.11369 6.41232,5.24871 3.65521,-1.30778 -0.48187,-1.14591 -0.99237,-3.02967 -1.56412,-4.66952 -3.82171,-10.96118 1.41863,-1.19146 2.04884,0.4515 1.86563,4.86377 7.88994,7.05968 2.37181,-4.26799 -5.41981,-11.12583 -6.34787,-9.83174 -3.48269,-8.68522 2.26512,0.82054 2.37906,-0.64198 1.41074,-2.44275 -1.42424,-2.64862 -2.03437,-4.72117 -3.92765,-5.90878 -3.28217,-2.6841 -1.67896,-2.67415 -6.81962,-6.22595 -5.18416,-3.58186 -5.232522,-3.94571 -9.085932,-10.37667 -3.853413,-6.43096 -18.302345,-29.70749 -25.700847,-44.92839 0,0 -1.365545,-2.93237 -0.286362,-6.32947 1.079184,-3.3971 2.262419,-20.65113 2.262419,-20.65113 v 0 0"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path874"
d="m 129.88627,223.33866 c 0,0 -15.36169,19.5926 -16.03745,20.20131 -0.67576,0.60872 -1.20843,3.66907 -2.83598,2.22092"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path876"
d="m 112.44212,245.83604 c 0,0 4.90781,10.59438 8.79014,23.03963"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path880"
d="m 144.85432,227.03901 c 0,0 1.06165,1.66116 1.30501,5.22018"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path882"
d="m 148.81425,230.64911 c 0,0 -2.77497,0.84717 -4.13606,3.98984 -1.36109,3.14267 -0.533,4.34249 -1.13992,5.32773 -0.60691,0.98524 -5.27839,6.2654 -4.32705,8.61069 0.95134,2.3453 3.19072,1.7044 3.92863,0.4697 0.7379,-1.2347 2.07336,-3.46833 6.06553,-8.63034"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path884"
d="m 145.03515,246.41507 c 0,0 -1.08143,3.78374 -0.43801,5.74159"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path886"
d="m 144.59714,252.15666 c 0,0 -1.00349,1.12128 -1.03528,4.12379 0,0 -0.99706,0.98154 -1.53679,3.7948"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path890"
d="m 143.96669,247.96664 c 0,0 -0.73401,7.23845 -1.94162,12.10861 -1.20761,4.87016 -1.58405,8.81219 -1.58405,8.81219"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path892"
d="m 94.311755,102.88336 c 0,0 -18.454632,-3.936053 -27.852172,-4.234307"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path894"
d="m 116.01303,200.40954 c 0,0 -2.52401,-1.00071 -1.1965,-4.01527 1.32751,-3.01456 2.22604,1.12324 2.22604,1.12324"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path896"
d="m 140.72313,266.7576 c 0,0 -0.31108,3.79349 2.95598,-0.49766 3.26706,-4.29112 5.3728,-6.2281 5.68734,-8.00622 0.31453,-1.77811 0.38413,-1.89314 0.56614,-3.30631 0.18201,-1.41318 0.96524,-2.07437 1.25557,-2.86807 0.29032,-0.79369 0.9636,-2.39744 0.71273,-3.30103 -0.25087,-0.90358 1.80476,-7.56603 2.59834,-9.13457 0.79359,-1.56854 0.89816,-4.05801 1.14694,-4.74678 0.24878,-0.68878 1.12173,-4.72808 -0.82091,-9.74124 -1.94264,-5.01316 -6.9312,-16.61009 -8.20939,-21.22181 -1.2782,-4.61171 -7.49048,-20.41009 -9.96667,-25.07059 -2.4762,-4.6605 -6.13098,-20.38868 -6.13098,-20.38868"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path898"
d="m 70.332017,214.30754 c 0,0 -3.147949,5.24832 3.527965,31.83704 6.675913,26.58871 7.168062,22.85356 7.168062,22.85356"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path919"
d="m 107.13189,253.36427 c 0,0 -1.79551,-2.46316 -3.17028,-4.86368"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path921"
d="m 101.17971,254.27007 c 0,0 -0.90603,-2.20792 -1.442881,-3.60809"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path943"
d="m 107.96012,245.24238 c 0,0 -1.77997,-1.64168 -3.70636,-5.09742"
style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -21,14 +21,14 @@
"seed-make": "knex seed:make",
"seed": "knex seed:run",
"flush": "cli-confirm \"This completely purges the database, are you sure?\" && knex-migrate down --to 0 && knex-migrate up && knex seed:run",
"thumbs-tag": "mkdir -p \"public/img/tags/$TAG/thumbs\"; mogrify -path \"public/img/tags/$TAG/thumbs\" -resize x240 -quality 90% \"public/img/tags/$TAG/*.jpeg\"",
"thumbs-tags": "for dir in public/img/tags/*; do mkdir -p \"$dir/thumbs\"; mogrify -path \"$dir/thumbs\" -resize x240 -quality 90% \"$dir/*.jpeg\"; done",
"thumbs-logo": "mkdir -p \"public/img/logos/$LOGO/thumbs\"; mogrify -path \"public/img/logos/$LOGO/thumbs\" -resize x80 \"public/img/logos/$LOGO/*.png\"",
"thumbs-logos": "for dir in public/img/logos/*; do mkdir -p \"$dir/thumbs\"; mogrify -path \"$dir/thumbs\" -resize x80 \"$dir/*.png\"; done",
"lazy-tag": "mkdir -p \"public/img/tags/$TAG/lazy\"; mogrify -path \"public/img/tags/$TAG/lazy\" -resize x90 -quality 90% \"public/img/tags/$TAG/*.jpeg\"",
"lazy-tags": "for dir in public/img/tags/*; do mkdir -p \"$dir/lazy\"; mogrify -path \"$dir/lazy\" -resize x90 -quality 90% \"$dir/*.jpeg\"; done",
"lazy-logo": "mkdir -p \"public/img/logos/$LOGO/lazy\"; mogrify -path \"public/img/logos/$LOGO/lazy\" -resize x25 \"public/img/logos/$LOGO/*.png\"",
"lazy-logos": "for dir in public/img/logos/*; do mkdir -p \"$dir/lazy\"; mogrify -path \"$dir/lazy\" -resize x25 \"$dir/*.png\"; done"
"thumbs-tag": "mkdir -p \"public/img/tags/$TAG/thumbs\"; mogrify -path \"public/img/tags/$TAG/thumbs\" -resize x240\\> -quality 90% \"public/img/tags/$TAG/*.jpeg\"",
"thumbs-tags": "for dir in public/img/tags/*; do mkdir -p \"$dir/thumbs\"; mogrify -path \"$dir/thumbs\" -resize x240\\> -quality 90% \"$dir/*.jpeg\"; done",
"thumbs-logo": "mkdir -p \"public/img/logos/$LOGO/thumbs\"; mogrify -path \"public/img/logos/$LOGO/thumbs\" -resize x80\\> \"public/img/logos/$LOGO/*.png\"",
"thumbs-logos": "for dir in public/img/logos/*; do mkdir -p \"$dir/thumbs\"; mogrify -path \"$dir/thumbs\" -resize x80\\> \"$dir/*.png\"; done",
"lazy-tag": "mkdir -p \"public/img/tags/$TAG/lazy\"; mogrify -path \"public/img/tags/$TAG/lazy\" -resize x90\\> -quality 90% \"public/img/tags/$TAG/*.jpeg\"",
"lazy-tags": "for dir in public/img/tags/*; do mkdir -p \"$dir/lazy\"; mogrify -path \"$dir/lazy\" -resize x90\\> -quality 90% \"$dir/*.jpeg\"; done",
"lazy-logo": "mkdir -p \"public/img/logos/$LOGO/lazy\"; mogrify -path \"public/img/logos/$LOGO/lazy\" -resize x25\\> \"public/img/logos/$LOGO/*.png\"",
"lazy-logos": "for dir in public/img/logos/*; do mkdir -p \"$dir/lazy\"; mogrify -path \"$dir/lazy\" -resize x25\\> \"$dir/*.png\"; done"
},
"repository": {
"type": "git",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Some files were not shown because too many files have changed in this diff Show More