feat(scheduled_shows.sql): add air date to shows that haven't been started
This commit is contained in:
parent
0ccc749cd8
commit
d95df47274
3 changed files with 46 additions and 29 deletions
4
package-lock.json
generated
4
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "coryd.dev",
|
"name": "coryd.dev",
|
||||||
"version": "3.8.4",
|
"version": "3.9.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "coryd.dev",
|
"name": "coryd.dev",
|
||||||
"version": "3.8.4",
|
"version": "3.9.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"html-minifier-terser": "7.2.0",
|
"html-minifier-terser": "7.2.0",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "coryd.dev",
|
"name": "coryd.dev",
|
||||||
"version": "3.8.4",
|
"version": "3.9.0",
|
||||||
"description": "The source for my personal site. Built using 11ty (and other tools).",
|
"description": "The source for my personal site. Built using 11ty (and other tools).",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
|
@ -25,18 +25,18 @@ SELECT json_build_object(
|
||||||
THEN TO_CHAR(se.air_date, 'FMMM/FMDD/YY')
|
THEN TO_CHAR(se.air_date, 'FMMM/FMDD/YY')
|
||||||
ELSE TO_CHAR(se.air_date, 'FMMM/FMDD')
|
ELSE TO_CHAR(se.air_date, 'FMMM/FMDD')
|
||||||
END
|
END
|
||||||
)
|
)
|
||||||
FROM scheduled_episodes se
|
FROM scheduled_episodes se
|
||||||
WHERE se.show_id = s.id
|
WHERE se.show_id = s.id
|
||||||
AND se.status IN ('upcoming', 'aired')
|
AND se.status IN ('upcoming', 'aired')
|
||||||
AND NOT EXISTS (
|
AND NOT EXISTS (
|
||||||
SELECT 1 FROM episodes e
|
SELECT 1 FROM episodes e
|
||||||
WHERE e.show = s.id
|
WHERE e.show = s.id
|
||||||
AND e.season_number = se.season_number
|
AND e.season_number = se.season_number
|
||||||
AND e.episode_number = se.episode_number
|
AND e.episode_number = se.episode_number
|
||||||
)
|
)
|
||||||
ORDER BY se.season_number ASC, se.episode_number ASC
|
ORDER BY se.season_number ASC, se.episode_number ASC
|
||||||
LIMIT 1),
|
LIMIT 1),
|
||||||
(SELECT CONCAT(
|
(SELECT CONCAT(
|
||||||
'S', e.season_number, 'E', e.episode_number, ' • ',
|
'S', e.season_number, 'E', e.episode_number, ' • ',
|
||||||
CASE
|
CASE
|
||||||
|
@ -44,11 +44,11 @@ SELECT json_build_object(
|
||||||
THEN TO_CHAR(e.last_watched_at, 'FMMM/FMDD/YY')
|
THEN TO_CHAR(e.last_watched_at, 'FMMM/FMDD/YY')
|
||||||
ELSE TO_CHAR(e.last_watched_at, 'FMMM/FMDD')
|
ELSE TO_CHAR(e.last_watched_at, 'FMMM/FMDD')
|
||||||
END
|
END
|
||||||
)
|
)
|
||||||
FROM episodes e
|
FROM episodes e
|
||||||
WHERE e.show = s.id
|
WHERE e.show = s.id
|
||||||
ORDER BY e.last_watched_at DESC, e.season_number DESC, e.episode_number DESC
|
ORDER BY e.last_watched_at DESC, e.season_number DESC, e.episode_number DESC
|
||||||
LIMIT 1),
|
LIMIT 1),
|
||||||
s.year::text
|
s.year::text
|
||||||
)
|
)
|
||||||
) AS grid,
|
) AS grid,
|
||||||
|
@ -59,10 +59,10 @@ SELECT json_build_object(
|
||||||
WHERE se.show_id = s.id
|
WHERE se.show_id = s.id
|
||||||
AND se.status IN ('upcoming', 'aired')
|
AND se.status IN ('upcoming', 'aired')
|
||||||
AND NOT EXISTS (
|
AND NOT EXISTS (
|
||||||
SELECT 1 FROM episodes e
|
SELECT 1 FROM episodes e
|
||||||
WHERE e.show = s.id
|
WHERE e.show = s.id
|
||||||
AND e.season_number = se.season_number
|
AND e.season_number = se.season_number
|
||||||
AND e.episode_number = se.episode_number
|
AND e.episode_number = se.episode_number
|
||||||
)
|
)
|
||||||
ORDER BY se.season_number ASC, se.episode_number ASC
|
ORDER BY se.season_number ASC, se.episode_number ASC
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
|
@ -73,10 +73,10 @@ SELECT json_build_object(
|
||||||
WHERE se.show_id = s.id
|
WHERE se.show_id = s.id
|
||||||
AND se.status IN ('upcoming', 'aired')
|
AND se.status IN ('upcoming', 'aired')
|
||||||
AND NOT EXISTS (
|
AND NOT EXISTS (
|
||||||
SELECT 1 FROM episodes e
|
SELECT 1 FROM episodes e
|
||||||
WHERE e.show = s.id
|
WHERE e.show = s.id
|
||||||
AND e.season_number = se.season_number
|
AND e.season_number = se.season_number
|
||||||
AND e.episode_number = se.episode_number
|
AND e.episode_number = se.episode_number
|
||||||
)
|
)
|
||||||
ORDER BY se.season_number ASC, se.episode_number ASC
|
ORDER BY se.season_number ASC, se.episode_number ASC
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
|
@ -122,7 +122,24 @@ SELECT json_build_object(
|
||||||
'backdrop', CONCAT('/', df_backdrop.filename_disk),
|
'backdrop', CONCAT('/', df_backdrop.filename_disk),
|
||||||
'url', s.slug,
|
'url', s.slug,
|
||||||
'alt', CONCAT('Poster from ', s.title),
|
'alt', CONCAT('Poster from ', s.title),
|
||||||
'subtext', s.year::text
|
'subtext', COALESCE(
|
||||||
|
(
|
||||||
|
SELECT CONCAT(
|
||||||
|
'S', se.season_number, 'E', se.episode_number, ' • ',
|
||||||
|
CASE
|
||||||
|
WHEN EXTRACT(YEAR FROM se.air_date) < EXTRACT(YEAR FROM CURRENT_DATE)
|
||||||
|
THEN TO_CHAR(se.air_date, 'FMMM/FMDD/YY')
|
||||||
|
ELSE TO_CHAR(se.air_date, 'FMMM/FMDD')
|
||||||
|
END
|
||||||
|
)
|
||||||
|
FROM scheduled_episodes se
|
||||||
|
WHERE se.show_id = s.id
|
||||||
|
AND se.status IN ('upcoming', 'aired')
|
||||||
|
ORDER BY se.season_number ASC, se.episode_number ASC
|
||||||
|
LIMIT 1
|
||||||
|
),
|
||||||
|
s.year::text
|
||||||
|
)
|
||||||
) AS grid
|
) AS grid
|
||||||
FROM shows s
|
FROM shows s
|
||||||
LEFT JOIN directus_files df_art ON s.art = df_art.id
|
LEFT JOIN directus_files df_art ON s.art = df_art.id
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue