Compare commits
37 Commits
0b99483f0d
...
2023-02
Author | SHA1 | Date | |
---|---|---|---|
|
b4e4187902 | ||
431126e8a3
|
|||
|
91ceefd88e | ||
8feb37e831
|
|||
4a34496f24
|
|||
|
f7e54233e2 | ||
59875e772e
|
|||
|
f84ee71b7c | ||
927424901b
|
|||
27a84529c6
|
|||
59549daa63
|
|||
|
ec7a6ce379 | ||
756bdc0fa1
|
|||
b2eaea1eb8
|
|||
|
fe9bf574cf | ||
309ea05c15
|
|||
|
649d6c3746 | ||
e41f6029aa
|
|||
|
4bd7c6f867 | ||
138b0fdd1b
|
|||
d437e66f0e
|
|||
|
a213efa695 | ||
|
314127441c | ||
2a486cb58b
|
|||
7c44f6b680
|
|||
71a63e1beb
|
|||
8e1232517a | |||
cb65d25cfc
|
|||
2b4802508d
|
|||
1312e3d374
|
|||
3cc6da57ad
|
|||
675f8fa9d5
|
|||
6f28bb2a16
|
|||
cb881558ca
|
|||
4e8edf2640
|
|||
|
e86d2c010d | ||
f0fa21ae45
|
@@ -235,6 +235,17 @@ pre { /* Add background, border and scrollbar to <pre> */
|
|||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.hosts {
|
||||||
|
background: white
|
||||||
|
}
|
||||||
|
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) {
|
@media only screen and (max-width: 680px) {
|
||||||
|
BIN
public_html/images/livestream.png
Normal file
BIN
public_html/images/livestream.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 405 B |
@@ -198,6 +198,7 @@ sub get_template_html (\%@) {
|
|||||||
PRE_CHOMP => 1,
|
PRE_CHOMP => 1,
|
||||||
POST_CHOMP => 1,
|
POST_CHOMP => 1,
|
||||||
CONSTANTS => {
|
CONSTANTS => {
|
||||||
|
database => $_[0]{database},
|
||||||
driver => $_[0]{driver},
|
driver => $_[0]{driver},
|
||||||
user => $_[0]{user},
|
user => $_[0]{user},
|
||||||
password => $_[0]{password},
|
password => $_[0]{password},
|
||||||
|
5
site.cfg
5
site.cfg
@@ -2,6 +2,7 @@
|
|||||||
# with the database.
|
# with the database.
|
||||||
# dbi:<driver name [SQLite, CSV, ADO, mSQL, etc.]>:<database name>
|
# dbi:<driver name [SQLite, CSV, ADO, mSQL, etc.]>:<database name>
|
||||||
[DBI]
|
[DBI]
|
||||||
|
database: mysql
|
||||||
driver: dbi:mysql:database=hpr_hpr:hostname=localhost
|
driver: dbi:mysql:database=hpr_hpr:hostname=localhost
|
||||||
user: hpr-generator
|
user: hpr-generator
|
||||||
password: zBozqN-Z2zNAz
|
password: zBozqN-Z2zNAz
|
||||||
@@ -145,6 +146,10 @@ media_baseurl: https://www.hackerpublicradio.org/eps/
|
|||||||
navigation: navigation-about.tpl.html
|
navigation: navigation-about.tpl.html
|
||||||
content: content-mumble-howto.tpl.html
|
content: content-mumble-howto.tpl.html
|
||||||
|
|
||||||
|
[comments_viewer]
|
||||||
|
navigation: navigation-about.tpl.html
|
||||||
|
content: content-comments_viewer.tpl.html
|
||||||
|
|
||||||
[hpr_ogg]
|
[hpr_ogg]
|
||||||
root_template: rss.tpl.xml
|
root_template: rss.tpl.xml
|
||||||
content: rss-hpr.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 %-->
|
@@ -1,6 +1,7 @@
|
|||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
|
<!--% PROCESS "queries-correspondent-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% query_hpr_show_count = DBI.prepare('
|
<!--% query_hpr_show_count = DBI.prepare('
|
||||||
SELECT id
|
SELECT id
|
||||||
@@ -8,26 +9,10 @@
|
|||||||
WHERE eps.hostid = ?
|
WHERE eps.hostid = ?
|
||||||
')
|
')
|
||||||
%-->
|
%-->
|
||||||
<!--% query_hpr_shows = DBI.prepare('
|
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows)
|
||||||
SELECT
|
|
||||||
eps.id,
|
|
||||||
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
|
|
||||||
eps.date, eps.license, eps.duration,
|
|
||||||
eps.title, eps.summary, eps.tags,
|
|
||||||
eps.notes,
|
|
||||||
hosts.local_image,
|
|
||||||
hosts.hostid,
|
|
||||||
hosts.host, hosts.email,
|
|
||||||
miniseries.name AS series, miniseries.id AS seriesid
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
|
||||||
INNER JOIN miniseries ON eps.series = miniseries.id
|
|
||||||
WHERE hosts.hostid = ? AND eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
|
||||||
ORDER BY eps.id DESC
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<!--% hpr_shows_to_count = query_hpr_show_count.execute(id); %-->
|
<!--% hpr_shows_to_count = query_hpr_show_count.execute(id); %-->
|
||||||
<!--% hpr_shows = query_hpr_shows.execute(id); %-->
|
<!--% hpr_shows = results_hpr_shows.execute(id); %-->
|
||||||
<!--% hpr_show_count = 0 %-->
|
<!--% hpr_show_count = 0 %-->
|
||||||
<!--% FOREACH show IN hpr_shows_to_count %-->
|
<!--% FOREACH show IN hpr_shows_to_count %-->
|
||||||
<!--% hpr_show_count = hpr_show_count +1; %-->
|
<!--% hpr_show_count = hpr_show_count +1; %-->
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<p>For more information on how to become a Correspondent see our <a href="<!--% absolute_path(baseurl) %-->contribute.html">contribute</a></center> page. To add a logo here, either email one to admin at hpr or setup your email on <a href="https://en.gravatar.com/">Gravatar</a>. To protect your browsing privacy we gather the images every hour and serve them directly from HPR.<p />
|
<p>For more information on how to become a Correspondent see our <a href="<!--% absolute_path(baseurl) %-->contribute.html">contribute</a></center> page. To add a logo here, either email one to admin at hpr or setup your email on <a href="https://en.gravatar.com/">Gravatar</a>. To protect your browsing privacy we gather the images every hour and serve them directly from HPR.<p />
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||||
<table>
|
<table class="hosts">
|
||||||
<th >Avatar</th>
|
<th >Avatar</th>
|
||||||
<th >Name & Host ID</th>
|
<th >Name & Host ID</th>
|
||||||
<th >license</th>
|
<th >license</th>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
inner join (select hostid, max(date) as date from eps group by hostid) as e
|
inner join (select hostid, max(date) as date from eps group by hostid) as e
|
||||||
on h.hostid = e.hostid '
|
on h.hostid = e.hostid '
|
||||||
) %-->
|
) %-->
|
||||||
<tr height="80" bgcolor="#CCCCCC">
|
<tr height="80">
|
||||||
<td><img src="<!--% absolute_path(baseurl) %-->images/<!--% get_avatar(host.hostid) %-->" height="80" width="80" alt="avatar" /></td>
|
<td><img src="<!--% absolute_path(baseurl) %-->images/<!--% get_avatar(host.hostid) %-->" height="80" width="80" alt="avatar" /></td>
|
||||||
|
|
||||||
<td><strong><!--% host.host %--></strong><br>
|
<td><strong><!--% host.host %--></strong><br>
|
||||||
|
@@ -2,57 +2,10 @@
|
|||||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-listen-now.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) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% query_episodes = DBI.prepare('
|
<!--% query_episodes = DBI.prepare(query_episode_maxmin)
|
||||||
WITH episode_maxmin AS (
|
|
||||||
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
|
||||||
FROM eps
|
|
||||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
|
||||||
),
|
|
||||||
episode_date AS (
|
|
||||||
SELECT eps.date
|
|
||||||
FROM eps
|
|
||||||
WHERE eps.id = ?
|
|
||||||
),
|
|
||||||
episode_previous AS (
|
|
||||||
SELECT MAX(id) AS \'previous\', ? AS \'id\'
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN episode_date
|
|
||||||
ON eps.date < episode_date.date
|
|
||||||
WHERE eps.id > 1
|
|
||||||
),
|
|
||||||
episode_next AS (
|
|
||||||
SELECT MIN(id) AS \'next\', ? AS \'id\'
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN episode_date
|
|
||||||
ON eps.date > episode_date.date
|
|
||||||
WHERE eps.date < NOW()
|
|
||||||
),
|
|
||||||
comment_tallies AS (
|
|
||||||
SELECT
|
|
||||||
eps_id,
|
|
||||||
COUNT(eps_id) AS eps_tally
|
|
||||||
FROM comments
|
|
||||||
GROUP BY eps_id
|
|
||||||
)
|
|
||||||
SELECT eps.id, eps.date, eps.title, eps.duration,
|
|
||||||
eps.summary, eps.notes, eps.explicit, eps.license,
|
|
||||||
eps.tags, eps.version, eps.downloads, eps.valid,
|
|
||||||
episode_maxmin.latest, episode_maxmin.earliest,
|
|
||||||
episode_previous.previous, episode_next.next,
|
|
||||||
hosts.hostid, hosts.host,
|
|
||||||
miniseries.name AS \'series\', miniseries.id AS \'seriesid\',
|
|
||||||
miniseries.description AS \'series_description\',
|
|
||||||
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
|
||||||
INNER JOIN miniseries ON eps.series = miniseries.id
|
|
||||||
INNER JOIN episode_maxmin ON eps.id = episode_maxmin.id
|
|
||||||
INNER JOIN episode_previous ON eps.id = episode_previous.id
|
|
||||||
INNER JOIN episode_next ON eps.id = episode_next.id
|
|
||||||
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
|
||||||
WHERE eps.id = ?
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<!--% episode_result = query_episodes.execute(id, id, id, id, id) %-->
|
<!--% episode_result = query_episodes.execute(id, id, id, id, id) %-->
|
||||||
<!--% FOREACH episode IN episode_result %-->
|
<!--% FOREACH episode IN episode_result %-->
|
||||||
@@ -75,6 +28,9 @@ Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pa
|
|||||||
</header>
|
</header>
|
||||||
<div><!--% episode.notes %--></div>
|
<div><!--% episode.notes %--></div>
|
||||||
<footer>
|
<footer>
|
||||||
|
|
||||||
|
<!--% show_transcript(episode, "hpr", baseurl, media_baseurl) %-->
|
||||||
|
|
||||||
<!--% listen_now(episode, "hpr", baseurl, media_baseurl) %-->
|
<!--% listen_now(episode, "hpr", baseurl, media_baseurl) %-->
|
||||||
<p>
|
<p>
|
||||||
<!--% episode_navigation %-->
|
<!--% episode_navigation %-->
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
|
<!--% PROCESS "queries-episodes-${constants.database}.tpl.html" %-->
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
<h1>Complete Archive of Shows.</h1>
|
<h1>Complete Archive of Shows.</h1>
|
||||||
@@ -7,21 +8,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</header>
|
</header>
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH episodes IN DBI.query('
|
<!--% FOREACH episodes IN DBI.query(query_episodes)
|
||||||
SELECT
|
|
||||||
eps.id,
|
|
||||||
eps.explicit,
|
|
||||||
eps.date, eps.license, eps.title, eps.summary,
|
|
||||||
eps.duration, eps.notes, eps.tags,
|
|
||||||
hosts.hostid,
|
|
||||||
hosts.host, hosts.email, hosts.local_image,
|
|
||||||
miniseries.name AS series, miniseries.id AS seriesid
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
|
||||||
INNER JOIN miniseries ON eps.series = miniseries.id
|
|
||||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
|
||||||
ORDER BY eps.id DESC
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<!--% show_summary(episodes) %-->
|
<!--% show_summary(episodes) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@@ -1,77 +1,2 @@
|
|||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<hr>
|
|
||||||
<h2><u>The Eleventh Annual 26 Hour New Years Eve Show</u></h2>
|
|
||||||
<!--
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<img src="livestream.png" /><br />
|
|
||||||
<audio controls autoplay>
|
|
||||||
<source src="http://shownotes.ooguy.com:8000/stream" type="audio/mpeg" >
|
|
||||||
</audio> <br />
|
|
||||||
<a href="http://shownotes.ooguy.com:8000/stream">http://shownotes.ooguy.com:8000/stream.m3u</a><br />
|
|
||||||
<a href="https://hackerpublicradio.org/live">https://hackerpublicradio.org/live</a><br />
|
|
||||||
</p>
|
|
||||||
-->
|
|
||||||
<h3>Welcome every <a href="https://www.timeanddate.com/counters/multicountdown.html">TimeZone</a>!</h3>
|
|
||||||
|
|
||||||
<p><em>If you keep talking, we'll keep recording.</em> </p>
|
|
||||||
|
|
||||||
|
|
||||||
<p>For those who don't know, on New Years Eve 2022-12-31 10:00 UTC (5:00 AM EST), we will have a recording going on the HPR Mumble server for anyone to come on and say "Happy New Years" and talk about whatever they want. We will leave the recording going until at least 2023-01-01 12:00 UTC (7:00 AM EST), and keep recording until the conversation stops.<br>
|
|
||||||
So please stop in. Say "Hi" and maybe join in the conversation with other HPR listeners and contributors. It's always a good time!!</p>
|
|
||||||
|
|
||||||
<h3>Join the conversation on Mumble</h3>
|
|
||||||
|
|
||||||
|
|
||||||
<p>Already have Mumble installed, then <a href="mumble://chatter.skyehaven.net:64738/Hacker%20Public%20Radio?version=1.2.0">this link will bring you to the HPR Room</a></p>
|
|
||||||
|
|
||||||
<p>Get the PC Client <a href="https://wiki.mumble.info/wiki/Main_Page">https://wiki.mumble.info/wiki/Main_Page</a><br>
|
|
||||||
Get the Android Client Mumla <a href="https://f-droid.org/packages/se.lublin.mumla">https://f-droid.org/packages/se.lublin.mumla</a><br>
|
|
||||||
|
|
||||||
<p>Then join the Server: <strong>chatter.skyehaven.net</strong><br>
|
|
||||||
Port: <strong>64738</strong><br>
|
|
||||||
Channel: <strong>HPR</strong></p>
|
|
||||||
|
|
||||||
<p>For those who have never used Mumble before, see this <a href="<!--% absolute_path(baseurl) %-->mumble-howto.html">how-to explaining the setup of the desktop Mumble client</a>, or listen to <a href="<!--% absolute_path(baseurl) %-->eps/hpr3503/index.html">hpr3503 :: Configuring Mumble</a>.</p>
|
|
||||||
|
|
||||||
<!--<h3>Add to the Show-notes</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong>Please help fill out the show notes</strong><br />
|
|
||||||
<a href="http://shownotes.ooguy.com:9001/p/HPR-NYE-2022">http://shownotes.ooguy.com:9001/p/HPR-NYE-2022</a><br />
|
|
||||||
We are using Etherpad for people to share links and info to things they are discussing. The Etherpad will be used for the HPR audio shownotes so please feel free to add to it. The entire event will be broken into 2 to 3 hour segments and made available as HPR episodes.<br/>
|
|
||||||
<em>This really, really helps us out to post the show faster !</em>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Record to the Show</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
We're going to release the show as a podcast, so it would be great if you could grab a copy as a backup.
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
while true;do timestamp="$HOSTNAME-$(\date -u +%Y-%m-%d_%H-%M-%SZ_%A)"; echo "Recording ${timestamp}";cvlc "http://shownotes.ooguy.com:8000/stream.m3u" --sout "file/mp3:${timestamp}.mp3" --run-time="3600" vlc://quit;done
|
|
||||||
</pre>
|
|
||||||
</p>-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
while true;do ffmpeg -i https://hackerpublicradio.org/live -c copy hprnye-$( \date -u +%s )-$( \date -u +%Y%m%dT%H%M%SZ )-${HOSTNAME}.mp3; done
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The show will be held on the <a href="mumble://chatter.skyehaven.net:64738/Hacker%20Public%20Radio?version=1.2.0">HPR Room on Mumble</a>, so now you can prepare by installing the <a href="https://wiki.mumble.info/wiki/Main_Page">mumble PC Client</a>, or the <a href="https://f-droid.org/packages/se.lublin.mumla">mumla Android Client</a>. The Server we will use is: <strong>chatter.skyehaven.net</strong>, Port: <strong>64738</strong>, Channel: <strong>HPR</strong>
|
|
||||||
</p>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<h3>Spread the Word</h3>
|
|
||||||
|
|
||||||
<p>If you are a podcaster please spread the word by including either the <a href="https://hackerpublicradio.org/promote/new-year-show-promo.ogg">ogg</a>, <a href="https://hackerpublicradio.org/promote/new-year-show-promo.mp3">mp3</a>, or <a href="https://hackerpublicradio.org/promote/new-year-show-promo.wav">wav</a> in your show ! <br>
|
|
||||||
<audio controls preload="none">";
|
|
||||||
<source src="https://hackerpublicradio.org/promote/new-year-show-promo.ogg" type="audio/ogg" >
|
|
||||||
<source src="https://hackerpublicradio.org/promote/new-year-show-promo.mp3" type="audio/mpeg" >
|
|
||||||
</audio></p>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<p>
|
|
||||||
If you prefer to just listen to the show and not participate using Mumble, use the link below for the live audio stream using your web browser or favorite audio application such as VLC, or live in your web browser.<br/>
|
|
||||||
</p>
|
|
||||||
It's that time of year again. Time for the 24 hr (26 hr) New Years Eve Show.
|
|
||||||
-->
|
|
||||||
|
@@ -1,7 +1,10 @@
|
|||||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-listen-now.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' %-->
|
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
|
||||||
|
<!--% PROCESS "queries-index-${constants.database}.tpl.html" %-->
|
||||||
<hr>
|
<hr>
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
@@ -9,21 +12,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<!--% days_till_next_episode = 0 %-->
|
<!--% days_till_next_episode = 0 %-->
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH next_available_episode_result IN DBI.query('
|
<!--% FOREACH next_available_episode_result IN DBI.query(query_next_available_episode)
|
||||||
WITH next_id AS (
|
|
||||||
SELECT id, id + 1 AS \'id_next\', date as \'last_date\'
|
|
||||||
FROM eps
|
|
||||||
WHERE eps.date > NOW()
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
MIN(next_id.id_next) AS \'next_id\',
|
|
||||||
DATE_FORMAT(MIN(last_date), \'%Y\') AS \'last_year\',
|
|
||||||
DATE_FORMAT(MIN(last_date), \'%d\') AS \'last_day\',
|
|
||||||
DATE_FORMAT(MIN(last_date), \'%m\') AS \'last_month\'
|
|
||||||
FROM next_id
|
|
||||||
LEFT JOIN eps ON next_id.id_next = eps.id
|
|
||||||
WHERE eps.id IS NULL
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<!--% USE date %-->
|
<!--% USE date %-->
|
||||||
<!--% calc = date.calc %-->
|
<!--% calc = date.calc %-->
|
||||||
@@ -32,7 +21,10 @@
|
|||||||
<!--% USE date %-->
|
<!--% USE date %-->
|
||||||
<!--% delta = date.calc.N_Delta_YMD(2005,9,19, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) %-->
|
<!--% delta = date.calc.N_Delta_YMD(2005,9,19, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) %-->
|
||||||
<p>We started producing shows as <a href="<!--% absolute_path(baseurl) %-->eps/index.html#twat_episodes"><em>Today with a Techie</em></a> on 2005-09-19, <!--% delta.0 %--> years, <!--% delta.1 %--> months, <!--% delta.2 %--> days ago. our shows are produced by <a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">listeners</a> like you and can be on any <a href="<!--% absolute_path(baseurl) %-->eps/index.html">topic</a> that <strong>"are of interest to <a href="https://en.wikipedia.org/wiki/hacker_(hobbyist)">hackers</a>"</strong>. if you listen to HPR then please consider contributing one show a year. if you <a href="<!--% absolute_path(baseurl) %-->contribute.html">record</a> your show now it could be <a href="https://www.hackerpublicradio.org/calendar.php">released</a> in <strong><!--% days_till_next_episode %--></strong> days.</p>
|
<p>We started producing shows as <a href="<!--% absolute_path(baseurl) %-->eps/index.html#twat_episodes"><em>Today with a Techie</em></a> on 2005-09-19, <!--% delta.0 %--> years, <!--% delta.1 %--> months, <!--% delta.2 %--> days ago. our shows are produced by <a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">listeners</a> like you and can be on any <a href="<!--% absolute_path(baseurl) %-->eps/index.html">topic</a> that <strong>"are of interest to <a href="https://en.wikipedia.org/wiki/hacker_(hobbyist)">hackers</a>"</strong>. if you listen to HPR then please consider contributing one show a year. if you <a href="<!--% absolute_path(baseurl) %-->contribute.html">record</a> your show now it could be <a href="https://www.hackerpublicradio.org/calendar.php">released</a> in <strong><!--% days_till_next_episode %--></strong> days.</p>
|
||||||
<h4>Meet the team</h4>
|
</article>
|
||||||
|
<!--% display_call_for_shows() %-->
|
||||||
|
<article>
|
||||||
|
<h4>Meet the team</h4>
|
||||||
<p>
|
<p>
|
||||||
<audio controls preload="none">";
|
<audio controls preload="none">";
|
||||||
<source src="<!--% absolute_path(baseurl) %-->media/promos/all-hpr-hosts.ogg" type="audio/ogg" >
|
<source src="<!--% absolute_path(baseurl) %-->media/promos/all-hpr-hosts.ogg" type="audio/ogg" >
|
||||||
@@ -43,33 +35,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<h1>Latest Shows</h1>
|
<h1>Latest Shows</h1>
|
||||||
<!--% FOREACH latest_episodes IN DBI.query('
|
<!--% FOREACH latest_episodes IN DBI.query(query_latest_episodes)
|
||||||
WITH comment_tallies AS (
|
|
||||||
SELECT
|
|
||||||
eps_id,
|
|
||||||
COUNT(eps_id) AS eps_tally
|
|
||||||
FROM comments
|
|
||||||
GROUP BY eps_id
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
eps.id,
|
|
||||||
eps.explicit,
|
|
||||||
eps.date, eps.license, eps.duration,
|
|
||||||
eps.title, eps.summary, eps.tags,
|
|
||||||
eps.notes,
|
|
||||||
hosts.local_image,
|
|
||||||
hosts.hostid,
|
|
||||||
hosts.host, hosts.email,
|
|
||||||
miniseries.name AS series, miniseries.id AS seriesid,
|
|
||||||
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
|
||||||
INNER JOIN miniseries ON eps.series = miniseries.id
|
|
||||||
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
|
||||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
|
||||||
ORDER BY eps.id DESC
|
|
||||||
LIMIT 10
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<hr>
|
<hr>
|
||||||
<article>
|
<article>
|
||||||
@@ -86,7 +52,9 @@
|
|||||||
</header>
|
</header>
|
||||||
<!--% latest_episodes.notes %-->
|
<!--% latest_episodes.notes %-->
|
||||||
<footer>
|
<footer>
|
||||||
<!--% listen_now(latest_episodes, "hpr", baseurl, media_baseurl) %-->
|
<!--% show_transcript(latest_episodes, "hpr", baseurl, media_baseurl) %-->
|
||||||
|
|
||||||
|
<!--% listen_now(latest_episodes, "hpr", baseurl, media_baseurl) %-->
|
||||||
</footer>
|
</footer>
|
||||||
</article>
|
</article>
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
@@ -95,22 +63,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<h1>Previous five weeks</h1>
|
<h1>Previous five weeks</h1>
|
||||||
</header>
|
</header>
|
||||||
<!--% FOREACH last_5_weeks_episodes IN DBI.query('
|
<!--% FOREACH last_5_weeks_episodes IN DBI.query(query_last_5_weeks_episodes)
|
||||||
SELECT
|
|
||||||
eps.id,
|
|
||||||
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
|
|
||||||
eps.date, eps.license, eps.title, eps.summary,
|
|
||||||
eps.duration, eps.notes, eps.tags,
|
|
||||||
hosts.hostid,
|
|
||||||
hosts.host, hosts.email, hosts.local_image,
|
|
||||||
miniseries.name AS series, miniseries.id AS seriesid
|
|
||||||
FROM eps
|
|
||||||
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
|
||||||
INNER JOIN miniseries ON eps.series = miniseries.id
|
|
||||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
|
||||||
ORDER BY eps.id DESC
|
|
||||||
LIMIT 30 OFFSET 10
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<!--% show_summary(last_5_weeks_episodes) %-->
|
<!--% show_summary(last_5_weeks_episodes) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@@ -1,28 +1,16 @@
|
|||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
|
<!--% PROCESS "queries-series-${constants.database}.tpl.html" %-->
|
||||||
<article>
|
<article>
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<h1 class="title">In-Depth Series</h1>
|
<h1 class="title">In-Depth Series</h1>
|
||||||
<!--% FOREACH series IN DBI.query(
|
<!--% FOREACH series IN DBI.query(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
|
|
||||||
GROUP BY series) AS ep ON ep.series = miniseries.id
|
|
||||||
ORDER BY name'
|
|
||||||
) %-->
|
|
||||||
<h2><a href="<!--% absolute_path(baseurl) %-->series/<!--% zero_pad_left(series.id) %-->.html"><!--% series.name %--></a></h2>
|
<h2><a href="<!--% absolute_path(baseurl) %-->series/<!--% zero_pad_left(series.id) %-->.html"><!--% series.name %--></a></h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Number of episodes: <!--% series.number_of_episodes %--></li>
|
<li>Number of episodes: <!--% series.number_of_episodes %--></li>
|
||||||
<li>Open/closed: <!--% display_choice(series.private, 'closed', 'open') %--></li>
|
<li>Open/closed: <!--% display_choice(series.private, 'closed', 'open') %--></li>
|
||||||
<li>Date of earliest show: <!--% series.earliest_show %--></li>
|
<li>Date of earliest show: <!--% series.earliest_show %--></li>
|
||||||
<li>Date of latest show: <!--% series.latest_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>
|
</ul>
|
||||||
<em><!--% series.description %--></em>
|
<em><!--% series.description %--></em>
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@@ -1,20 +1,8 @@
|
|||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||||
|
<!--% PROCESS "queries-series_episodes-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% query_series = DBI.prepare('SELECT miniseries.id, miniseries.name,
|
<!--% query_series = DBI.prepare(query_series_sql)
|
||||||
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) %-->
|
<!--% series_result = query_series.execute(id) %-->
|
||||||
<article>
|
<article>
|
||||||
@@ -25,21 +13,11 @@
|
|||||||
<li>Open/closed: open</li>
|
<li>Open/closed: open</li>
|
||||||
<li>Date of earliest show: <!--% series.earliest_show %--></li>
|
<li>Date of earliest show: <!--% series.earliest_show %--></li>
|
||||||
<li>Date of latest show: <!--% series.latest_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>
|
</ul>
|
||||||
<div><em><!--% series.description %--></em></div>
|
<div><em><!--% series.description %--></em></div>
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
<!--% query_shows = DBI.prepare('SELECT
|
<!--% query_shows = DBI.prepare(query_shows_sql)
|
||||||
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
|
|
||||||
')
|
|
||||||
%-->
|
%-->
|
||||||
<!--% show_results = query_shows.execute(id) %-->
|
<!--% show_results = query_shows.execute(id) %-->
|
||||||
<!--% FOREACH show IN show_results %-->
|
<!--% FOREACH show IN show_results %-->
|
||||||
|
@@ -1,3 +1,51 @@
|
|||||||
|
<h1>RSS Syndication</h1>
|
||||||
|
<p><small><em><a href="http://hackerpublicradio.org/advanced_rss_settings.php">Advanced Settings</a>.</em></small></p>
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h2>Subscribe to our Feeds</h2>
|
||||||
|
</header>
|
||||||
|
<p>
|
||||||
|
Great that you want to listen. Have a look below at the feeds that best suite your listening habits.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h2><img src="<!--% absolute_path(baseurl) %-->images/feed.png" alt="rss logo"> The Community News Summary</h2>
|
||||||
|
<h3>One show a month</h3>
|
||||||
|
</header>
|
||||||
|
<p>
|
||||||
|
If you get overwhelmend by the amount of shows we produce, then this is a good place to start.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Every month, the HPR Janitors put down their mops had have a chat about all the shows, and what else has been going on in the HPR community. This is a regular show scheduled for the first Monday of the month.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://hackerpublicradio.org/hpr_ogg_rss.php?series=47">ogg</a> Larger file size higher quality feed.</li>
|
||||||
|
<li><a href="https://hackerpublicradio.org/hpr_spx_rss.php?series=47">mp3</a> Larger file size regular quality feed in a common format.</li>
|
||||||
|
<li><a href="https://hackerpublicradio.org/hpr_mp3_rss.php?series=47">spx</a> Small file size lower quality feed. <br/>Ideal for dial-up/mobile connections.</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
We also maintain an <a href="https://archive.org/details/hackerpublicradio?and[]=subject%3A%22Community+News%22">Archive.org</a> page where you can get the shows in even more formats.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h2><img src="<!--% absolute_path(baseurl) %-->images/feed.png" alt="rss logo"> Two week Audio feed</h2>
|
||||||
|
<h3>5 shows a week</h3>
|
||||||
|
</header>
|
||||||
|
<p>
|
||||||
|
Use these feeds to keep up to date with the latest HPR Episodes.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="hpr_ogg_rss.php">ogg</a> Larger file size higher quality feed.</li>
|
||||||
|
<li><a href="hpr_rss.php">mp3</a> Larger file size regular quality feed in a common format.</li>
|
||||||
|
<li><a href="hpr_spx_rss.php">spx</a> Small file size lower quality feed. <br/>Ideal for dial-up/mobile connections.</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
We also maintain an <a href="https://archive.org/details/hackerpublicradio">Archive.org</a> page where you can get the shows in even more formats. For more recent shows we are now including the original upload as delivered.
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
<h2><img src="<!--% absolute_path(baseurl) %-->images/feed.png" alt="rss logo"> Entire Archive Audio feed</h2>
|
<h2><img src="<!--% absolute_path(baseurl) %-->images/feed.png" alt="rss logo"> Entire Archive Audio feed</h2>
|
||||||
|
@@ -7,7 +7,6 @@
|
|||||||
WITH episode_maxmin AS (
|
WITH episode_maxmin AS (
|
||||||
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
||||||
FROM twat_eps AS eps
|
FROM twat_eps AS eps
|
||||||
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
|
||||||
),
|
),
|
||||||
episode_date AS (
|
episode_date AS (
|
||||||
SELECT eps.date
|
SELECT eps.date
|
||||||
@@ -26,7 +25,6 @@
|
|||||||
FROM twat_eps AS eps
|
FROM twat_eps AS eps
|
||||||
INNER JOIN episode_date
|
INNER JOIN episode_date
|
||||||
ON eps.date > episode_date.date
|
ON eps.date > episode_date.date
|
||||||
WHERE eps.date < NOW()
|
|
||||||
)
|
)
|
||||||
SELECT eps.id, eps.date, eps.title, eps.duration,
|
SELECT eps.id, eps.date, eps.title, eps.duration,
|
||||||
eps.summary, eps.notes, eps.explicit, eps.license,
|
eps.summary, eps.notes, eps.explicit, eps.license,
|
||||||
|
@@ -1,8 +1,6 @@
|
|||||||
|
<!--% PROCESS "queries-ids-episode-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH episode IN DBI.query(
|
<!--% FOREACH episode IN DBI.query(query_ids_episode) %-->
|
||||||
'select eps.id from eps
|
|
||||||
where eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY) '
|
|
||||||
) %-->
|
|
||||||
,<!--% episode.id %-->
|
,<!--% episode.id %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH episode IN DBI.query(
|
<!--% FOREACH episode IN DBI.query(
|
||||||
'select eps.id from twat_eps AS eps
|
'select eps.id from twat_eps AS eps'
|
||||||
where eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY) '
|
|
||||||
) %-->
|
) %-->
|
||||||
,<!--% episode.id %-->
|
,<!--% episode.id %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
<li><a href="<!--% absolute_path(baseurl) %-->syndication.html">Get Shows</a></li>
|
<li><a href="<!--% absolute_path(baseurl) %-->syndication.html">Get Shows</a></li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Give Shows</a></li>
|
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Give Shows</a></li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->help_out.html">Contribute</a></li>
|
<li><a href="<!--% absolute_path(baseurl) %-->help_out.html">Contribute</a></li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->tags.html">Tags</a></li>
|
<li><a href="http://www.hackerpublicradio.org/tags.php">Tags</a></li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->about.html">About</a></li>
|
<li><a href="<!--% absolute_path(baseurl) %-->about.html">About</a></li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->search.html">Search</a></li>
|
<li><a href="<!--% absolute_path(baseurl) %-->search.html">Search</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
6
templates/queries-call_for_shows-mysql.tpl.html
Normal file
6
templates/queries-call_for_shows-mysql.tpl.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<!--% query_call_for_shows = '
|
||||||
|
SELECT CASE WHEN COUNT(id) < 7 THEN True ELSE False END AS `request_for_shows`
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date > NOW() AND eps.date < DATE_ADD(NOW(), INTERVAL 10 DAY)
|
||||||
|
'
|
||||||
|
%-->
|
6
templates/queries-call_for_shows-sqlite.tpl.html
Normal file
6
templates/queries-call_for_shows-sqlite.tpl.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<!--% query_call_for_shows = '
|
||||||
|
SELECT CASE WHEN COUNT(id) < 7 THEN True ELSE False END AS `request_for_shows`
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date > date(\'now\') AND eps.date < date(\'now\', \'+10 days\')
|
||||||
|
'
|
||||||
|
%-->
|
18
templates/queries-correspondent-mysql.tpl.html
Normal file
18
templates/queries-correspondent-mysql.tpl.html
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<!--% query_hpr_shows = '
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
|
||||||
|
eps.date, eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE hosts.hostid = ? AND eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
ORDER BY eps.id DESC
|
||||||
|
'
|
||||||
|
%-->
|
18
templates/queries-correspondent-sqlite.tpl.html
Normal file
18
templates/queries-correspondent-sqlite.tpl.html
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<!--% query_hpr_shows = '
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
|
||||||
|
eps.date, eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE hosts.hostid = ? AND eps.date < date(\'now\', \'+1 days\')
|
||||||
|
ORDER BY eps.id + 0 DESC
|
||||||
|
'
|
||||||
|
%-->
|
51
templates/queries-episode-mysql.tpl.html
Normal file
51
templates/queries-episode-mysql.tpl.html
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<!--% query_episode_maxmin = '
|
||||||
|
WITH episode_maxmin AS (
|
||||||
|
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
),
|
||||||
|
episode_date AS (
|
||||||
|
SELECT eps.date
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.id = ?
|
||||||
|
),
|
||||||
|
episode_previous AS (
|
||||||
|
SELECT MAX(id) AS \'previous\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN episode_date
|
||||||
|
ON eps.date < episode_date.date
|
||||||
|
WHERE eps.id > 1
|
||||||
|
),
|
||||||
|
episode_next AS (
|
||||||
|
SELECT MIN(id) AS \'next\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN episode_date
|
||||||
|
ON eps.date > episode_date.date
|
||||||
|
WHERE eps.date < NOW()
|
||||||
|
),
|
||||||
|
comment_tallies AS (
|
||||||
|
SELECT
|
||||||
|
eps_id,
|
||||||
|
COUNT(eps_id) AS eps_tally
|
||||||
|
FROM comments
|
||||||
|
GROUP BY eps_id
|
||||||
|
)
|
||||||
|
SELECT eps.id, eps.date, eps.title, eps.duration,
|
||||||
|
eps.summary, eps.notes, eps.explicit, eps.license,
|
||||||
|
eps.tags, eps.version, eps.downloads, eps.valid,
|
||||||
|
episode_maxmin.latest, episode_maxmin.earliest,
|
||||||
|
episode_previous.previous, episode_next.next,
|
||||||
|
hosts.hostid, hosts.host,
|
||||||
|
miniseries.name AS \'series\', miniseries.id AS \'seriesid\',
|
||||||
|
miniseries.description AS \'series_description\',
|
||||||
|
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
INNER JOIN episode_maxmin ON eps.id = episode_maxmin.id
|
||||||
|
INNER JOIN episode_previous ON eps.id = episode_previous.id
|
||||||
|
INNER JOIN episode_next ON eps.id = episode_next.id
|
||||||
|
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
||||||
|
WHERE eps.id = ?
|
||||||
|
'
|
||||||
|
%-->
|
51
templates/queries-episode-sqlite.tpl.html
Normal file
51
templates/queries-episode-sqlite.tpl.html
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<!--% query_episode_maxmin = '
|
||||||
|
WITH episode_maxmin AS (
|
||||||
|
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date < date(\'now\', \'+1 days\')
|
||||||
|
),
|
||||||
|
episode_date AS (
|
||||||
|
SELECT eps.date
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.id = ?
|
||||||
|
),
|
||||||
|
episode_previous AS (
|
||||||
|
SELECT MAX(id) AS \'previous\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN episode_date
|
||||||
|
ON eps.date < episode_date.date
|
||||||
|
WHERE eps.id > 1
|
||||||
|
),
|
||||||
|
episode_next AS (
|
||||||
|
SELECT MIN(id) AS \'next\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN episode_date
|
||||||
|
ON eps.date > episode_date.date
|
||||||
|
WHERE eps.date < date(\'now\')
|
||||||
|
),
|
||||||
|
comment_tallies AS (
|
||||||
|
SELECT
|
||||||
|
eps_id,
|
||||||
|
COUNT(eps_id) AS eps_tally
|
||||||
|
FROM comments
|
||||||
|
GROUP BY eps_id
|
||||||
|
)
|
||||||
|
SELECT eps.id, eps.date, eps.title, eps.duration,
|
||||||
|
eps.summary, eps.notes, eps.explicit, eps.license,
|
||||||
|
eps.tags, eps.version, eps.downloads, eps.valid,
|
||||||
|
episode_maxmin.latest, episode_maxmin.earliest,
|
||||||
|
episode_previous.previous, episode_next.next,
|
||||||
|
hosts.hostid, hosts.host,
|
||||||
|
miniseries.name AS \'series\', miniseries.id AS \'seriesid\',
|
||||||
|
miniseries.description AS \'series_description\',
|
||||||
|
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
INNER JOIN episode_maxmin ON eps.id = episode_maxmin.id
|
||||||
|
INNER JOIN episode_previous ON eps.id = episode_previous.id
|
||||||
|
INNER JOIN episode_next ON eps.id = episode_next.id
|
||||||
|
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
||||||
|
WHERE eps.id = ?
|
||||||
|
'
|
||||||
|
%-->
|
15
templates/queries-episodes-mysql.tpl.html
Normal file
15
templates/queries-episodes-mysql.tpl.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<!--% query_episodes = 'SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
eps.date, eps.license, eps.title, eps.summary,
|
||||||
|
eps.duration, eps.notes, eps.tags,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email, hosts.local_image,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
ORDER BY eps.id DESC'
|
||||||
|
%-->
|
||||||
|
|
15
templates/queries-episodes-sqlite.tpl.html
Normal file
15
templates/queries-episodes-sqlite.tpl.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<!--% query_episodes = 'SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
eps.date, eps.license, eps.title, eps.summary,
|
||||||
|
eps.duration, eps.notes, eps.tags,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email, hosts.local_image,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE eps.date < date(\'now\', \'+1 days\')
|
||||||
|
ORDER BY eps.id + 0 DESC'
|
||||||
|
%-->
|
||||||
|
|
4
templates/queries-ids-episode-mysql.tpl.html
Normal file
4
templates/queries-ids-episode-mysql.tpl.html
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<!--% query_ids_episode = 'select eps.id from eps
|
||||||
|
where eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY) '
|
||||||
|
%-->
|
||||||
|
|
4
templates/queries-ids-episode-sqlite.tpl.html
Normal file
4
templates/queries-ids-episode-sqlite.tpl.html
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<!--% query_ids_episode = 'select eps.id from eps
|
||||||
|
where eps.date < date(\'now\', \'+1 days\')'
|
||||||
|
%-->
|
||||||
|
|
62
templates/queries-index-mysql.tpl.html
Normal file
62
templates/queries-index-mysql.tpl.html
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
<!--% query_next_available_episode = '
|
||||||
|
WITH next_id AS (
|
||||||
|
SELECT id, id + 1 AS \'id_next\', date as \'last_date\'
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date > NOW()
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
MIN(next_id.id_next) AS \'next_id\',
|
||||||
|
DATE_FORMAT(MIN(last_date), \'%Y\') AS \'last_year\',
|
||||||
|
DATE_FORMAT(MIN(last_date), \'%d\') AS \'last_day\',
|
||||||
|
DATE_FORMAT(MIN(last_date), \'%m\') AS \'last_month\'
|
||||||
|
FROM next_id
|
||||||
|
LEFT JOIN eps ON next_id.id_next = eps.id
|
||||||
|
WHERE eps.id IS NULL
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
<!--% query_latest_episodes = '
|
||||||
|
WITH comment_tallies AS (
|
||||||
|
SELECT
|
||||||
|
eps_id,
|
||||||
|
COUNT(eps_id) AS eps_tally
|
||||||
|
FROM comments
|
||||||
|
GROUP BY eps_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
eps.date, eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid,
|
||||||
|
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
||||||
|
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
ORDER BY eps.id DESC
|
||||||
|
LIMIT 10
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
<!--% query_last_5_weeks_episodes = '
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
|
||||||
|
eps.date, eps.license, eps.title, eps.summary,
|
||||||
|
eps.duration, eps.notes, eps.tags,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email, hosts.local_image,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
ORDER BY eps.id DESC
|
||||||
|
LIMIT 30 OFFSET 10
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
|
62
templates/queries-index-sqlite.tpl.html
Normal file
62
templates/queries-index-sqlite.tpl.html
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
<!--% query_next_available_episode = '
|
||||||
|
WITH next_id AS (
|
||||||
|
SELECT id, id + 1 AS \'id_next\', date as \'last_date\'
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date > date(\'now\')
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
MIN(next_id.id_next) AS \'next_id\',
|
||||||
|
strftime(\'%Y\', MIN (last_date)) AS \'last_year\',
|
||||||
|
strftime(\'%d\', MIN (last_date)) AS \'last_day\',
|
||||||
|
strftime(\'%m\', MIN (last_date)) AS \'last_month\'
|
||||||
|
FROM next_id
|
||||||
|
LEFT JOIN eps ON next_id.id_next = eps.id
|
||||||
|
WHERE eps.id IS NULL
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
<!--% query_latest_episodes = '
|
||||||
|
WITH comment_tallies AS (
|
||||||
|
SELECT
|
||||||
|
eps_id,
|
||||||
|
COUNT(eps_id) AS eps_tally
|
||||||
|
FROM comments
|
||||||
|
GROUP BY eps_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
eps.date, eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid,
|
||||||
|
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
||||||
|
WHERE eps.date < date(\'now\', \'+1 days\')
|
||||||
|
ORDER BY eps.id + 0 DESC
|
||||||
|
LIMIT 10
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
<!--% query_last_5_weeks_episodes = '
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
|
||||||
|
eps.date, eps.license, eps.title, eps.summary,
|
||||||
|
eps.duration, eps.notes, eps.tags,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email, hosts.local_image,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE eps.date < date(\'now\', \'+1 days\')
|
||||||
|
ORDER BY eps.id + 0 DESC
|
||||||
|
LIMIT 30 OFFSET 10
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
|
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
|
||||||
|
'
|
||||||
|
%-->
|
@@ -1,5 +1,5 @@
|
|||||||
<!--% PROCESS 'shared-item.tpl.xml' %-->
|
<!--% PROCESS 'shared-item.tpl.xml' %-->
|
||||||
<!--% PROCESS 'rss-query-hpr.tpl.xml' %-->
|
<!--% PROCESS "rss-query-hpr-${constants.database}.tpl.xml" %-->
|
||||||
<!--% FOREACH episode IN feed_result %-->
|
<!--% FOREACH episode IN feed_result %-->
|
||||||
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
|
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--% PROCESS 'shared-item.tpl.xml' %-->
|
<!--% PROCESS 'shared-item.tpl.xml' %-->
|
||||||
<!--% PROCESS 'rss-query-hpr_total.tpl.xml' %-->
|
<!--% PROCESS "rss-query-hpr_total-${constants.database}.tpl.xml" %-->
|
||||||
<!--% FOREACH episode IN feed_result %-->
|
<!--% FOREACH episode IN feed_result %-->
|
||||||
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
|
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
23
templates/rss-query-hpr-sqlite.tpl.xml
Normal file
23
templates/rss-query-hpr-sqlite.tpl.xml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
|
<!--% query_hpr_feed = DBI.prepare('
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
strftime(\'%H:%M:%S %d:%m:%Y\', date(eps.date)) AS date,
|
||||||
|
eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE eps.date < date(\'now\', \'+1 days\')
|
||||||
|
ORDER BY eps.date DESC
|
||||||
|
LIMIT 10
|
||||||
|
')
|
||||||
|
%-->
|
||||||
|
<!--% feed_result = query_hpr_feed.execute() %-->
|
||||||
|
|
22
templates/rss-query-hpr_total-sqlite.tpl.xml
Normal file
22
templates/rss-query-hpr_total-sqlite.tpl.xml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
|
<!--% query_hpr_feed = DBI.prepare('
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
strftime(\'%H:%M:%S %d:%m:%Y\', date(eps.date)) AS date,
|
||||||
|
eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
WHERE eps.date < date(\'now\', \'+1 days\')
|
||||||
|
ORDER BY eps.date DESC
|
||||||
|
')
|
||||||
|
%-->
|
||||||
|
<!--% feed_result = query_hpr_feed.execute() %-->
|
||||||
|
|
18
templates/shared-call_for_shows.tpl.html
Normal file
18
templates/shared-call_for_shows.tpl.html
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
|
<!--% PROCESS "queries-call_for_shows-${constants.database}.tpl.html" %-->
|
||||||
|
<!--% MACRO display_call_for_shows BLOCK %-->
|
||||||
|
<!--% result_call_for_shows = DBI.prepare(query_call_for_shows)
|
||||||
|
%-->
|
||||||
|
<!--% results_call_for_shows = result_call_for_shows.execute().get_all() %-->
|
||||||
|
<!--% IF results_call_for_shows.0.request_for_shows == 1 %-->
|
||||||
|
<!--% USE date %-->
|
||||||
|
<article>
|
||||||
|
<header>
|
||||||
|
<h3>Call for shows</h3>
|
||||||
|
</header>
|
||||||
|
<p><strong><em>We are running very low on shows</em></strong> at the moment. Have a look at the <a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">hosts</a> page and if you don't see "<!--% date.format(date.now, '%Y') %-->-??-??" next to your name, or if your name is not listed, you might consider sending us in something.</p>
|
||||||
|
<!-- <img src="/images/hprstats.png" alt="hpr queue showing an graph showing how few shows we have" /> -->
|
||||||
|
<p>There are no files to process on the FTP server.</p>
|
||||||
|
</article>
|
||||||
|
<!--% END %-->
|
||||||
|
<!--% END %-->
|
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 %-->
|
||||||
|
|
@@ -4,7 +4,7 @@
|
|||||||
<!--% ELSE %-->
|
<!--% ELSE %-->
|
||||||
<!--% zero_pad_format = "%04s" %-->
|
<!--% zero_pad_format = "%04s" %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
<!--% USE String(word) %-->
|
<!--% USE String(word) %-->
|
||||||
<!--% String.format(zero_pad_format) %-->
|
<!--% String.format(zero_pad_format) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
|
||||||
@@ -59,8 +59,14 @@
|
|||||||
<!--% media_folder = "local/" %-->
|
<!--% media_folder = "local/" %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
<!--% IF media_baseurl %-->
|
<!--% IF media_baseurl %-->
|
||||||
|
<!--% transcription_types = "txt srt vtt" %-->
|
||||||
|
<!--% 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/" %-->
|
||||||
|
<!--% END %-->
|
||||||
<!--% media_folder = "" %-->
|
<!--% media_folder = "" %-->
|
||||||
<!--% media_baseurl = media_baseurl.replace('\$eps_id', zero_pad_left(episode_id)) %-->
|
<!--% media_baseurl = media_baseurl.replace('\$eps_id', zero_pad_left(episode_id)) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
<!--% media_basepath(baseurl, media_baseurl) %--><!--% media_folder %--><!--% episode_type %--><!--% zero_pad_left(episode_id, padding) %-->.<!--% media_type %-->
|
<!--% media_basepath(baseurl, media_baseurl) %--><!--% media_folder %--><!--% episode_type %--><!--% zero_pad_left(episode_id, padding) %-->.<!--% media_type %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
Reference in New Issue
Block a user