1 Commits

Author SHA1 Message Date
Lee Hanken
d972b50582 replace lane button background image with linear gradient 2025-10-23 10:31:22 +01:00
32 changed files with 95 additions and 433 deletions

View File

@@ -1 +0,0 @@
ALTER TABLE twat_eps RENAME TO twt_eps;

View File

@@ -47,15 +47,12 @@ https://creativecommons.org/publicdomain/
--link-secondary: #a8f8ff;
--link-secondary-hover: #f9e9c2;
--link-title-color: #00003e;
--link-navigation-hover: #030303;
--primary-content-line-height: 1.45;
--font-family-hpr: Verdana, Arial, Helvetica, sans-serif; /* 1em/1.5 OpenDyslexic, */;
--font-size-default: clamp(1rem, 15px + 0.3vw, 1.07rem);
--font-size-emphasis: clamp(1.1rem, 15px + 0.3vw, 1.25rem);
--episode-nav-padding: clamp(0.15em, 15px + 0.3vw, 0.4em);
--show-notes-pre-background: #f9e9c2;
--logo-font-family: var(--font-family-hpr);
--logo-font-weight: bolder;
--logo-font-size: 7.5rem;
@@ -352,7 +349,7 @@ article > p,
2px 4px 4px var(--shadow-cards);
transition: 0.3s;
flex: 1 0 100%;
overflow: auto;
overflow-x: scroll;
padding-bottom: 1rem;
}
.lane > article:hover,
@@ -403,9 +400,6 @@ article > p,
font-size: var(--default-header-4-font-size);
margin-left: 22px;
}
.lane.stack > article > footer {
margin-bottom: 1rem;
}
a.lane-button {
display: flex;
flex-direction: column;
@@ -417,8 +411,7 @@ a.lane-button {
border-style: solid;
border-radius: 10px;
text-align: center;
background-image: url("../images/lane-button-background.png");
background: linear-gradient(to bottom, #a9d9db, #d6f0f1);
}
a.lane-button p {
font-family: var(--lane-button-font-family);
@@ -641,7 +634,7 @@ fieldset > table td input[type="radio"] {
margin-bottom: 0.5rem;
}
.no-css {
display: none !important;
display: none;
}
#tags .date {
margin:0;
@@ -675,20 +668,12 @@ fieldset > table td input[type="radio"] {
background: var(--background-secondary);
color: var(--background-primary);
}
#hosts td:nth-child(2) {
display: inline-flex;
}
#hosts td:nth-child(-n+2) a {
color: var(--link-secondary);
flex: 1;
}
#hosts td:nth-child(-n+2) a:hover {
color: var(--link-secondary-hover);
}
#hosts td:nth-child(-n+2) a strong {
display: inline-block;
line-height: 1.5rem;
}
#hosts td:nth-child(2) {
padding: 0.25rem 0 0 8px;
width: calc(100% - 90px);
@@ -708,15 +693,9 @@ fieldset > table td input[type="radio"] {
border-radius: 0.25rem;
}
#host {
justify-content: center;
align-items: center;
gap: 0.5rem;
}
#host_id {
text-align: center;
}
#host_id > h2 {
margin-top: 0;
justify-content: flex-start;
align-items: end;
gap: 0;
}
#host_id img {
border-radius: 0.25rem;
@@ -736,13 +715,10 @@ fieldset > table td input[type="radio"] {
padding: 0;
}
.series-description {
margin: 0 0 1rem 0;
margin: 0;
padding: 0;
font-style: italic;
}
.series-desciption > *:last-child {
margin-bottom: 0;
}
.sr-only {
position: absolute;
width: 1px;
@@ -753,70 +729,6 @@ fieldset > table td input[type="radio"] {
clip: rect(0, 0, 0, 0);
border: 0;
}
#show_notes {
max-width: 98vw;
}
#show_notes pre
{
overflow: auto;
}
#show_notes code {
display: inline-block;
background-color: var(--show-notes-pre-background);
border: 1px solid #ddd;
padding: 0.1em 0;
}
nav.episodes {
color: var(--background-primary);
font-size: 0.9em;
display: flex;
flex-direction: row;
justify-content: space-around;
max-width: 100vw;
}
nav.episodes span {
color: var(--text-primary);
display: inline-block;
text-align: center;
border: solid thin var(--text-primary);
}
nav.episodes span:nth-child(-n+2),
nav.episodes span:nth-child(-n+2) a {
border-top-left-radius: 2rem;
border-bottom-left-radius: 2rem;
}
nav.episodes span:nth-child(n+3),
nav.episodes span:nth-child(n+3) a {
border-top-right-radius: 2rem;
border-bottom-right-radius: 2rem;
}
nav.episodes span.no-link,
nav.episodes span a {
padding: 0.3em var(--episode-nav-padding) 0.1em var(--episode-nav-padding);
display: inline-block;
min-width: 4.4em;
min-height: 1.5em;
}
nav.episodes span a:hover {
background-color: var(--link-primary-hover);
color: var(--link-secondary-hover);
}
nav.episodes svg {
margin: 0 0.2rem;
height: 0.85em;
max-width: 13px;
vertical-align: middle;
}
nav.episodes span a svg #arrow,
nav.episodes span a svg #bar {
stroke: var(--link-primary);
fill: var(--link-primary);
}
nav.episodes span a:hover svg #arrow,
nav.episodes span a:hover svg #bar {
stroke: var(--link-secondary-hover);
fill: var(--link-secondary-hover);
}
@media (min-width: 600px) {
body > header .bounding-box {
justify-content: space-between;
@@ -911,10 +823,7 @@ nav.episodes span a:hover svg #bar {
max-width: 45%;
}
#host {
gap: 2rem;
}
nav.episodes {
display: inline-block;
gap: 1rem;
}
}
@media (min-width: 900px) {
@@ -931,54 +840,3 @@ nav.episodes span a:hover svg #bar {
max-width: 30%;
}
}
@media (prefers-color-scheme: dark) {
:root {
--link-primary: #bbdfe7;
--link-header-hover: #b54c08; /* original --link-primary-hover */;
--link-primary-hover: var(--link-secondary-hover);
--background-primary: #4d4d4d; /* HPR Grey */
--text-primary: #dfdfdf /*#fffff7#fafafa#fbfbee #dfdfdf */;
--banner-text-primary: #b6b6b6;
--shadow-secondary-color: hsl(0, 0%, 40%);
--input-border-primary: var(--shadow-secondary-color);
--lane-button-color: #d5e6ea;
--show-notes-pre-background: #b54c08;
}
body > header {
background-image: url("/images/main-header-background-dark.png");
background-color: #22545a;
}
img {
filter: brightness(0.70);
}
a.lane-button {
background-image: url("/images/lane-button-background-dark.png");
color: var(--lane-button-color);
}
a.lane-button img {
filter: none;
}
.lane > article > header {
color: var(--text-secondary);
}
#title a:hover {
color: var(--link-header-hover);
}
#hosts td:nth-child(-n+2) {
color: var(--text-primary);
}
nav.episodes span a:hover {
background-color: var(--link-primary-hover);
color: var(--link-navigation-hover);
}
nav.episodes span svg #arrow,
nav.episodes span svg #bar {
stroke: var(--text-primary);
fill: var(--text-primary);
}
nav.episodes span a:hover svg #arrow,
nav.episodes span a:hover svg #bar {
stroke: var(--link-navigation-hover);
fill: var(--link-navigation-hover);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
viewBox="0 0 12 12"
version="1.1"
id="arrow_first"
width="12"
height="12"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<path
id="arrow"
style="stroke-width:0.584448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 9.9303359,11.572157 11.530286,10.119277 7.0035163,5.9964088 11.484768,1.9181465 9.8743209,0.45252151 3.7931149,5.986851 Z" />
<rect
style="stroke-width:0.524;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);paint-order:normal"
id="bar"
width="2.2"
height="11.263"
x="0.5"
y="0.36860976"
rx="0"
ry="0.0015425405" />
</svg>

