2022-07-31 22:25:15 -04:00
<!-- % PROCESS 'shared - avatar.tpl.html' % -->
2022-08-01 20:19:44 -04:00
<!-- % PROCESS 'shared - utils.tpl.html' % -->
2022-09-18 16:23:35 -04:00
<!-- % PROCESS 'shared - listen - now.tpl.html' % -->
2023-02-24 18:58:56 -05:00
<!-- % PROCESS 'shared - show - transcript.tpl.html' % -->
2022-11-10 22:14:55 -05:00
<!-- % PROCESS 'shared - call_for_shows.tpl.html' % -->
2022-10-16 18:56:13 -04:00
<!-- % INCLUDE 'content - index - announcement.tpl.html' % -->
2025-04-03 07:22:35 +01:00
<!-- % PROCESS "queries - index.tpl.html" % -->
2023-03-19 22:51:21 +11:00
<!-- % MACRO tidy_notes(all_lines) BLOCK % -->
<!-- % lines = all_lines % -->
<!-- % after_html = all_lines % -->
<!-- % img_re = '(?six)^(.*?)\<img ([^\>]+\>)(.+)$' % -->
<!-- % lazy_re = '(?i)loading="lazy"' % -->
<!-- % WHILE (matches = lines.match(img_re)) % -->
2023-10-29 17:28:04 +00:00
<!-- % img_tag = matches.1 % -->
<!-- % after_html = matches.2 % -->
<!-- % matches.0 % -->
<!-- % IF (img_tag.search(lazy_re)) % -->
2023-03-19 22:51:21 +11:00
< img < ! -- % img_tag % -- >
2023-10-29 17:28:04 +00:00
<!-- % ELSE % -->
2023-03-19 22:51:21 +11:00
< img loading = "lazy" < ! -- % img_tag % -- >
2023-10-29 17:28:04 +00:00
<!-- % END % -->
<!-- % lines = after_html % -->
2023-03-19 22:51:21 +11:00
<!-- % END % -->
<!-- % after_html % -->
<!-- % END % -->
2022-09-05 20:26:12 -04:00
<!-- % days_till_next_episode = 0 % -->
2025-04-03 07:22:35 +01:00
<!-- % USE DBI(constants.driver) % -->
2022-09-05 20:26:12 -04:00
<!-- % USE date % -->
<!-- % calc = date.calc % -->
2023-11-17 18:23:22 +00:00
<!-- % episodes = DBI.query(query_next_available_episode).get_all() % -->
<!-- % last_date = episodes.0.date.split(' - ') % -->
2023-10-29 17:28:04 +00:00
<!-- % offset = (calc.Day_of_Week(last_date.0,last_date.1,last_date.2) == 5 ? 3 : 1) % -->
<!-- % slot_date = calc.Add_Delta_Days(last_date.0,last_date.1,last_date.2,offset) % -->
<!-- % now = calc.Today() % -->
<!-- % days_till_next_episode = calc.Delta_Days(now.0,now.1,now.2,slot_date.0,slot_date.1,slot_date.2) % -->
2022-07-18 18:25:25 -04:00
<!-- % delta = date.calc.N_Delta_YMD(2005,9,19, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) % -->
2025-07-15 21:06:33 -04:00
< section id = "welcome" >
< header > Welcome< / header >
< p > Hacker Public Radio is a podcast that releases shows every weekday Monday to Friday. The shows are contributed by the public and can be on any topic that is of interest to hackers, makers, hobbyists, etc.< / p >
< div id = "call_for_shows" >
<!-- % display_call_for_shows() % -->
< / div >
< / section >
< section id = "podcast_lane" >
< header > Podcast< / header >
< div class = "lane" >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->about.html#recording_a_podcast" >
2025-07-17 16:58:29 -04:00
< img src = "<!--% absolute_path(baseurl) %-->" alt = "" >
2025-07-15 21:06:33 -04:00
Record
< / a >
< a class = "lane-button" href = "https://hub.hackerpublicradio.org/calendar.php" >
2025-07-17 16:58:29 -04:00
< img src = "" alt = "" >
2025-07-15 21:06:33 -04:00
Schedule
< / a >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->syndication.html" >
2025-07-17 16:58:29 -04:00
< img src = "<!--% absolute_path(baseurl) %-->" alt = "" >
2025-07-15 21:06:33 -04:00
Subscribe
< / a >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->eps/index.html" >
2025-07-17 16:58:29 -04:00
< img src = "" alt = "" >
2025-07-15 21:06:33 -04:00
Listen
< / a >
< / div >
< / section >
< section id = "project_lane" >
< header > Project< / header >
< div class = "lane" >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->correspondents/index.html" >
2025-07-17 16:58:29 -04:00
< img src = "<!--% absolute_path(baseurl) %-->" alt = "" >
2025-07-15 21:06:33 -04:00
Host
< / a >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->series/index.html" >
2025-07-17 16:58:29 -04:00
< img src = "" alt = "" >
2025-07-15 21:06:33 -04:00
Series
< / a >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->about.html" >
2025-07-17 16:58:29 -04:00
< img src = "<!--% absolute_path(baseurl) %-->" alt = "" >
2025-07-15 21:06:33 -04:00
About
< / a >
< / div >
< / section >
2025-07-16 20:48:51 -04:00
< section id = "latest_lane" class = "lane" >
2022-07-31 23:09:00 -04:00
<!-- % PROCESS 'shared - episode - summary.tpl.html' % -->
2025-07-15 21:45:31 -04:00
< section id = "latest_shows" >
< header > Latest Shows< / header >
2023-03-05 02:07:03 +11:00
<!-- % host_cnt = 0 % -->
2025-07-16 10:42:05 -04:00
< ul >
2022-11-27 13:54:14 -05:00
<!-- % FOREACH latest_episodes IN DBI.query(query_latest_episodes)
2022-07-02 17:10:27 -04:00
%-->
2025-07-16 10:42:05 -04:00
< li > < a href = "<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(latest_episodes.id) %-->/index.html" > hpr<!-- % latest_episodes.id % --> :: <!-- % latest_episodes.title % --> < / a > < / li >
2023-03-05 02:07:03 +11:00
<!-- % host_cnt = host_cnt + 1 % -->
2022-07-01 22:07:06 -04:00
<!-- % END % -->
2025-07-16 10:42:05 -04:00
< / ul >
< / section >
< section id = "latest_comments" >
< header > Latest Comments< / header >
< ul >
<!-- % FOREACH item IN DBI.query('
WITH episode_comment_rank AS (
SELECT
comments.eps_id
, comments.id as comment_id
, comments.comment_author_name
, comments.comment_timestamp
, comments.comment_title
, RANK() OVER (PARTITION BY eps_id ORDER BY id ) AS comment_number
FROM comments
)
SELECT
episode_comment_rank.*
, hosts.host
, eps.title AS episode_title
, eps.date AS episode_date
FROM episode_comment_rank
INNER JOIN eps
ON episode_comment_rank.eps_id = eps.id
INNER JOIN hosts
ON eps.hostid = hosts.hostid
ORDER BY episode_comment_rank.comment_timestamp DESC
LIMIT 10;
')
2022-07-03 22:47:59 -04:00
%-->
2025-07-16 10:42:05 -04:00
< li > hpr<!-- % item.eps_id % --> (<!-- % item.episode_date % --> ) "<!-- % item.episode_title % --> " by <!-- % item.host % -->
< ul >
< li > < a href = "<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html#comment_<!--% item.comment_id%-->" > Comment <!-- % item.comment_number % --> : <!-- % item.comment_author_name % --> on <!-- % item.comment_timestamp % --> : "<!-- % item.comment_title % --> "< / a >
< / li >
< / ul >
< / li >
2022-07-03 22:47:59 -04:00
<!-- % END % -->
2025-07-16 10:42:05 -04:00
< / ul >
2025-07-15 21:06:33 -04:00
< / section >