feat(tags): this adds support for post, link, book, show and movie tags with a tag list view and per tag pages
This commit is contained in:
parent
3d866262ca
commit
6fdc0b56b9
35 changed files with 500 additions and 70 deletions
|
@ -6,6 +6,7 @@ WITH activity_data AS (
|
|||
p.content AS description,
|
||||
p.url AS url,
|
||||
p.featured AS featured,
|
||||
p.tags::TEXT[],
|
||||
NULL AS author,
|
||||
NULL AS image,
|
||||
NULL AS rating,
|
||||
|
@ -26,6 +27,7 @@ WITH activity_data AS (
|
|||
l.description,
|
||||
l.link AS url,
|
||||
NULL AS featured,
|
||||
l.tags::TEXT[],
|
||||
l.author,
|
||||
NULL AS image,
|
||||
NULL AS rating,
|
||||
|
@ -48,6 +50,7 @@ WITH activity_data AS (
|
|||
b.description,
|
||||
b.url AS url,
|
||||
NULL AS featured,
|
||||
b.tags::TEXT[],
|
||||
NULL AS author,
|
||||
b.image,
|
||||
b.rating,
|
||||
|
@ -71,6 +74,7 @@ WITH activity_data AS (
|
|||
m.description,
|
||||
m.url AS url,
|
||||
NULL AS featured,
|
||||
m.tags::TEXT[],
|
||||
NULL AS author,
|
||||
m.image,
|
||||
m.rating,
|
||||
|
@ -92,6 +96,7 @@ WITH activity_data AS (
|
|||
c.concert_notes AS description,
|
||||
NULL AS url,
|
||||
NULL AS featured,
|
||||
NULL AS tags,
|
||||
NULL AS author,
|
||||
NULL AS image,
|
||||
NULL AS rating,
|
||||
|
|
|
@ -39,6 +39,10 @@ WITH sitemap_data AS (
|
|||
ss.slug AS url
|
||||
FROM
|
||||
static_slugs ss
|
||||
UNION ALL
|
||||
SELECT CONCAT('/tags/', LOWER(REPLACE(tag, ' ', '-'))) AS url
|
||||
FROM optimized_all_tags
|
||||
WHERE tag IS NOT NULL AND TRIM(tag) <> ''
|
||||
)
|
||||
SELECT
|
||||
url
|
||||
|
|
68
queries/views/feeds/tagged_content.psql
Normal file
68
queries/views/feeds/tagged_content.psql
Normal file
|
@ -0,0 +1,68 @@
|
|||
CREATE OR REPLACE VIEW optimized_tagged_content AS
|
||||
SELECT
|
||||
unnest(p.tags) AS tag,
|
||||
p.title::TEXT,
|
||||
p.url::TEXT,
|
||||
p.date::timestamp WITHOUT TIME ZONE AS content_date,
|
||||
NULL AS author,
|
||||
NULL::TEXT AS rating,
|
||||
p.featured,
|
||||
p.tags::TEXT[],
|
||||
'article'::TEXT AS type,
|
||||
'Post'::TEXT AS label
|
||||
FROM optimized_posts p
|
||||
UNION ALL
|
||||
SELECT
|
||||
unnest(l.tags) AS tag,
|
||||
l.title::TEXT,
|
||||
l.link::TEXT AS url,
|
||||
l.date::timestamp WITHOUT TIME ZONE AS content_date,
|
||||
l.author,
|
||||
NULL::TEXT AS rating,
|
||||
NULL::BOOLEAN AS featured,
|
||||
l.tags::TEXT[],
|
||||
'link'::TEXT AS type,
|
||||
'Link'::TEXT AS label
|
||||
FROM optimized_links l
|
||||
UNION ALL
|
||||
SELECT
|
||||
unnest(b.tags) AS tag,
|
||||
b.title::TEXT,
|
||||
b.url::TEXT,
|
||||
b.date_finished::timestamp WITHOUT TIME ZONE AS content_date,
|
||||
NULL AS author,
|
||||
b.rating::TEXT,
|
||||
NULL::BOOLEAN AS featured,
|
||||
b.tags::TEXT[],
|
||||
'books'::TEXT AS type,
|
||||
'Book'::TEXT AS label
|
||||
FROM optimized_books b
|
||||
WHERE LOWER(b.status) = 'finished'
|
||||
UNION ALL
|
||||
SELECT
|
||||
unnest(m.tags) AS tag,
|
||||
m.title::TEXT,
|
||||
m.url::TEXT,
|
||||
m.last_watched::timestamp WITHOUT TIME ZONE AS content_date,
|
||||
NULL AS author,
|
||||
m.rating::TEXT,
|
||||
NULL::BOOLEAN AS featured,
|
||||
m.tags::TEXT[],
|
||||
'movies'::TEXT AS type,
|
||||
'Movie'::TEXT AS label
|
||||
FROM optimized_movies m
|
||||
WHERE m.last_watched IS NOT NULL
|
||||
UNION ALL
|
||||
SELECT
|
||||
unnest(s.tags) AS tag,
|
||||
s.title::TEXT,
|
||||
s.url::TEXT,
|
||||
s.last_watched_at::timestamp WITHOUT TIME ZONE AS content_date,
|
||||
NULL AS author,
|
||||
NULL::TEXT AS rating,
|
||||
NULL::BOOLEAN AS featured,
|
||||
s.tags::TEXT[],
|
||||
'tv'::TEXT AS type,
|
||||
'Show'::TEXT AS label
|
||||
FROM optimized_shows s
|
||||
WHERE s.last_watched_at IS NOT NULL;
|
7
queries/views/feeds/tags.psql
Normal file
7
queries/views/feeds/tags.psql
Normal file
|
@ -0,0 +1,7 @@
|
|||
CREATE OR REPLACE VIEW optimized_all_tags AS
|
||||
SELECT
|
||||
tag,
|
||||
COUNT(*) AS uses
|
||||
FROM optimized_tagged_content
|
||||
GROUP BY tag
|
||||
ORDER BY tag ASC;
|
Loading…
Add table
Add a link
Reference in a new issue