Refactored stats page.

This commit is contained in:
DebaucheryLibrarian 2023-06-24 17:16:06 +02:00
parent f4ed4fb8d8
commit fbcf17d1c4
15 changed files with 139 additions and 62 deletions

View File

@ -165,6 +165,7 @@ export default {
.campaign-banner {
height: auto;
width: auto;
max-height: 100%;
max-width: 100%;
}

View File

@ -288,6 +288,7 @@ export default {
}
.campaign-container {
max-height: 150px;
background: var(--background-dim);
text-align: center;
padding: .5rem;

View File

@ -8,7 +8,10 @@
<dt class="stat-label">Version</dt>
<dd class="stat-value">{{ version }}</dd>
</div>
</dl>
<template v-if="loaded">
<dl class="stat-table">
<div class="stat-row">
<dt class="stat-label">Content updated</dt>
<dd class="stat-value">{{ formatDate(lastScrape, 'YYYY-MM-DD HH:mm') }}</dd>
@ -41,38 +44,44 @@
<dd class="stat-value">{{ totalActors }}</dd>
</div>
</dl>
</template>
<Ellipsis v-else />
</div>
<Footer />
</div>
</template>
<script>
async function mounted() {
const stats = await this.$store.dispatch('fetchStats');
<script setup>
import { ref, onMounted } from 'vue';
import { useStore } from 'vuex';
this.totalScenes = stats.totalScenes;
this.totalMovies = stats.totalMovies;
this.totalActors = stats.totalActors;
this.totalNetworks = stats.totalNetworks;
this.totalChannels = stats.totalChannels;
this.lastScrape = stats.lastScrape;
import Ellipsis from '../loading/ellipsis.vue';
this.version = VERSION; // eslint-disable-line no-undef
}
const store = useStore();
const version = VERSION; // eslint-disable-line no-undef
export default {
data() {
return {
totalScenes: 0,
totalMovies: 0,
totalActors: 0,
totalNetworks: 0,
totalChannels: 0,
};
},
mounted,
};
const loaded = ref(false);
const totalScenes = ref(0);
const totalMovies = ref(0);
const totalActors = ref(0);
const totalNetworks = ref(0);
const totalChannels = ref(0);
const lastScrape = ref(null);
onMounted(async () => {
const stats = await store.dispatch('fetchStats');
totalScenes.value = stats.totalScenes;
totalMovies.value = stats.totalMovies;
totalActors.value = stats.totalActors;
totalNetworks.value = stats.totalNetworks;
totalChannels.value = stats.totalChannels;
lastScrape.value = stats.lastScrape;
loaded.value = true;
});
</script>
<style lang="scss" scoped>

View File

@ -280,23 +280,15 @@ function initUiActions(store, _router) {
actors,
networks,
channels,
batches: [batch],
} = await graphql(`
query Stats {
scenes: releasesConnection(
last: 1,
orderBy: BATCH_BY_CREATED_BATCH_ID__CREATED_AT_ASC
) {
totalCount
scenes: nodes {
batch: createdBatch {
createdAt
}
}
}
scenes: releasesConnection { totalCount }
movies: moviesConnection { totalCount }
actors: actorsConnection { totalCount }
networks: entitiesConnection(filter: { type: { equalTo: "network" } }) { totalCount }
channels: entitiesConnection(filter: { type: { equalTo: "channel" } }) { totalCount }
batches(orderBy: CREATED_AT_DESC, first: 1) { createdAt }
}
`);
@ -306,7 +298,7 @@ function initUiActions(store, _router) {
totalActors: actors.totalCount,
totalNetworks: networks.totalCount,
totalChannels: channels.totalCount,
lastScrape: new Date(scenes.scenes[0]?.batch.createdAt),
lastScrape: new Date(batch.createdAt),
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -40,6 +40,15 @@ const bannerTags = {
archangel_970_90_kendra_lust: ['dp', 'anal', 'sex', 'interracial', 'black'],
// dogfart
wefuckblackgirls_728_90_loss: ['mfm', 'threesome', 'anal', 'black', 'interracial'],
dfxtra_900_250_mfm: ['mfm', 'threesome', 'black', 'interracial'],
dfxtra_900_250_gay_anal: ['gay', 'anal', 'black', 'interracial'],
dfxtra_300_250_mfm: ['mfm', 'threesome', 'black', 'interracial'],
dfxtra_300_250_gay_bj: ['gay', 'blowjob', 'black', 'interracial'],
blacksonblondes_900_250_mfm: ['mfm', 'threesome', 'black', 'interracial'],
blacksonblondes_900_250_mfm_hj: ['mfm', 'threesome', 'handjob', 'black', 'interracial'],
blacksonblondes_300_250_mfm: ['mfm', 'threesome', 'black', 'interracial'],
blacksonblondes_300_250_mff_april: ['mff', 'threesome', 'black', 'interracial'],
blacksonblondes_300_250_mff_april2: ['mff', 'threesome', 'black', 'interracial'],
// evilangel
evilangel_728_90_adriana_chechik_gangbang: ['gangbang', 'airtight', 'dp', 'dvp', 'facial', 'brunette'],
evilangel_728_90_kenzie_reeves_lexi_lore: ['anal', 'mff', 'blowjob', 'blonde'],
@ -250,6 +259,71 @@ const campaigns = [
affiliate: 'bang_signup',
comment: 'per signup',
},
// dfxtra / dogfart
{
network: 'dfxtra',
url: 'https://www.g2fame.com/dfxtra/go.php?pr=8&su=2&si=681&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
network: 'dfxtra',
banner: 'dfxtra_900_250_mfm',
url: 'https://www.g2fame.com/dfxtra/go.php?pr=8&su=2&si=681&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
network: 'dfxtra',
banner: 'dfxtra_900_250_gay_anal',
url: 'https://www.g2fame.com/dfxtra/go.php?pr=8&su=2&si=681&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
network: 'dfxtra',
banner: 'dfxtra_300_250_mfm',
url: 'https://www.g2fame.com/dfxtra/go.php?pr=8&su=2&si=681&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
network: 'dfxtra',
banner: 'dfxtra_300_250_gay_bj',
url: 'https://www.g2fame.com/dfxtra/go.php?pr=8&su=2&si=681&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
channel: 'blacksonblondes',
url: 'https://www.g2fame.com/blacksonblondes/go.php?pr=8&su=2&si=682&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
channel: 'blacksonblondes',
banner: 'blacksonblondes_900_250_mfm_hj',
url: 'https://www.g2fame.com/blacksonblondes/go.php?pr=8&su=2&si=682&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
channel: 'blacksonblondes',
banner: 'blacksonblondes_900_250_mfm',
url: 'https://www.g2fame.com/blacksonblondes/go.php?pr=8&su=2&si=682&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
channel: 'blacksonblondes',
banner: 'blacksonblondes_300_250_mfm',
url: 'https://www.g2fame.com/blacksonblondes/go.php?pr=8&su=2&si=682&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
channel: 'blacksonblondes',
banner: 'blacksonblondes_300_250_mff_april',
url: 'https://www.g2fame.com/blacksonblondes/go.php?pr=8&su=2&si=682&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
{
channel: 'blacksonblondes',
banner: 'blacksonblondes_300_250_mff_april2',
url: 'https://www.g2fame.com/blacksonblondes/go.php?pr=8&su=2&si=682&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
// julesjordan
{
network: 'julesjordan',