feat: initial commit
This commit is contained in:
commit
e214116e40
253 changed files with 17406 additions and 0 deletions
109
queries/views/feeds/recent-activity.psql
Normal file
109
queries/views/feeds/recent-activity.psql
Normal file
|
@ -0,0 +1,109 @@
|
|||
CREATE OR REPLACE VIEW optimized_recent_activity AS
|
||||
WITH activity_data AS (
|
||||
SELECT
|
||||
p.date AS content_date,
|
||||
p.title,
|
||||
p.content AS description,
|
||||
p.url AS url,
|
||||
NULL AS author,
|
||||
NULL AS image,
|
||||
NULL AS rating,
|
||||
NULL AS artist_url,
|
||||
NULL AS venue_lat,
|
||||
NULL AS venue_lon,
|
||||
NULL AS venue_name,
|
||||
NULL AS notes,
|
||||
'article' AS type,
|
||||
'Post' AS label
|
||||
FROM optimized_posts p
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
l.date AS content_date,
|
||||
l.title,
|
||||
l.description,
|
||||
l.link AS url,
|
||||
l.author,
|
||||
NULL AS image,
|
||||
NULL AS rating,
|
||||
NULL AS artist_url,
|
||||
NULL AS venue_lat,
|
||||
NULL AS venue_lon,
|
||||
NULL AS venue_name,
|
||||
NULL AS notes,
|
||||
'link' AS type,
|
||||
'Link' AS label
|
||||
FROM optimized_links l
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
b.date_finished AS content_date,
|
||||
CONCAT(b.title,
|
||||
CASE WHEN b.rating IS NOT NULL THEN CONCAT(' (', b.rating, ')') ELSE '' END
|
||||
) AS title,
|
||||
b.description,
|
||||
b.url AS url,
|
||||
NULL AS author,
|
||||
b.image,
|
||||
b.rating,
|
||||
NULL AS artist_url,
|
||||
NULL AS venue_lat,
|
||||
NULL AS venue_lon,
|
||||
NULL AS venue_name,
|
||||
NULL AS notes,
|
||||
'books' AS type,
|
||||
'Book' AS label
|
||||
FROM optimized_books b
|
||||
WHERE LOWER(b.status) = 'finished'
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
m.last_watched AS content_date,
|
||||
CONCAT(m.title,
|
||||
CASE WHEN m.rating IS NOT NULL THEN CONCAT(' (', m.rating, ')') ELSE '' END
|
||||
) AS title,
|
||||
m.description,
|
||||
m.url AS url,
|
||||
NULL AS author,
|
||||
m.image,
|
||||
m.rating,
|
||||
NULL AS artist_url,
|
||||
NULL AS venue_lat,
|
||||
NULL AS venue_lon,
|
||||
NULL AS venue_name,
|
||||
NULL AS notes,
|
||||
'movies' AS type,
|
||||
'Movie' AS label
|
||||
FROM optimized_movies m
|
||||
WHERE m.last_watched IS NOT NULL
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
c.date AS content_date,
|
||||
CONCAT(c.artist->>'name', ' at ', c.venue->>'name_short') AS title,
|
||||
c.concert_notes AS description,
|
||||
NULL AS url,
|
||||
NULL AS author,
|
||||
NULL AS image,
|
||||
NULL AS rating,
|
||||
c.artist->>'url' AS artist_url,
|
||||
c.venue->>'latitude' AS venue_lat,
|
||||
c.venue->>'longitude' AS venue_lon,
|
||||
c.venue->>'name_short' AS venue_name,
|
||||
c.notes AS notes,
|
||||
'concerts' AS type,
|
||||
'Concert' AS label
|
||||
FROM optimized_concerts c
|
||||
)
|
||||
SELECT json_agg(recent_activity_data ORDER BY recent_activity_data.content_date DESC) AS feed
|
||||
FROM (
|
||||
SELECT *
|
||||
FROM activity_data
|
||||
WHERE content_date IS NOT NULL
|
||||
ORDER BY content_date DESC
|
||||
LIMIT 20
|
||||
) AS recent_activity_data;
|
Loading…
Add table
Add a link
Reference in a new issue