From b1f1fd422990e1c78cf63fbb8f882f9216b5c6dd Mon Sep 17 00:00:00 2001
From: Roan Horning <roan.horning@gmail.com>
Date: Fri, 5 Aug 2022 15:51:59 -0400
Subject: [PATCH] Add generation of individual series pages

---
 site.cfg                                |  6 ++++
 templates/content-series_shows.tpl.html | 48 +++++++++++++++++++++++++
 templates/ids-series_shows.tpl.html     |  7 ++++
 3 files changed, 61 insertions(+)
 create mode 100644 templates/content-series_shows.tpl.html
 create mode 100644 templates/ids-series_shows.tpl.html

diff --git a/site.cfg b/site.cfg
index 69547db..b507036 100644
--- a/site.cfg
+++ b/site.cfg
@@ -58,3 +58,9 @@ filename: correspondents/[id]/index.html
 navigation: navigation-get-shows.tpl.html
 content: content-series.tpl.html
 filename: series/index.html
+
+[series_shows]
+navigation: navigation-get-shows.tpl.html
+content: content-series_shows.tpl.html
+multipage: true
+filename: series/[id].html
diff --git a/templates/content-series_shows.tpl.html b/templates/content-series_shows.tpl.html
new file mode 100644
index 0000000..33d6a57
--- /dev/null
+++ b/templates/content-series_shows.tpl.html
@@ -0,0 +1,48 @@
+<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
+<!--% PROCESS 'shared-avatar.tpl.html' %-->
+<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
+<!--% query_series = DBI.prepare('SELECT miniseries.id, miniseries.name, 
+			miniseries.description, 
+			miniseries.private, miniseries.image, miniseries.valid,
+			ep.number_of_episodes, ep.latest_show, ep.earliest_show
+		 FROM miniseries
+		 INNER JOIN 
+			(SELECT series, 
+				COUNT(eps.id) AS number_of_episodes,
+				MAX(eps.date) AS latest_show,
+				MIN(eps.date) AS earliest_show
+			 FROM eps 
+			 GROUP BY series) AS ep ON ep.series = miniseries.id
+		 WHERE miniseries.id = ?
+		 ORDER BY name')
+%-->
+<!--% series_result = query_series.execute(id) %-->
+<article>
+<!--% FOREACH series IN series_result %-->
+<h1 class="title">In-Depth Series: <!--% series.name %--></h1>
+<ul>
+	<li>Number of episodes: <!--% series.number_of_episodes %--></li>
+	<li>Open/closed: open</li>
+	<li>Date of earliest show: <!--% series.earliest_show %--></li>
+	<li>Date of latest show: <!--% series.latest_show %--></li>
+	<li>Series RSS feeds: <a href="hpr_ogg_rss.php?series=79&full=1&gomax=1">ogg</a>, <a href="hpr_spx_rss.php?series=79&full=1&gomax=1">spx</a>, <a href="hpr_mp3_rss.php?series=79&full=1&gomax=1">mp3</a></li>
+</ul>
+<div><em><!--% series.description %--></em></div>
+<!--% END %-->
+<!--% query_shows = DBI.prepare('SELECT
+	id, date, title,
+	duration, summary, notes,
+	explicit, eps.license, tags,
+	hosts.host, hosts.hostid
+	FROM eps
+	INNER JOIN hosts
+	ON eps.hostid = hosts.hostid
+	WHERE series = ?
+	ORDER BY date DESC
+	')
+%-->
+<!--% show_results = query_shows.execute(id) %-->
+<!--% FOREACH show IN show_results %-->
+<!--% show_summary(show) %-->
+<!--% END %-->
+</article>
diff --git a/templates/ids-series_shows.tpl.html b/templates/ids-series_shows.tpl.html
new file mode 100644
index 0000000..e3f89d9
--- /dev/null
+++ b/templates/ids-series_shows.tpl.html
@@ -0,0 +1,7 @@
+<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
+<!--% FOREACH series IN DBI.query(
+	'select s.id from miniseries as s'
+) %-->
+,<!--% series.id %-->
+<!--% END %-->
+