chore: fix related books + deduplication

- fixed total plays formatting
- formatted queries
- improved proxy server
This commit is contained in:
Cory Dransfeldt 2024-10-21 12:04:17 -07:00
parent ab50866bb8
commit d2c4c78ff7
No known key found for this signature in database
40 changed files with 985 additions and 1357 deletions

View file

@ -19,4 +19,4 @@ SELECT
FROM
globals g
LEFT JOIN directus_files df ON g.avatar = df.id
LEFT JOIN directus_files df2 ON g.avatar_transparent = df2.id
LEFT JOIN directus_files df2 ON g.avatar_transparent = df2.id

View file

@ -10,5 +10,5 @@ SELECT
p.permalink AS page_permalink
FROM
navigation n
LEFT JOIN
pages p ON n.pages = p.id;
LEFT JOIN pages p ON n.pages = p.id;

View file

@ -6,58 +6,49 @@ SELECT
p.description,
CONCAT('/', df.filename_disk) AS open_graph_image,
p.updated,
(
SELECT json_agg(
CASE
WHEN pb.collection = 'youtube_player' THEN json_build_object(
'type', pb.collection,
'url', yp.url
)
WHEN pb.collection = 'github_banner' THEN json_build_object(
'type', pb.collection,
'url', gb.url
)
WHEN pb.collection = 'npm_banner' THEN json_build_object(
'type', pb.collection,
'url', nb.url,
'command', nb.command
)
WHEN pb.collection = 'rss_banner' THEN json_build_object(
'type', pb.collection,
'url', rb.url,
'text', rb.text
)
WHEN pb.collection = 'hero' THEN json_build_object(
'type', pb.collection,
'image', CONCAT('/', df_hero.filename_disk),
'alt', h.alt_text
)
WHEN pb.collection = 'markdown' THEN json_build_object(
'type', pb.collection,
'text', md.text
)
WHEN pb.collection = 'divider' THEN json_build_object(
'type', pb.collection,
'markup', d.markup
)
ELSE json_build_object('type', pb.collection)
END
ORDER BY pb.sort)
FROM pages_blocks pb
LEFT JOIN youtube_player yp ON pb.collection = 'youtube_player' AND yp.id = pb.item::INTEGER
LEFT JOIN github_banner gb ON pb.collection = 'github_banner' AND gb.id = pb.item::INTEGER
LEFT JOIN npm_banner nb ON pb.collection = 'npm_banner' AND nb.id = pb.item::INTEGER
LEFT JOIN rss_banner rb ON pb.collection = 'rss_banner' AND rb.id = pb.item::INTEGER
LEFT JOIN hero h ON pb.collection = 'hero' AND h.id = pb.item::INTEGER
LEFT JOIN directus_files df_hero ON h.image = df_hero.id
LEFT JOIN markdown md ON pb.collection = 'markdown' AND md.id = pb.item::INTEGER
LEFT JOIN divider d ON pb.collection = 'divider' AND d.id = pb.item::INTEGER
WHERE pb.pages_id = p.id
) AS blocks
(
SELECT
json_agg(
CASE WHEN pb.collection = 'youtube_player' THEN
json_build_object('type', pb.collection, 'url', yp.url)
WHEN pb.collection = 'github_banner' THEN
json_build_object('type', pb.collection, 'url', gb.url)
WHEN pb.collection = 'npm_banner' THEN
json_build_object('type', pb.collection, 'url', nb.url, 'command', nb.command)
WHEN pb.collection = 'rss_banner' THEN
json_build_object('type', pb.collection, 'url', rb.url, 'text', rb.text)
WHEN pb.collection = 'hero' THEN
json_build_object('type', pb.collection, 'image', CONCAT('/', df_hero.filename_disk), 'alt', h.alt_text)
WHEN pb.collection = 'markdown' THEN
json_build_object('type', pb.collection, 'text', md.text)
WHEN pb.collection = 'divider' THEN
json_build_object('type', pb.collection, 'markup', d.markup)
ELSE
json_build_object('type', pb.collection)
END ORDER BY pb.sort)
FROM
pages_blocks pb
LEFT JOIN youtube_player yp ON pb.collection = 'youtube_player'
AND yp.id = pb.item::integer
LEFT JOIN github_banner gb ON pb.collection = 'github_banner'
AND gb.id = pb.item::integer
LEFT JOIN npm_banner nb ON pb.collection = 'npm_banner'
AND nb.id = pb.item::integer
LEFT JOIN rss_banner rb ON pb.collection = 'rss_banner'
AND rb.id = pb.item::integer
LEFT JOIN hero h ON pb.collection = 'hero'
AND h.id = pb.item::integer
LEFT JOIN directus_files df_hero ON h.image = df_hero.id
LEFT JOIN markdown md ON pb.collection = 'markdown'
AND md.id = pb.item::integer
LEFT JOIN divider d ON pb.collection = 'divider'
AND d.id = pb.item::integer
WHERE
pb.pages_id = p.id) AS blocks
FROM
pages p
LEFT JOIN
directus_files df ON p.open_graph_image = df.id
LEFT JOIN directus_files df ON p.open_graph_image = df.id
GROUP BY
p.id, df.filename_disk;
p.id,
df.filename_disk;