Before

Width:  |  Height:  |  Size: 877 B

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
viewBox="0 0 12 12"
version="1.1"
id="arrow_last"
width="12"
height="12"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<path
id="arrow"
style="stroke-width:0.584448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 2.0731448,11.604466 0.47319466,10.151586 4.9999643,6.0287178 0.51871266,1.9504555 2.1291598,0.48483049 8.2103658,6.01916 Z" />
<rect
style="stroke-width:0.524;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#Arrow1Lstart);paint-order:normal"
id="bar"
width="2.2"
height="11.263"
x="-11.503481"
y="0.40091875"
rx="0"
ry="0.0015425405"
transform="scale(-1,1)" />
</svg>

Before

Width:  |  Height:  |  Size: 911 B

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
viewBox="0 0 12 12"
version="1.1"
id="arrow_next"
width="12"
height="12"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<path
id="arrow"
style="stroke-width:0.584448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 2.0731448,11.604466 0.47319466,10.151586 4.9999643,6.0287178 0.51871266,1.9504555 2.1291598,0.48483049 8.2103658,6.01916 Z" />
</svg>

Before

Width:  |  Height:  |  Size: 575 B

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
viewBox="0 0 12 12"
version="1.1"
id="arrow_previous"
width="12"
height="12"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<path
id="arrow"
style="stroke-width:0.584448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="M 9.9303359,11.572157 11.530286,10.119277 7.0035163,5.9964088 11.484768,1.9181465 9.8743209,0.45252151 3.7931149,5.986851 Z" />
</svg>

