Updated mindgeek scraper for entities. Various fixes.
|
@ -222,7 +222,6 @@ export default {
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
background: var(--profile);
|
background: var(--profile);
|
||||||
border-bottom: solid 1px var(--lighten-hint);
|
border-bottom: solid 1px var(--lighten-hint);
|
||||||
box-shadow: inset 0 0 3px var(--darken);
|
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -147,7 +147,7 @@ export default {
|
||||||
.tiles {
|
.tiles {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fill, minmax(23rem, .33fr));
|
grid-template-columns: repeat(auto-fill, minmax(23rem, .33fr));
|
||||||
grid-gap: 1rem;
|
grid-gap: .5rem;
|
||||||
margin: 0 0 1.5rem 0;
|
margin: 0 0 1.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ export default {
|
||||||
|
|
||||||
@media(max-width: $breakpoint0) {
|
@media(max-width: $breakpoint0) {
|
||||||
.tiles {
|
.tiles {
|
||||||
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
:title="tag.name"
|
:title="tag.name"
|
||||||
class="tile"
|
class="tile"
|
||||||
>
|
>
|
||||||
<span class="title">{{ tag.name }}</span>
|
|
||||||
|
|
||||||
<template v-if="tag.poster">
|
<template v-if="tag.poster">
|
||||||
<img
|
<img
|
||||||
v-if="!lazy && !sfw"
|
v-if="!lazy && !sfw"
|
||||||
|
@ -41,6 +39,8 @@
|
||||||
class="poster"
|
class="poster"
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<span class="title">{{ tag.name }}</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -71,12 +71,12 @@ export default {
|
||||||
|
|
||||||
.tile {
|
.tile {
|
||||||
color: var(--text-light);
|
color: var(--text-light);
|
||||||
background: var(--profile);
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
text-decoration: none;
|
||||||
box-shadow: 0 0 3px var(--darken-weak);
|
box-shadow: 0 0 3px var(--darken-weak);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
@ -104,4 +104,17 @@ export default {
|
||||||
text-shadow: 0 0 3px var(--darken-strong);
|
text-shadow: 0 0 3px var(--darken-strong);
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media(max-width: $breakpoint) {
|
||||||
|
.tile {
|
||||||
|
position: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
position: initial;
|
||||||
|
color: var(--text);
|
||||||
|
background: var(--background);
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -56,7 +56,7 @@ const actorFields = `
|
||||||
name
|
name
|
||||||
slug
|
slug
|
||||||
}
|
}
|
||||||
originCountry: countryByBirthCountryAlpha2 {
|
birthCountry: countryByBirthCountryAlpha2 {
|
||||||
alpha2
|
alpha2
|
||||||
name
|
name
|
||||||
alias
|
alias
|
||||||
|
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 34 KiB |
|
@ -46,10 +46,10 @@ const { argv } = yargs
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
default: true,
|
default: true,
|
||||||
})
|
})
|
||||||
.option('profiles', {
|
.option('scene-actors', {
|
||||||
describe: 'Scrape profiles for new actors after fetching scenes',
|
describe: 'Scrape profiles for new actors after fetching scenes',
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
alias: 'with-actors',
|
alias: 'with-profiles',
|
||||||
default: false,
|
default: false,
|
||||||
})
|
})
|
||||||
.option('scene', {
|
.option('scene', {
|
||||||
|
|
|
@ -43,7 +43,7 @@ function scrapeLatestX(data, site) {
|
||||||
description: data.description,
|
description: data.description,
|
||||||
};
|
};
|
||||||
|
|
||||||
const hostname = site.parameters?.native ? site.url : site.network.url;
|
const hostname = site.parameters?.native ? site.url : site.parent.url;
|
||||||
|
|
||||||
release.url = `${hostname}/scene/${release.entryId}/`;
|
release.url = `${hostname}/scene/${release.entryId}/`;
|
||||||
release.date = new Date(data.dateReleased);
|
release.date = new Date(data.dateReleased);
|
||||||
|
@ -121,7 +121,7 @@ function getUrl(site) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (site.parameters?.siteId) {
|
if (site.parameters?.siteId) {
|
||||||
return `${site.network.url}/scenes?site=${site.parameters.siteId}`;
|
return `${site.parent.url}/scenes?site=${site.parameters.siteId}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error(`Mind Geek site '${site.name}' (${site.url}) not supported`);
|
throw new Error(`Mind Geek site '${site.name}' (${site.url}) not supported`);
|
||||||
|
|
|
@ -236,7 +236,7 @@ async function storeReleases(releases) {
|
||||||
// media is more error-prone, associate separately
|
// media is more error-prone, associate separately
|
||||||
await associateReleaseMedia(releasesWithId);
|
await associateReleaseMedia(releasesWithId);
|
||||||
|
|
||||||
if (argv.withActors) {
|
if (argv.sceneActors) {
|
||||||
await scrapeActors(actors.map(actor => actor.name));
|
await scrapeActors(actors.map(actor => actor.name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|