Fixed empty page breaking Vixen scraper.

This commit is contained in:
DebaucheryLibrarian
2020-11-26 03:13:43 +01:00
parent 980efbc93d
commit 54df9d0c78
8 changed files with 54 additions and 22 deletions

View File

@@ -79,13 +79,12 @@ async function fetchIncludedEntities() {
};
const rawNetworks = await knex.raw(`
WITH RECURSIVE channels AS (
WITH RECURSIVE included_entities AS (
/* select configured channels and networks */
SELECT
entities.*, json_agg(siblings) as siblings
entities.*
FROM
entities
LEFT JOIN entities AS siblings ON siblings.parent_id = entities.parent_id
WHERE
CASE WHEN :includeAll
THEN
@@ -102,17 +101,16 @@ async function fetchIncludedEntities() {
AND entities.type = 'network')
OR (entities.slug = ANY(:excludedChannels)
AND entities.type = 'channel'))
GROUP BY entities.id
UNION ALL
/* select recursive children of configured networks */
SELECT
entities.*, null as siblings
entities.*
FROM
entities
INNER JOIN
channels ON channels.id = entities.parent_id
included_entities ON included_entities.id = entities.parent_id
WHERE
NOT ((entities.slug = ANY(:excludedNetworks)
AND entities.type = 'network')
@@ -121,17 +119,20 @@ async function fetchIncludedEntities() {
)
/* select recursive channels as children of networks */
SELECT
entities.*, json_agg(channels ORDER BY channels.id) as children
parents.*, json_agg(included_entities ORDER BY included_entities.id) as children
FROM
channels
included_entities
LEFT JOIN
entities ON entities.id = channels.parent_id
entities AS parents ON parents.id = included_entities.parent_id
WHERE
channels.type = 'channel'
included_entities.type = 'channel'
GROUP BY
entities.id;
parents.id;
`, include);
// console.log(rawNetworks.rows[0]);
// console.log(rawNetworks.toString());
const curatedNetworks = rawNetworks.rows.map(entity => curateEntity(entity, true));
return curatedNetworks;