Compare commits
3 Commits
101f5a1453
...
8902654c4e
Author | SHA1 | Date |
---|---|---|
|
8902654c4e | |
|
15cc970ee2 | |
|
8af562e284 |
|
@ -317,9 +317,10 @@
|
|||
|
||||
<Album
|
||||
v-if="showAlbum"
|
||||
:items="actor.photos"
|
||||
:items="[actor.avatar, ...actor.photos]"
|
||||
:title="actor.name"
|
||||
:portrait="true"
|
||||
:comments="true"
|
||||
@close="$router.go(-1)"
|
||||
/>
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
:class="{ portrait }"
|
||||
>
|
||||
<div
|
||||
v-for="item in items"
|
||||
v-for="item in albumItems"
|
||||
:key="item.id"
|
||||
class="item-container"
|
||||
>
|
||||
|
@ -27,15 +27,15 @@
|
|||
>
|
||||
<img
|
||||
:src="`${path}/${item.thumbnail}`"
|
||||
:title="item.comment"
|
||||
:title="item.title"
|
||||
loading="lazy"
|
||||
class="item image"
|
||||
>
|
||||
|
||||
<span
|
||||
v-if="comments && item.comment"
|
||||
v-if="comments && item.title"
|
||||
class="item-comment"
|
||||
>{{ item.comment }}</span>
|
||||
>{{ item.title }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -44,6 +44,13 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
function albumItems() {
|
||||
return this.items.map(item => ({
|
||||
...item,
|
||||
title: item.comment || (item.credit && `© ${item.credit}`) || (item.entity && `© ${item.entity.name}`),
|
||||
}));
|
||||
}
|
||||
|
||||
export default {
|
||||
props: {
|
||||
items: {
|
||||
|
@ -67,6 +74,9 @@ export default {
|
|||
default: true,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
albumItems,
|
||||
},
|
||||
emits: ['close'],
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -255,7 +255,7 @@ module.exports = {
|
|||
thumbnailQuality: 100,
|
||||
lazySize: 90,
|
||||
lazyQuality: 90,
|
||||
trailerQuality: [480, 540, 360, 720, 1080, 320, 1440, 1600, 1920, 2160, 270, 240, 180],
|
||||
trailerQuality: [480, 540, 360, 720, 960, 1080, 320, 1440, 1600, 1920, 2160, 270, 240, 180],
|
||||
limit: 25, // max number of photos per release
|
||||
streamConcurrency: 2, // max number of video streams (m3u8 etc.) to fetch and process at once
|
||||
},
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "traxxx",
|
||||
"version": "1.167.5",
|
||||
"version": "1.167.6",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "traxxx",
|
||||
"version": "1.167.5",
|
||||
"version": "1.167.6",
|
||||
"description": "All the latest porn releases in one place",
|
||||
"main": "src/app.js",
|
||||
"scripts": {
|
||||
|
|
|
@ -1963,6 +1963,7 @@ const sites = [
|
|||
url: 'https://ddfnetworkvr.com',
|
||||
description: 'VR Porn Videos shot Exclusively in 180 3D 4K Virtual Reality featuring the Hottest European & American VR Pornstar Babes',
|
||||
parent: 'pornworld',
|
||||
tags: ['vr'],
|
||||
parameters: {
|
||||
latest: 'https://ddfnetworkvr.com/home/tagfiltered/keywords/-/',
|
||||
},
|
||||
|
|
|
@ -184,9 +184,18 @@ async function fetchEntitiesBySlug(entitySlugs, sort = 'asc') {
|
|||
FROM entity_tree
|
||||
JOIN entities ON entity_tree.parent_id = entities.id
|
||||
)
|
||||
SELECT jsonb_set(entity, '{children}', to_jsonb(COALESCE(json_agg(children) FILTER (WHERE children.id IS NOT NULL), '[]'))) entity
|
||||
SELECT jsonb_set(
|
||||
jsonb_set(
|
||||
entity,
|
||||
'{children}',
|
||||
to_jsonb(COALESCE(json_agg(children) FILTER (WHERE children.id IS NOT NULL), '[]'))),
|
||||
'{tags}',
|
||||
to_jsonb(COALESCE(json_agg(tags) FILTER (WHERE tags.id IS NOT NULL), '[]'))
|
||||
) entity
|
||||
FROM entity_tree
|
||||
LEFT JOIN entities AS children ON children.parent_id = (entity->>'id')::int
|
||||
LEFT JOIN entities_tags ON entities_tags.entity_id = (entity->>'id')::int
|
||||
LEFT JOIN tags ON tags.id = entities_tags.tag_id
|
||||
WHERE entity_tree.parent_id IS NULL
|
||||
GROUP BY entity_tree.entity
|
||||
ORDER BY entity->'type' :sort;
|
||||
|
|
|
@ -27,7 +27,7 @@ function scrapeAll(scenes, site, origin) {
|
|||
});
|
||||
}
|
||||
|
||||
async function scrapeScene({ query }, url, _site) {
|
||||
async function scrapeScene({ query }, url, channel) {
|
||||
const release = {};
|
||||
|
||||
release.entryId = url.match(/\/(\d+)$/)[1];
|
||||
|
@ -55,6 +55,7 @@ async function scrapeScene({ query }, url, _site) {
|
|||
release.trailer = query.all('source[type="video/mp4"]').map(trailer => ({
|
||||
src: trailer.src,
|
||||
quality: Number(trailer.attributes.res?.value || trailer.attributes.quality?.value.slice(0, -1)) || null,
|
||||
vr: channel.tags?.some(tag => tag.slug === 'vr'),
|
||||
}));
|
||||
|
||||
return release;
|
||||
|
|
Loading…
Reference in New Issue