Before

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 611 KiB

View File

@@ -10,7 +10,7 @@ driver: dbi:SQLite:hpr.db
# Configure the location of the templates and the generated HTML
[app_paths]
templates_path: ./templates:./public_html/images/icons
templates_path: ./templates
output_path: ./public_html
# Configure the root template page which pulls in the navigation and
@@ -108,9 +108,9 @@ content: content-sitemap.tpl.html
navigation: navigation-main.tpl.html
content: content-tags.tpl.html
[twt_episode]
[twat_episode]
navigation: navigation-get-shows.tpl.html
content: content-twt_episode.tpl.html
content: content-twat_episode.tpl.html
multipage: true
filename: eps/twt[id]/index.html
@@ -171,15 +171,3 @@ media_file_extension: spx
[comments]
root_template: rss-comments.tpl.xml
filename: comments.rss
[correspondent_m3u]
root_template: m3u.tpl.m3u8
content: m3u-correspondent.tpl.m3u8
filename: correspondents/[id]/playlist.m3u8
multipage: true
[series_episodes_m3u]
root_template: m3u.tpl.m3u8
content: m3u-series_episodes.tpl.m3u8
filename: series/[id].m3u8
multipage: true

View File

@@ -43,7 +43,7 @@ You can copy and redistribute the shows for free provided you adhere to the
<p>Hacker Public Radio (HPR) is an Internet Radio show (podcast) that releases shows every weekday Monday through Friday.
HPR has a long lineage going back to <a href="https://web.archive.org/web/20230323053905/http://www.oldskoolphreak.com/" >Radio FreeK America</a>,
<a href="https://web.archive.org/web/20220123174618/https://www.binrev.com/forums/" >Binary Revolution Radio</a> &amp; <a href="https://web.archive.org/web/20150208172826/http://www.nomicon.info/" >Infonomicon</a>,
and it is a rename of <a href="<!--% absolute_url(baseurl,'eps/index.html#twt_episodes') %-->" >Today With a Techie</a> radio.
and it is a rename of <a href="<!--% absolute_url(baseurl,'twat.html') %-->" >Today With a Techie</a> radio.
Please listen to StankDawg&#39;s &quot;<a href="<!--% media_path(1, 'hpr', 'mp3', baseurl, media_baseurl) %-->" >
Introduction to HPR</a>&quot; for more information.</p>

View File

