Compare commits
11 Commits
ec7a6ce379
...
2023-02
Author | SHA1 | Date | |
---|---|---|---|
|
b4e4187902 | ||
431126e8a3
|
|||
|
91ceefd88e | ||
8feb37e831
|
|||
4a34496f24
|
|||
|
f7e54233e2 | ||
59875e772e
|
|||
|
f84ee71b7c | ||
927424901b
|
|||
27a84529c6
|
|||
59549daa63
|
@@ -242,6 +242,12 @@ table.hosts tr:nth-child(even) { background-color:#cccccc; }
|
||||
table.hosts tr:nth-child(odd) { background-color:white; }
|
||||
table.hosts tr td img { vertical-align:middle }
|
||||
|
||||
pre.comment {
|
||||
white-space: pre-wrap;
|
||||
padding: 2px;
|
||||
line-height: 1.2rem;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 680px) {
|
||||
#container {width: 95%;}
|
||||
img#hprlogo {float: left; max-width: 85px; padding: .35em;}
|
||||
|
4
site.cfg
4
site.cfg
@@ -146,6 +146,10 @@ media_baseurl: https://www.hackerpublicradio.org/eps/
|
||||
navigation: navigation-about.tpl.html
|
||||
content: content-mumble-howto.tpl.html
|
||||
|
||||
[comments_viewer]
|
||||
navigation: navigation-about.tpl.html
|
||||
content: content-comments_viewer.tpl.html
|
||||
|
||||
[hpr_ogg]
|
||||
root_template: rss.tpl.xml
|
||||
content: rss-hpr.tpl.xml
|
||||
|
43
templates/content-comments_viewer.tpl.html
Normal file
43
templates/content-comments_viewer.tpl.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||
<!--% PROCESS "queries-episode-${constants.database}.tpl.html" %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<h2>Comment Viewer</h2>
|
||||
<p>Because of the spammers we have had to turn on comment moderation. Sorry about the delay this will cause.</p>
|
||||
<p><a href="<!--% absolute_path(baseurl) %-->comments.rss">Subscribe</a> to the comment feed.</p>
|
||||
<hr />
|
||||
<!--% FOREACH item IN DBI.query('
|
||||
SELECT C.*,
|
||||
H.host, H.hostid AS host_id,
|
||||
E.title AS episode_title,
|
||||
E.date AS episode_date,
|
||||
E.duration AS episode_duration,
|
||||
M.id AS series_id, M.name AS series_name
|
||||
FROM comments AS C
|
||||
INNER JOIN eps AS E
|
||||
ON C.eps_id = E.id
|
||||
INNER JOIN hosts AS H
|
||||
ON E.hostid = H.hostid
|
||||
INNER JOIN miniseries AS M
|
||||
ON E.series = M.id
|
||||
ORDER BY C.comment_timestamp DESC
|
||||
LIMIT 30
|
||||
')
|
||||
%-->
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h1><!--% item.comment_author_name %--> says: <!--% item.comment_title %--></h1>
|
||||
<p><small>Posted at <!--% item.comment_timestamp %--> relating to the show <a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html">hpr<!--% item.eps_id %--></a> which was released on <!--% item.episode_date %--> by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(item.host_id) %-->.html"><!--% item.host %--></a> entitled <em><!--% item.episode_title %--></em></small>
|
||||
</p>
|
||||
</header>
|
||||
<pre class="comment">
|
||||
<!--% item.comment_text %-->
|
||||
</pre>
|
||||
<footer>
|
||||
Listen in <a href="<!--% media_path(item.eps_id, 'hpr', 'ogg', baseurl, media_baseurl) %-->">ogg</a>, <a href="<!--% media_path(item.eps_id, 'hpr', 'spx', baseurl, media_baseurl) %-->">spx</a>, or <a href="<!--% media_path(item.eps_id, 'hpr', 'mp3', baseurl, media_baseurl) %-->">mp3</a> format.</p></footer>
|
||||
</article>
|
||||
<hr />
|
||||
<!--% END %-->
|
@@ -2,6 +2,7 @@
|
||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
||||
<!--% PROCESS "queries-episode-${constants.database}.tpl.html" %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% query_episodes = DBI.prepare(query_episode_maxmin)
|
||||
@@ -28,15 +29,8 @@ Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pa
|
||||
<div><!--% episode.notes %--></div>
|
||||
<footer>
|
||||
|
||||
<h2>Show Transcript</h2>
|
||||
<p>Automatically generated using <a href="https://github.com/openai/whisper">whisper</a>
|
||||
<pre><code>whisper --model tiny --language en hpr0010.wav</code></pre></p>
|
||||
<!--% show_transcript(episode, "hpr", baseurl, media_baseurl) %-->
|
||||
|
||||
<ul>
|
||||
<li>Text: <a href="<!--% media_path(episode.id, episode_type, 'txt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.txt</a></li>
|
||||
<li><a href="https://en.wikipedia.org/wiki/WebVTT">WebVTT</a>: <a href="<!--% media_path(episode.id, episode_type, 'vtt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.vtt</a></li>
|
||||
<li><a href="https://en.wikipedia.org/wiki/SubRip">SubRip</a>: <a href="<!--% media_path(episode.id, episode_type, 'srt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.srt</a></li>
|
||||
</ul>
|
||||
<!--% listen_now(episode, "hpr", baseurl, media_baseurl) %-->
|
||||
<p>
|
||||
<!--% episode_navigation %-->
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-call_for_shows.tpl.html' %-->
|
||||
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
|
||||
<!--% PROCESS "queries-index-${constants.database}.tpl.html" %-->
|
||||
@@ -51,6 +52,8 @@
|
||||
</header>
|
||||
<!--% latest_episodes.notes %-->
|
||||
<footer>
|
||||
<!--% show_transcript(latest_episodes, "hpr", baseurl, media_baseurl) %-->
|
||||
|
||||
<!--% listen_now(latest_episodes, "hpr", baseurl, media_baseurl) %-->
|
||||
</footer>
|
||||
</article>
|
||||
|
@@ -1,28 +1,16 @@
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS "queries-series-${constants.database}.tpl.html" %-->
|
||||
<article>
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<h1 class="title">In-Depth Series</h1>
|
||||
<!--% FOREACH series IN DBI.query(
|
||||
'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
|
||||
ORDER BY name'
|
||||
) %-->
|
||||
<!--% FOREACH series IN DBI.query(query_episodes) %-->
|
||||
<h2><a href="<!--% absolute_path(baseurl) %-->series/<!--% zero_pad_left(series.id) %-->.html"><!--% series.name %--></a></h2>
|
||||
<ul>
|
||||
<li>Number of episodes: <!--% series.number_of_episodes %--></li>
|
||||
<li>Open/closed: <!--% display_choice(series.private, '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=38">ogg</a>, <a href="hpr_spx_rss.php?series=38">spx</a>, <a href="hpr_mp3_rss.php?series=38">mp3</a></li>
|
||||
<li>Series RSS feeds: <a href="https://www.hackerpublicradio.org/hpr_ogg_rss.php?series=<!--% series.id %-->">ogg</a>, <a href="https://www.hackerpublicradio.org/hpr_spx_rss.php?series=<!--% series.id %-->">spx</a>, <a href="https://www.hackerpublicradio.org/hpr_mp3_rss.php?series=<!--% series.id %-->">mp3</a></li>
|
||||
</ul>
|
||||
<em><!--% series.description %--></em>
|
||||
<!--% END %-->
|
||||
|
@@ -1,20 +1,8 @@
|
||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||
<!--% PROCESS "queries-series_episodes-${constants.database}.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')
|
||||
<!--% query_series = DBI.prepare(query_series_sql)
|
||||
%-->
|
||||
<!--% series_result = query_series.execute(id) %-->
|
||||
<article>
|
||||
@@ -25,21 +13,11 @@
|
||||
<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>
|
||||
<li>Series RSS feeds: <a href="https://www.hackerpublicradio.org/hpr_ogg_rss.php?series=<!--% series.id %-->&full=1&gomax=1">ogg</a>, <a href="https://www.hackerpublicradio.org/hpr_spx_rss.php?series=<!--% series.id %-->&full=1&gomax=1">spx</a>, <a href="https://www.hackerpublicradio.org/hpr_mp3_rss.php?series=<!--% series.id %-->&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 eps.id DESC
|
||||
')
|
||||
<!--% query_shows = DBI.prepare(query_shows_sql)
|
||||
%-->
|
||||
<!--% show_results = query_shows.execute(id) %-->
|
||||
<!--% FOREACH show IN show_results %-->
|
||||
|
15
templates/queries-series-mysql.tpl.html
Normal file
15
templates/queries-series-mysql.tpl.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!--% query_episodes = '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
|
||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||
GROUP BY series) AS ep ON ep.series = miniseries.id
|
||||
ORDER BY name'
|
||||
%-->
|
||||
|
15
templates/queries-series-sqlite.tpl.html
Normal file
15
templates/queries-series-sqlite.tpl.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!--% query_episodes = '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
|
||||
WHERE eps.date < date(\'now\', \'+1 days\')
|
||||
GROUP BY series) AS ep ON ep.series = miniseries.id
|
||||
ORDER BY name'
|
||||
%-->
|
||||
|
29
templates/queries-series_episodes-mysql.tpl.html
Normal file
29
templates/queries-series_episodes-mysql.tpl.html
Normal file
@@ -0,0 +1,29 @@
|
||||
<!--% query_series_sql = '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
|
||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||
GROUP BY series) AS ep ON ep.series = miniseries.id
|
||||
WHERE miniseries.id = ?
|
||||
ORDER BY name'
|
||||
%-->
|
||||
<!--% query_shows_sql = '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 = ? AND eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||
ORDER BY eps.id DESC
|
||||
'
|
||||
%-->
|
||||
|
28
templates/queries-series_episodes-sqlite.tpl.html
Normal file
28
templates/queries-series_episodes-sqlite.tpl.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<!--% query_series_sql = '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
|
||||
WHERE eps.date < date(\'now\', \'+1 days\')
|
||||
GROUP BY series) AS ep ON ep.series = miniseries.id
|
||||
WHERE miniseries.id = ?
|
||||
ORDER BY name'
|
||||
%-->
|
||||
<!--% query_shows_sql = '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 = ? AND eps.date < date(\'now\', \'+1 days\')
|
||||
ORDER BY eps.id DESC
|
||||
'
|
||||
%-->
|
12
templates/shared-show-transcript.tpl.html
Normal file
12
templates/shared-show-transcript.tpl.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<!--% MACRO show_transcript(episode, episode_type, baseurl, media_baseurl) BLOCK %-->
|
||||
<h2>Show Transcript</h2>
|
||||
<p>Automatically generated using <a href="https://github.com/openai/whisper">whisper</a>
|
||||
<pre><code>whisper --model tiny --language en hpr<!--% zero_pad_left(episode.id) %-->.wav</code></pre></p>
|
||||
|
||||
<ul>
|
||||
<li>Text: <a href="<!--% media_path(episode.id, episode_type, 'txt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.txt</a></li>
|
||||
<li><a href="https://en.wikipedia.org/wiki/WebVTT">WebVTT</a>: <a href="<!--% media_path(episode.id, episode_type, 'vtt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.vtt</a></li>
|
||||
<li><a href="https://en.wikipedia.org/wiki/SubRip">SubRip</a>: <a href="<!--% media_path(episode.id, episode_type, 'srt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.srt</a></li>
|
||||
</ul>
|
||||
<!--% END %-->
|
||||
|
@@ -63,7 +63,7 @@
|
||||
<!--% USE String(transcription_types) %-->
|
||||
<!--% USE String(media_baseurl) %-->
|
||||
<!--% IF transcription_types.search(media_type) && media_baseurl.search('archive.org') %-->
|
||||
<!--% media_baseurl = "${media_baseurl}hpr\$eps_id/hpr" %-->
|
||||
<!--% media_baseurl = "${media_baseurl}hpr\$eps_id/" %-->
|
||||
<!--% END %-->
|
||||
<!--% media_folder = "" %-->
|
||||
<!--% media_baseurl = media_baseurl.replace('\$eps_id', zero_pad_left(episode_id)) %-->
|
||||
|
Reference in New Issue
Block a user