Added 'newly added' filter. Handling paywalled videos in Private scraper. Added shoot ID to search.
This commit is contained in:
@@ -3,47 +3,80 @@
|
||||
<span>
|
||||
<label class="range">
|
||||
<input
|
||||
:id="`${_uid}-new`"
|
||||
:checked="range === 'new'"
|
||||
:id="`${_uid}-range-latest`"
|
||||
:checked="range === 'latest'"
|
||||
type="radio"
|
||||
class="range-input"
|
||||
@click="setRange('new')"
|
||||
@click="setRange('latest')"
|
||||
>
|
||||
<label
|
||||
:for="`${_uid}-new`"
|
||||
:for="`${_uid}-range-latest`"
|
||||
class="range-button"
|
||||
>New</label>
|
||||
>Latest</label>
|
||||
</label>
|
||||
|
||||
<label class="range">
|
||||
<input
|
||||
:id="`${_uid}-upcoming`"
|
||||
:id="`${_uid}-range-upcoming`"
|
||||
:checked="range === 'upcoming'"
|
||||
type="radio"
|
||||
class="range-input"
|
||||
@click="setRange('upcoming')"
|
||||
>
|
||||
<label
|
||||
:for="`${_uid}-upcoming`"
|
||||
:for="`${_uid}-range-upcoming`"
|
||||
class="range-button"
|
||||
>Upcoming</label>
|
||||
</label>
|
||||
|
||||
<label class="range">
|
||||
<input
|
||||
:id="`${_uid}-all`"
|
||||
:id="`${_uid}-range-all`"
|
||||
:checked="range === 'all'"
|
||||
type="radio"
|
||||
class="range-input"
|
||||
@click="setRange('all')"
|
||||
>
|
||||
<label
|
||||
:for="`${_uid}-all`"
|
||||
:for="`${_uid}-range-all`"
|
||||
class="range-button"
|
||||
>All</label>
|
||||
</label>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<label class="batch">
|
||||
<input
|
||||
:id="`${_uid}-batch-all`"
|
||||
:checked="batch === 'all'"
|
||||
type="radio"
|
||||
class="range-input"
|
||||
@click="setBatch('all')"
|
||||
>
|
||||
<label
|
||||
:for="`${_uid}-batch-all`"
|
||||
class="range-button"
|
||||
>All</label>
|
||||
</label>
|
||||
|
||||
<label
|
||||
v-tooltip="'Only show newly added'"
|
||||
class="batch"
|
||||
>
|
||||
<input
|
||||
:id="`${_uid}-batch-new`"
|
||||
:checked="batch === 'new'"
|
||||
type="radio"
|
||||
class="range-input"
|
||||
@click="setBatch('new')"
|
||||
>
|
||||
<label
|
||||
:for="`${_uid}-batch-new`"
|
||||
class="range-button"
|
||||
>New</label>
|
||||
</label>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<span class="filters-container">
|
||||
<Icon icon="filter" />
|
||||
@@ -82,6 +115,10 @@ function range(state) {
|
||||
return state.ui.range;
|
||||
}
|
||||
|
||||
function batch(state) {
|
||||
return state.ui.batch;
|
||||
}
|
||||
|
||||
async function setFilter(newFilter) {
|
||||
this.$store.dispatch('setFilter', newFilter);
|
||||
|
||||
@@ -94,6 +131,12 @@ async function setRange(newRange) {
|
||||
await this.fetchReleases();
|
||||
}
|
||||
|
||||
async function setBatch(newBatch) {
|
||||
this.$store.dispatch('setBatch', newBatch);
|
||||
|
||||
await this.fetchReleases();
|
||||
}
|
||||
|
||||
export default {
|
||||
components: {
|
||||
Filters,
|
||||
@@ -108,11 +151,13 @@ export default {
|
||||
...mapState({
|
||||
filter,
|
||||
range,
|
||||
batch,
|
||||
}),
|
||||
},
|
||||
methods: {
|
||||
setFilter,
|
||||
setRange,
|
||||
setBatch,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
v-tooltip.bottom="release.url && `View scene on ${release.site.name}`"
|
||||
:title="release.url && `View scene on ${release.site.name}`"
|
||||
:href="release.url"
|
||||
:class="{ upcoming: isAfter(release.date, new Date()) }"
|
||||
:class="{ upcoming: isAfter(release.date, new Date()), new: release.isNew }"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="date"
|
||||
@@ -53,7 +53,7 @@
|
||||
<a
|
||||
v-else
|
||||
:href="release.url"
|
||||
:class="{ upcoming: isAfter(release.date, new Date()) }"
|
||||
:class="{ upcoming: isAfter(release.date, new Date()), new: release.isNew }"
|
||||
title="Scene date N/A, showing date added"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
@@ -224,19 +224,21 @@ export default {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.date.upcoming:before {
|
||||
content: '';
|
||||
color: $text-contrast;
|
||||
background: $primary;
|
||||
width: .25rem;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: -.75rem;
|
||||
padding: .25rem;
|
||||
font-size: .8rem;
|
||||
font-weight: bold;
|
||||
.date {
|
||||
&.upcoming:before {
|
||||
content: '';
|
||||
background: $primary;
|
||||
width: .5rem;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: -.5rem;
|
||||
}
|
||||
|
||||
&.new {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.site {
|
||||
|
||||
@@ -52,6 +52,7 @@ function initActorActions(store, _router) {
|
||||
$limit:Int = 1000,
|
||||
$after:Date = "1900-01-01",
|
||||
$before:Date = "2100-01-01",
|
||||
$isNew:[Boolean!] = [true,false]
|
||||
$orderBy:[ReleasesActorsOrderBy!]
|
||||
$exclude: [String!]
|
||||
) {
|
||||
@@ -132,6 +133,9 @@ function initActorActions(store, _router) {
|
||||
}
|
||||
}
|
||||
}
|
||||
isNew: {
|
||||
in: $isNew
|
||||
}
|
||||
}
|
||||
},
|
||||
first: $limit,
|
||||
@@ -167,6 +171,7 @@ function initActorActions(store, _router) {
|
||||
limit,
|
||||
after: store.getters.after,
|
||||
before: store.getters.before,
|
||||
isNew: store.getters.isNew,
|
||||
orderBy: store.state.ui.range === 'upcoming' ? 'RELEASE_BY_RELEASE_ID__DATE_ASC' : 'RELEASE_BY_RELEASE_ID__DATE_DESC',
|
||||
exclude: store.state.ui.filter,
|
||||
});
|
||||
@@ -183,7 +188,6 @@ function initActorActions(store, _router) {
|
||||
if (actorSlug) {
|
||||
return fetchActorBySlug(actorSlug);
|
||||
}
|
||||
console.log(genders);
|
||||
|
||||
const { actors } = await graphql(`
|
||||
query Actors(
|
||||
|
||||
@@ -125,7 +125,6 @@ const releaseFields = `
|
||||
date
|
||||
slug
|
||||
type
|
||||
batch
|
||||
createdAt
|
||||
url
|
||||
${releaseActorsFragment}
|
||||
@@ -139,6 +138,7 @@ const releaseFields = `
|
||||
slug
|
||||
url
|
||||
}
|
||||
isNew
|
||||
`;
|
||||
|
||||
const releasesFragment = `
|
||||
@@ -157,6 +157,9 @@ const releasesFragment = `
|
||||
}
|
||||
}
|
||||
}
|
||||
isNew: {
|
||||
in: $isNew
|
||||
}
|
||||
},
|
||||
first: $limit,
|
||||
orderBy: $orderBy,
|
||||
|
||||
@@ -12,6 +12,7 @@ function initNetworksActions(store, _router) {
|
||||
$before:Date = "2100-01-01",
|
||||
$afterTime:Datetime = "1900-01-01",
|
||||
$beforeTime:Datetime = "2100-01-01",
|
||||
$isNew:[Boolean!] = [true,false]
|
||||
$orderBy: [ReleasesOrderBy!]
|
||||
$exclude: [String!]
|
||||
) {
|
||||
@@ -88,7 +89,7 @@ function initNetworksActions(store, _router) {
|
||||
greaterThan: $afterTime,
|
||||
}
|
||||
}
|
||||
],
|
||||
]
|
||||
releasesTags: {
|
||||
none: {
|
||||
tag: {
|
||||
@@ -98,6 +99,9 @@ function initNetworksActions(store, _router) {
|
||||
}
|
||||
}
|
||||
}
|
||||
isNew: {
|
||||
in: $isNew
|
||||
}
|
||||
}
|
||||
) {
|
||||
${releaseFields}
|
||||
@@ -110,6 +114,7 @@ function initNetworksActions(store, _router) {
|
||||
before: store.getters.before,
|
||||
afterTime: store.getters.after,
|
||||
beforeTime: store.getters.before,
|
||||
isNew: store.getters.isNew,
|
||||
orderBy: store.state.ui.range === 'upcoming' ? 'DATE_ASC' : 'DATE_DESC',
|
||||
exclude: store.state.ui.filter,
|
||||
});
|
||||
|
||||
@@ -9,6 +9,7 @@ function initReleasesActions(store, _router) {
|
||||
$limit:Int = 1000,
|
||||
$after:Date = "1900-01-01",
|
||||
$before:Date = "2100-01-01",
|
||||
$isNew:[Boolean!] = [true,false]
|
||||
$orderBy:[ReleasesOrderBy!],
|
||||
$exclude: [String!]
|
||||
) {
|
||||
@@ -18,6 +19,7 @@ function initReleasesActions(store, _router) {
|
||||
limit,
|
||||
after: store.getters.after,
|
||||
before: store.getters.before,
|
||||
isNew: store.getters.isNew,
|
||||
orderBy: store.state.ui.range === 'upcoming' ? 'DATE_ASC' : 'DATE_DESC',
|
||||
exclude: store.state.ui.filter,
|
||||
});
|
||||
@@ -41,7 +43,7 @@ function initReleasesActions(store, _router) {
|
||||
slug
|
||||
date
|
||||
url
|
||||
batch
|
||||
isNew
|
||||
site {
|
||||
id
|
||||
slug
|
||||
|
||||
@@ -10,6 +10,7 @@ function initSitesActions(store, _router) {
|
||||
$limit:Int = 100,
|
||||
$after:Date = "1900-01-01",
|
||||
$before:Date = "2100-01-01",
|
||||
$isNew:[Boolean!] = [true,false]
|
||||
$orderBy:[ReleasesOrderBy!]
|
||||
$exclude: [String!]
|
||||
) {
|
||||
@@ -38,6 +39,7 @@ function initSitesActions(store, _router) {
|
||||
limit,
|
||||
after: store.getters.after,
|
||||
before: store.getters.before,
|
||||
isNew: store.getters.isNew,
|
||||
orderBy: store.state.ui.range === 'upcoming' ? 'DATE_ASC' : 'DATE_DESC',
|
||||
exclude: store.state.ui.filter,
|
||||
});
|
||||
|
||||
@@ -12,6 +12,7 @@ function initTagsActions(store, _router) {
|
||||
$limit:Int = 1000,
|
||||
$after:Date = "1900-01-01",
|
||||
$before:Date = "2100-01-01",
|
||||
$isNew:[Boolean!] = [true,false]
|
||||
$orderBy: [ReleasesTagsOrderBy!],
|
||||
$exclude: [String!]
|
||||
) {
|
||||
@@ -56,6 +57,9 @@ function initTagsActions(store, _router) {
|
||||
}
|
||||
}
|
||||
}
|
||||
isNew: {
|
||||
in: $isNew
|
||||
}
|
||||
}
|
||||
},
|
||||
first: $limit,
|
||||
@@ -72,6 +76,7 @@ function initTagsActions(store, _router) {
|
||||
limit,
|
||||
after: store.getters.after,
|
||||
before: store.getters.before,
|
||||
isNew: store.getters.isNew,
|
||||
orderBy: store.state.ui.range === 'upcoming' ? 'RELEASE_BY_RELEASE_ID__DATE_ASC' : 'RELEASE_BY_RELEASE_ID__DATE_DESC',
|
||||
exclude: store.state.ui.filter,
|
||||
});
|
||||
|
||||
@@ -11,9 +11,15 @@ function initUiActions(_store, _router) {
|
||||
localStorage.setItem('range', range);
|
||||
}
|
||||
|
||||
function setBatch({ commit }, batch) {
|
||||
commit('setBatch', batch);
|
||||
localStorage.setItem('batch', batch);
|
||||
}
|
||||
|
||||
return {
|
||||
setFilter,
|
||||
setRange,
|
||||
setBatch,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
const dateRanges = {
|
||||
new: () => ({
|
||||
latest: () => ({
|
||||
after: '1900-01-01',
|
||||
before: dayjs(new Date()).add(1, 'day').format('YYYY-MM-DD'),
|
||||
}),
|
||||
@@ -27,8 +27,13 @@ function after(state) {
|
||||
return dateRanges[state.range]().after;
|
||||
}
|
||||
|
||||
function isNew(state) {
|
||||
return state.batch === 'new' ? [true] : [true, false];
|
||||
}
|
||||
|
||||
export default {
|
||||
rangeDates,
|
||||
before,
|
||||
after,
|
||||
isNew,
|
||||
};
|
||||
|
||||
@@ -6,7 +6,12 @@ function setRange(state, range) {
|
||||
state.range = range;
|
||||
}
|
||||
|
||||
function setBatch(state, batch) {
|
||||
state.batch = batch;
|
||||
}
|
||||
|
||||
export default {
|
||||
setFilter,
|
||||
setRange,
|
||||
setBatch,
|
||||
};
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
const storedFilter = localStorage.getItem('filter');
|
||||
const storedRange = localStorage.getItem('range');
|
||||
const storedBatch = localStorage.getItem('batch');
|
||||
|
||||
export default {
|
||||
filter: storedFilter ? storedFilter.split(',') : ['gay', 'transsexual'],
|
||||
range: storedRange || 'new',
|
||||
range: storedRange || 'latest',
|
||||
batch: storedBatch || 'all',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user