@@ -3,17 +3,46 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% PROCESS "queries-correspondent.tpl.html" %-->
<!--% USE DBI(constants.driver) %-->
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows) %-->
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows)
%-->
<!--% results_hpr_show_count = DBI.prepare(query_hpr_show_count) %-->
<!--% hpr_result_status = results_hpr_show_count.execute(id); %-->
<!--% hpr_shows_to_count = results_hpr_show_count.execute(id); %-->
<!--% hpr_shows = results_hpr_shows.execute(id); %-->
<!--% hpr_show_count = results_hpr_show_count.fetchrow_array %-->
<!--% hpr_show_count = 0 %-->
<!--% FOREACH show IN hpr_shows_to_count %-->
<!--% hpr_show_count = hpr_show_count +1; %-->
<!--% END %-->
<!--% results_hpr_shows = DBI.prepare(query_twt_shows) %-->
<!--% results_twt_show_count = DBI.prepare(query_twt_show_count) %-->
<!--% twt_result_status = results_twt_show_count.execute(id); %-->
<!--% twt_shows = results_hpr_shows.execute(id); %-->
<!--% twt_show_count = results_twt_show_count.fetchrow_array %-->
<!--% query_twat_show_count = DBI.prepare('
SELECT id
FROM twat_eps AS eps
WHERE eps.hostid = ?
')
%-->
<!--% query_twat_shows = DBI.prepare('
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, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid
FROM twat_eps AS eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
WHERE hosts.hostid = ?
ORDER BY eps.id DESC
')
%-->
<!--% twat_shows_to_count = query_twat_show_count.execute(id); %-->
<!--% twat_shows = query_twat_shows.execute(id); %-->
<!--% twat_show_count = 0 %-->
<!--% FOREACH show IN twat_shows_to_count %-->
<!--% twat_show_count = twat_show_count +1; %-->
<!--% END %-->
<!--% hosts = DBI.tie('hosts', 'hostid') %-->
@@ -28,23 +57,22 @@
<div id="host_meta">
<p><label>email:</label> <u><!--% this_host.email %--></u></p>
<div><label>profile:</label> <!--% this_host.profile %--></div>
<p><label>episodes:</label> <strong><!--% hpr_show_count + twt_show_count %--></strong></p>
<p><a href="<!--% absolute_url(baseurl,'//correspondents') %-->/<!--% zero_pad_left(this_host.hostid) %-->/playlist.m3u8">Download the M3U playlist</a>.</p>
<p><label>episodes:</label> <strong><!--% hpr_show_count + twat_show_count %--></strong></p>
</div>
</div>
<div id="episodes" class="lane stack">
<div class="lane stack">
<!--% FOREACH hpr_show IN hpr_shows; %-->
<article>
<!--% show_summary(hpr_show, 'hide_host') %-->
<p class="listen-in"><!--% display_listen_in(hpr_show.id) %--></p>
</article>
<!--% END %-->
<!--% FOREACH twt_show IN twt_shows; %-->
<!--% FOREACH twat_show IN twat_shows; %-->
<article>
<!--% twt_show_summary(twt_show, 'hide_host') %-->
<p class="listen-in"><!--% display_listen_in(twt_show.id,"twt") %--></p>
<!--% twat_show_summary(twat_show, 'hide_host') %-->
<p class="listen-in"><!--% display_listen_in(twat_show.id,"twat") %--></p>
</article>
<!--% END %-->
</div>
<p><a href="<!--% absolute_url(baseurl) %-->../about.html#so_you_want_to_record_a_podcast">Become a Correspondent</a></p>
<p><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Become a Correspondent</a></p>

View File

@@ -1,7 +1,7 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% PROCESS 'shared-avatar.tpl.html' %-->
<h2 class="title">Correspondents</h2>
<p>For more information on how to become a Correspondent see our <a href="<!--% absolute_url(baseurl) %-->../about.html#so_you_want_to_record_a_podcast">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_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">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) %-->
<!--% host_cnt = 0 %-->
<table id="hosts" class="hosts lane stack">
@@ -18,17 +18,18 @@
from hosts as h
inner join (select hostid, max(date) as date from eps group by hostid) as e
on h.hostid = e.hostid
order by h.host COLLATE NOCASE asc'
order by h.host'
) %-->
<tr class="lane">
<td><!--% get_avatar(host.hostid, host.host, host_cnt > 8) %--></td>
<td><a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(host.hostid) %-->.html"><strong><!--% host.host %--></strong><br>
Host ID: <!--% host.hostid %--></a></td>
<td><strong><!--% host.host %--></strong><br>
Host ID: <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(host.hostid) %-->.html"><!--% host.hostid %--></a></td>
<td><!--% host.license %--></td>
<td><!--% host.date %--></td>
</tr><!--% host_cnt = host_cnt + 1 %-->
<!--% END %-->
</tbody>
</table>
<p><a href="<!--% absolute_url(baseurl) %-->../about.html#so_you_want_to_record_a_podcast">Become a Correspondent</a></p>
<p><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Become a Correspondent</a></p>

View File

@@ -26,7 +26,7 @@ Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pa
<h3><!--% show_series(episode.series, episode.seriesid, "Part of the series") %--></h3>
<p><em><!--% episode.series_description %--></em></p>
</header>
<div id="show_notes"><!--% episode.notes %--></div>
<div><!--% episode.notes %--></div>
<footer>
<p>
<!--% episode_navigation %-->
@@ -61,11 +61,11 @@ Subscribe to the comments <a href="<!--% absolute_path(baseurl) %-->comments.rss
<h2>Leave Comment</h2>
<p>
<strong>Note to Verbose Commenters</strong><br />
If you can't fit everything you want to say in the comment below then you really should <a href="<!--% absolute_url(baseurl) %-->../../about.html#so_you_want_to_record_a_podcast">record</a> a response show instead.
If you can't fit everything you want to say in the comment below then you really should <a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">record</a> a response show instead.
</p>
<p>
<strong>Note to Spammers</strong><br />
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to <a href="<!--% absolute_url(baseurl) %-->../../about.html#so_you_want_to_record_a_podcast">record</a> a show about yourself, or your industry, or any other topic we may find interesting. <em>We also check shows for spam :)</em>.
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to <a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">record</a> a show about yourself, or your industry, or any other topic we may find interesting. <em>We also check shows for spam :)</em>.
</p>
<form method="POST" action="<!--% hub_baseurl %-->comment_confirm.php">
<fieldset>

