Refactored various modules for entities. Updated and refactored Kink scraper.

This commit is contained in:
2020-06-27 02:57:30 +02:00
parent 4959dfd14f
commit af56378ee2
107 changed files with 539 additions and 414 deletions

View File

@@ -130,30 +130,22 @@ import FilterBar from '../header/filter-bar.vue';
import Releases from '../releases/releases.vue';
import Sites from '../sites/sites.vue';
import Network from '../tile/network.vue';
import Entity from '../tile/entity.vue';
async function fetchNetwork() {
const { network, totalCount } = await this.$store.dispatch('fetchNetworkBySlug', {
networkSlug: this.$route.params.networkSlug,
const { entity, totalCount } = await this.$store.dispatch('fetchEntityBySlugAndType', {
entitySlug: this.$route.params.networkSlug,
entityType: 'network',
limit: this.limit,
range: this.$route.params.range,
pageNumber: Number(this.$route.params.pageNumber),
});
this.network = network;
this.totalCount = totalCount;
if (this.network.studios) {
this.studios = this.network.studios.map(studio => ({
...studio,
network: this.network,
}));
}
this.networks = this.network.networks;
this.sites = this.network.sites
.filter(site => !site.independent);
this.network = entity;
this.networks = this.network.children;
this.releases = this.network.releases;
this.totalCount = totalCount;
}
async function route() {
@@ -171,6 +163,7 @@ export default {
Releases,
Sites,
Network,
Entity,
},
data() {
return {

View File

@@ -2,13 +2,13 @@
<div class="networks">
<form
class="search"
@submit.prevent="searchSites"
@submit.prevent="searchEntities"
>
<input
v-model="query"
:placeholder="`Find ${siteCount} sites in ${networks.length} networks`"
class="query"
@input="searchSites"
@input="searchEntities"
>
<button
@@ -19,12 +19,12 @@
<div
v-if="query.length"
class="network-tiles"
class="entity-tiles"
>
<Site
v-for="site in searchResults"
:key="`site-tile-${site.slug}`"
:site="site"
<Entity
v-for="entity in searchResults"
:key="`${entity.type}-tile-${entity.slug}`"
:entity="entity"
/>
<span v-if="searchResults.length === 0">No results for "{{ query }}"</span>
@@ -32,41 +32,39 @@
<div
v-if="query.length === 0"
class="network-tiles"
class="entity-tiles"
>
<Network
<Entity
v-for="network in networks"
:key="`network-tile-${network.slug}`"
:network="network"
:entity="network"
/>
</div>
</div>
</template>
<script>
import Network from '../tile/network.vue';
import Site from '../tile/site.vue';
import Entity from '../tile/entity.vue';
async function searchSites() {
this.searchResults = await this.$store.dispatch('searchSites', {
async function searchEntities() {
this.searchResults = await this.$store.dispatch('searchEntities', {
query: this.query,
limit: 20,
limit: 50,
});
}
async function mounted() {
this.networks = await this.$store.dispatch('fetchNetworks');
this.networks = await this.$store.dispatch('fetchEntities', { type: 'network' });
this.pageTitle = 'Networks';
}
function siteCount() {
return this.networks.map(network => network.sites).flat().length;
return this.networks.map(network => network.children).flat().length;
}
export default {
components: {
Network,
Site,
Entity,
},
data() {
return {
@@ -81,7 +79,7 @@ export default {
},
mounted,
methods: {
searchSites,
searchEntities,
},
};
</script>
@@ -135,7 +133,7 @@ export default {
}
}
.network-tiles {
.entity-tiles {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
grid-gap: 1rem;