View File

@@ -20,7 +20,7 @@
<a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/"><img alt="Creative Commons License" border="0" src="https://creativecommons.org/images/public/somerights20.png" width="88" height="31" /></a><br>The following work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/">Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License</a>.</p>
<p>Today With a Techie Radio was brought to you by <a href="https://en.wikipedia.org/wiki/Infonomicon">The Infonomicon Computer Club</a></p>
<div class="lane stack">
<!--% FOREACH twt_episode IN DBI.query('
<!--% FOREACH twat_episode IN DBI.query('
SELECT
eps.id,
eps.explicit,
@@ -29,14 +29,14 @@
hosts.hostid,
hosts.host, hosts.email, hosts.local_image,
miniseries.name AS series, miniseries.id AS seriesid
FROM twt_eps as eps
FROM twat_eps as eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
ORDER BY eps.id DESC
')
%-->
<article>
<!--% twt_show_summary(twt_episode) %-->
<!--% twat_show_summary(twat_episode) %-->
</article>
<!--% END %-->
</div>

View File

@@ -1,19 +1 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<div class="lane stack">
<article>
<header>
<h2 class="title"><a href="/eps/hpr3246/index.html">The Fourteenth Annual 26 Hour New Year's Eve Show</a> </h2>
</header>
<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 Year's Eve 2025-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 Year" and talk about whatever they want.
We will leave the recording going until at least 2026-01-01 12:00 UTC (7:00 AM EST), and keep recording until the conversation stops.</p>
<p>
So please stop in. Say "Hi" and maybe join in the conversation with other HPR listeners and contributors. It's always a good time!!<br>
<a href="https://hackerpublicradio.org/eps/hpr3246/index.html">More Information…</a>
</p>
</article>
</div>

View File

@@ -3,6 +3,7 @@
<!--% 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.tpl.html" %-->
<!--% MACRO tidy_notes(all_lines) BLOCK %-->
<!--% lines = all_lines %-->
@@ -36,7 +37,6 @@
<!--% delta = date.calc.N_Delta_YMD(2005,9,19, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) %-->
<section id="welcome">
<p>Hacker Public Radio is a technology focused podcast that releases shows every weekday Monday to Friday. Our shows are produced by listeners like you and can be on any topic that is of interest to hackers, makers, hobbyists, etc. We are a welcoming community that offers positive feedback and encourages respectful debate.</p>
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
<div id="call_for_shows">
<!--% display_call_for_shows() %-->
</div>
@@ -97,14 +97,13 @@
<dl>
<!--% FOREACH latest_episodes IN DBI.query(query_latest_episodes)
%-->
<dt><a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(latest_episodes.id) %-->/index.html">hpr<!--% latest_episodes.id %--> (<!--% latest_episodes.date %-->) :: <!--% latest_episodes.title %--></a> by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(latest_episodes.hostid) %-->.html"><!--% latest_episodes.host %--></a></dt>
<dt><a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(latest_episodes.id) %-->/index.html">hpr<!--% latest_episodes.id %--> (<!--% latest_episodes.date %-->) :: <!--% latest_episodes.title %--></a> by <!--% latest_episodes.host %--></dt>
<dd>
<!--% latest_episodes.summary %-->
</dd>
<!--% host_cnt = host_cnt + 1 %-->
<!--% END %-->
</dl>
<p><a href="<!--% absolute_path(baseurl) %-->eps/index.html">More Episodes…</a></p>
</section>
<section id="latest_comments">
<header><h2>Latest Comments</h2></header>
@@ -139,6 +138,5 @@
<dd>on hpr<!--% item.eps_id %--> (<!--% item.episode_date %-->) "<!--% item.episode_title %-->" by <!--% item.host %--></dd>
<!--% END %-->
</dl>
<p><a href="<!--% absolute_path(baseurl) %-->comments_viewer.html">More Comments…</a></p>
</section>
</section>

View File

@@ -13,7 +13,6 @@
<li>Date of earliest show: <!--% series.earliest_show %--></li>
<li>Date of latest show: <!--% series.latest_show %--></li>
<li>Series RSS feeds: <a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=<!--% series.id %-->">ogg</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=<!--% series.id %-->">spx</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=<!--% series.id %-->">mp3</a></li>
<li><a href="<!--% absolute_url(baseurl,'//series') %-->/<!--% zero_pad_left(series.id) %-->.m3u8">Download the M3U playlist</a></li>
</ul>
<div class="series-description"><!--% series.description %--></div>
</article>

View File

@@ -13,7 +13,6 @@
<li>Date of earliest show: <!--% series.earliest_show %--></li>
<li>Date of latest show: <!--% series.latest_show %--></li>
<li>Series RSS feeds: <a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=<!--% series.id %-->&full=1&gomax=1">ogg</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=<!--% series.id %-->&full=1&gomax=1">spx</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=<!--% series.id %-->&full=1&gomax=1">mp3</a></li>
<li><a href="<!--% absolute_url(baseurl,'//series') %-->/<!--% zero_pad_left(series.id) %-->.m3u8">Download the M3U playlist</a></li>
</ul>
<p><em><!--% series.description %--></em></p>
<section id="series_episodes" class="lane stack">

View File

@@ -6,23 +6,23 @@
<!--% query_episodes = DBI.prepare('
WITH episode_maxmin AS (
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
FROM twt_eps AS eps
FROM twat_eps AS eps
),
episode_date AS (
SELECT eps.date
FROM twt_eps AS eps
FROM twat_eps AS eps
WHERE eps.id = ?
),
episode_previous AS (
SELECT MAX(id) AS \'previous\', ? AS \'id\'
FROM twt_eps AS eps
FROM twat_eps AS 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 twt_eps AS eps
FROM twat_eps AS eps
INNER JOIN episode_date
ON eps.date > episode_date.date
)
@@ -34,7 +34,7 @@
hosts.hostid, hosts.host,
miniseries.name AS \'series\', miniseries.id AS \'seriesid\',
miniseries.description AS \'series_description\'
FROM twt_eps AS eps
FROM twat_eps AS 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
@@ -55,8 +55,8 @@
<p><!--% show_avatar(episode.hostid, episode.host) %-->
Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(episode.hostid) %-->.html"><!--% episode.host %--></a> on <span><!--% day_and_date(episode.date) %--></span> is flagged as <span><!--% display_explicit(episode.explicit) %--></span> and is released under a <span><!--% episode.license %--> license</span>. <br>
<!--% display_tags(episode.tags) %--> <br>
<!--% listen_now(episode, "twt", baseurl, media_baseurl) %-->
<!--% display_listen_in(episode.id, "twt") %-->
<!--% listen_now(episode, "twat", baseurl, media_baseurl) %-->
<!--% display_listen_in(episode.id, "twat") %-->
</p>
<h3><!--% show_series(episode.series, episode.seriesid, "Part of the series") %--></h3>
<p><em><!--% episode.series_description %--></em></p>

View File

@@ -1,7 +0,0 @@
<!--% USE DBI(constants.driver) %-->
<!--% FOREACH host IN DBI.query(
'select h.hostid from hosts as h'
) %-->
,<!--% host.hostid %-->
<!--% END %-->

View File

@@ -1,7 +0,0 @@
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
<!--% FOREACH series IN DBI.query(
'select s.id from miniseries as s'
) %-->
,<!--% series.id %-->
<!--% END %-->

View File

@@ -1,6 +1,6 @@
<!--% USE DBI(constants.driver) %-->
<!--% FOREACH episode IN DBI.query(
'select eps.id from twt_eps AS eps'
'select eps.id from twat_eps AS eps'
) %-->
,<!--% episode.id %-->
<!--% END %-->

View File

@@ -1,24 +0,0 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% PROCESS 'queries-correspondent.tpl.html' %-->
<!--% USE DBI(constants.driver) %-->
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows) %-->
<!--% hpr_shows = results_hpr_shows.execute(id); %-->
<!--% FOREACH hpr_show IN hpr_shows; %-->
#EXTINF: <!--% hpr_show.duration %-->,<!--% hpr_show.host %--> - <!--% hpr_show.title %-->
<!--% media_path(hpr_show.id, 'hpr', 'mp3', baseurl, media_baseurl) %-->
<!--% END %-->
<!--% results_hpr_shows = DBI.prepare(query_twt_shows) %-->
<!--% twt_result_status = results_twt_show_count.execute(id); %-->
<!--% twt_shows = results_hpr_shows.execute(id); %-->
<!--% FOREACH hpr_show IN twt_shows; %-->
#EXTINF: <!--% hpr_show.duration %-->,<!--% hpr_show.host %--> - <!--% hpr_show.title %-->
<!--% media_path(hpr_show.id, 'twt', 'mp3', baseurl, media_baseurl) %-->
<!--% END %-->

View File

@@ -1,13 +0,0 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% PROCESS 'queries-series_episodes.tpl.html' %-->
<!--% USE DBI(constants.driver) %-->
<!--% results_hpr_shows = DBI.prepare(query_shows_sql) %-->
<!--% hpr_shows = results_hpr_shows.execute(id); %-->
<!--% FOREACH hpr_show IN hpr_shows; %-->
#EXTINF: <!--% hpr_show.duration %-->,<!--% hpr_show.host %--> - <!--% hpr_show.title %-->
<!--% media_path(hpr_show.id, 'hpr', 'mp3', baseurl, media_baseurl) %-->
<!--% END %-->

View File

@@ -1,2 +0,0 @@
#EXTM3U
<!--% INCLUDE $content %-->

View File

@@ -1,12 +1,5 @@
<!--% query_hpr_shows = 'WITH
comment_tallies AS (
SELECT
eps_id,
COUNT(eps_id) AS eps_tally
FROM comments
GROUP BY eps_id
)
SELECT
<!--% query_hpr_shows = '
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.duration,
@@ -15,44 +8,17 @@
hosts.local_image,
hosts.hostid,
hosts.host, hosts.email, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid,
COALESCE(comment_tallies.eps_tally,0) AS commentsTally
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
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
WHERE hosts.hostid = ? AND eps.date < date(\'now\', \'+1 days\')
ORDER BY eps.id + 0 DESC
'
%-->
<!--% query_hpr_show_count = '
SELECT COUNT(id) as Tally
SELECT id
FROM eps
WHERE eps.hostid = ? AND eps.date < date(\'now\', \'+1 days\')
'
%-->
<!--% query_twt_show_count = '
SELECT COUNT(id) as Tally
FROM twt_eps AS eps
WHERE eps.hostid = ?
'
%-->
<!--% query_twt_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, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid
FROM twt_eps AS eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
WHERE hosts.hostid = ?
ORDER BY eps.id DESC
'
%-->

View File

@@ -1,24 +1,14 @@
<!--% query_episodes = 'WITH
comment_tallies AS (
SELECT
eps_id,
COUNT(eps_id) AS eps_tally
FROM comments
GROUP BY eps_id
)
SELECT
<!--% 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,
COALESCE(comment_tallies.eps_tally,0) AS commentsTally
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
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
WHERE eps.date <= date(\'now\')
ORDER BY eps.id + 0 DESC'
%-->

View File

@@ -14,24 +14,14 @@
WHERE miniseries.id = ?
ORDER BY name'
%-->
<!--% query_shows_sql = 'WITH
comment_tallies AS (
SELECT
eps_id,
COUNT(eps_id) AS eps_tally
FROM comments
GROUP BY eps_id
)
SELECT
<!--% query_shows_sql = 'SELECT
id, date, title,
duration, summary, notes,
explicit, eps.license, tags,
hosts.host, hosts.hostid,
COALESCE(comment_tallies.eps_tally,0) AS commentsTally
hosts.host, hosts.hostid
FROM eps
INNER JOIN hosts
ON eps.hostid = hosts.hostid
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
WHERE series = ? AND eps.date < date(\'now\', \'+1 days\')
ORDER BY eps.id DESC
'

View File

@@ -1 +1 @@
<!--% query_tags = 'SELECT id, tags FROM eps WHERE eps.date <= date(\'now\')' %-->
<!--% query_tags = 'SELECT id, tags FROM eps' %-->

View File

@@ -41,7 +41,7 @@ or
<span><label>Flag:</label> <!--% display_explicit(show.explicit) %-->.</span>
<span><!--% show_series(show.series, show.seriesid) %--></span> <br>
<!--% IF hide_tags == "" %--><!--% display_tags(show.tags) %--><!--% END %-->
<!--% IF show.commentsTally || show.commentsTally == 0 %-->
<!--% IF show.comentsTally || show.commentsTally == 0 %-->
<span><label>Comments:</label> <!--% display_comments_tally(show.id, show.commentsTally) %--></span>
<!--% END %-->
<!--% END %-->
@@ -56,7 +56,7 @@ or
<p class="summary"><!--% show.summary %--></p>
<!--% END %-->
<!--% MACRO twt_show_summary(show, hide_host) BLOCK %-->
<!--% MACRO twat_show_summary(show, hide_host) BLOCK %-->
<h3 class="title"><a href="<!--% absolute_path(baseurl) %-->eps/twt<!--% zero_pad_left(show.id) %-->/index.html">Today with a Techie Ep.<!--% show.id %--> :: <!--% show.title %--></a> <!--% IF hide_host == "" %-->
hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(show.hostid) %-->.html"><!--% show.host %--></a>

View File

@@ -93,7 +93,7 @@
<!--% END %-->
<!--% MACRO media_path(episode_id, episode_type, media_type, baseurl, media_baseurl) BLOCK %-->
<!--% IF episode_type == "twt" %-->
<!--% IF episode_type == "twat" %-->
<!--% episode_type = "twt" %-->
<!--% padding = 3 %-->
<!--% media_folder = "eps/"; padding = 3 %-->
@@ -117,20 +117,16 @@
<!--% IF folder %-->
<!--% folder = folder %--><!--% ELSE %--><!--% folder = "hpr" %-->
<!--% END %-->
<!--% arrow_first = "arrow-first.svg" %-->
<!--% arrow_prev = "arrow-previous.svg" %-->
<!--% arrow_next = "arrow-next.svg" %-->
<!--% arrow_last = "arrow-last.svg" %-->
<nav class="episodes" aria-description="Navigation to other episodes"><span><a href="<!--% absolute_path(baseurl) %-->eps/<!--% folder %--><!--% zero_pad_left(links.earliest) %-->/index.html" rel="first" aria-label="first episode"><!--% INSERT $arrow_first %--><span class="no-css">&lt;&lt; </span>First</a></span>,
<small><a href="<!--% absolute_path(baseurl) %-->eps/<!--% folder %--><!--% zero_pad_left(links.earliest) %-->/index.html" rel="first">&lt;&lt; First</a>,
<!--% IF links.previous %-->
<span><a href="<!--% absolute_path(baseurl) %-->eps/<!--% folder %--><!--% zero_pad_left(links.previous) %-->/index.html" rel="previous" aria-label="previous episode"><!--% INSERT $arrow_prev %--><span class="no-css">&lt; </span>Previous</a></span>,
<a href="<!--% absolute_path(baseurl) %-->eps/<!--% folder %--><!--% zero_pad_left(links.previous) %-->/index.html" rel="previous">&lt; Previous</a>,
<!--% ELSE %-->
<span class="no-link"><!--% INSERT $arrow_prev %--><span class="no-css">&lt; </span>Previous</span>,
<span>&lt;</span> Previous,
<!--% END %-->
<!--% IF links.next %-->
<span><a href="<!--% absolute_path(baseurl) %-->eps/<!--% folder %--><!--% zero_pad_left(links.next) %-->/index.html" rel="next" aria-label="next episode">Next<span class="no-css"> &gt;</span><!--% INSERT $arrow_next %--></a></span>,
<a href="<!--% absolute_path(baseurl) %-->eps/<!--% folder %--><!--% zero_pad_left(links.next) %-->/index.html" rel="next">Next &gt;</a>,
<!--% ELSE %-->
<span class="no-link">Next<span class="no-css"> &gt;</span><!--% INSERT $arrow_next %--></span>,
Next <span>&gt;</span>
<!--% END %-->
<span><a href="<!--% absolute_path(baseurl) %-->eps/<!--% folder %--><!--% zero_pad_left(links.latest) %-->/index.html" rel="last" aria-label="latest episode">Latest<span class="no-css"> &gt;&gt;</span><!--% INSERT $arrow_last %--></a></span></nav>
<a href="<!--% absolute_path(baseurl) %-->eps/<!--% folder %--><!--% zero_pad_left(links.latest) %-->/index.html" rel="last">Latest &gt;&gt;</a></small>
<!--% END %-->