Archived
4
2

40 Commits

Author SHA1 Message Date
Roan Horning
082ea4069d Merge pull request '[I31] Fix URL to individual series page on series index page' (#32) from I31_Fix-URL into main
Reviewed-on: #32
2022-08-26 00:17:33 +00:00
dfbb4a24db Add missing MACRO absolute_path to link path 2022-08-25 20:10:21 -04:00
4e1d525e6e Merge branch 'main' of repo.anhonesthost.net:rho_n/hpr_generator 2022-08-19 22:20:17 -04:00
694c100bcf Add command line option all
Use --all or -a when calling site-generator instead of special page
ALL to generate all the configured pages for a website.
2022-08-19 22:19:50 -04:00
52a314f2a9 Add command line option all
Use --all or -a when calling site-generator instead of special page
ALL to generate all the configured pages for a website.
2022-08-19 22:11:38 -04:00
b36293e52f Fix generation of series general page 2022-08-19 21:25:14 -04:00
02eb8313d3 Fix links in intro text of index page 2022-08-18 21:26:57 -04:00
ff2ced6774 Fix capitalization of introduction text on index page 2022-08-18 21:19:32 -04:00
0dc5a78dae Fix links in sitemap content template 2022-08-18 17:55:42 -04:00
9d0e8d403d Fix importing of template date plugin
Add USE directive to import date plugin. Worked locally with out it
in this file, but was needed when trying on a different machine.
2022-08-18 17:39:17 -04:00
5af4d93c8c Update links to HPR total feeds 2022-08-17 23:42:45 -04:00
cf001df9ec Add feed hpr_total
This includes all three audio type feeds
2022-08-17 22:41:59 -04:00
6d4f5f28c9 Refactor main feed to need fewer templates
Add configuration properties to minimize the number of templates
needed to generate the different audio format feeds.
2022-08-17 22:32:32 -04:00
17ef26642a Add page Will my show be of interest to hackers 2022-08-17 21:30:54 -04:00
91349eb504 Update links to main RSS feeds in page.tpl.html 2022-08-17 19:20:22 -04:00
83c188465d Fix setting of RSS feed enclosures mime-type
Mime-type does not always match file extension.
2022-08-17 19:16:22 -04:00
41a18300eb Allow page to configure root_template in configuration file
RSS commits will be broken before this commit.
2022-08-17 19:13:42 -04:00
5b48b91e99 Add main HPR SPX feed 2022-08-17 18:08:45 -04:00
507b7db4a1 Add main HPR MP3 feed 2022-08-17 17:56:56 -04:00
162d8c6703 Initial implementation of HPR RSS feeds template
Add templates and macros to create main HPR OGG feed.
2022-08-17 17:12:47 -04:00
582f155ca1 Add MACRO format_feed_date
Display publication date in preferred format for feeds.
2022-08-17 15:50:03 -04:00
dba0ec8485 Add MACRO display_explicit_feed
The explicit value for RSS feeds is yes or no versus Clean or Explicit
used in the html pages.
2022-08-17 15:47:39 -04:00
af86b7114a Remove references to Report missing tags page
This project is finished, and no longer relevant.
2022-08-16 18:39:05 -04:00
1df2db62b1 Add HPR favicon 2022-08-16 18:29:06 -04:00
d53d4fc36c Add page sitemap 2022-08-13 13:12:45 -04:00
46ebfe2305 Fix links to static pages 2022-08-13 13:11:30 -04:00
e855344118 Make URL direct call to HPR for non static pages 2022-08-13 12:29:46 -04:00
019607e94f Add page promote 2022-08-13 10:08:55 -04:00
3365244688 Add page podcatchers 2022-08-12 22:59:54 -04:00
ca66743a3b Add page request_a_slot 2022-08-11 08:51:13 -04:00
a65c18cbda Add page recording 2022-08-10 22:30:11 -04:00
c1a5b25a67 Add page requested_topics 2022-08-10 22:08:38 -04:00
0d3c688167 Add Theme page 2022-08-09 22:06:37 -04:00
300c02eba9 Add Stuff you need to know page 2022-08-09 22:05:06 -04:00
18b44e515f Add page download 2022-08-09 19:06:06 -04:00
2298e9ad27 Fix link to index of full episodes 2022-08-09 18:23:33 -04:00
fe3ed40641 Fix display of corresponent episodes
Prevent display of future episodes which have been uploaded to HPR.
2022-08-09 18:18:04 -04:00
f90c704033 Add page help_out 2022-08-08 22:00:24 -04:00
818fc25ff9 Add option to site-generator to list configured pages 2022-08-08 21:30:22 -04:00
bccfa695a3 Add page search 2022-08-08 21:07:34 -04:00
39 changed files with 1126 additions and 43 deletions

View File

@@ -26,7 +26,7 @@ Generate two specific pages:
`site-generator index about`
Generate the whole site:
`site-generator ALL`
`site-generator --all`
Generate pages based on the same template:
`site-generator correspondent=1,3,5..10`

Binary file not shown.

BIN
public_html/hpr.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@@ -0,0 +1,14 @@
<html><head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<title>Will my show be of intrest to hackers ?</title>
<style>
p {font-size:100px;}
</style>
</head>
<body>
<p>
YES !
</p>
</body><!-- If you are reading this then definately YES --></html>

View File

@@ -8,6 +8,8 @@
site-generator [OPTION]... PAGE|PAGE=<comma separated list of ids>...
-a, --all generate all pages defined in configuration file
-l, --list print list of configured pages
-p, --preview print generated pages to standard out
-q, --quiet suppress progress information while generating pages
-v, --verbose print extended progress information while generating pages
@@ -22,7 +24,7 @@
site-generator index about
Generate the whole site:
site-generator ALL
site-generator --all
Generate pages based on the same template:
site-generator correspondent=1,3,5..10
@@ -91,32 +93,32 @@ exit main();
sub main {
# Argument parsing
my $all;
my $preview;
my $verbose;
my $quiet;
GetOptions(
'all' => \$all,
'list' => \&print_available_pages,
'preview' => \$preview,
'verbose' => \$verbose,
'quiet' => \$quiet,
) or pod2usage(1);
pod2usage(1) unless @ARGV;
pod2usage(1) unless @ARGV || $all;
my (@page_args) = @ARGV;
if ($quiet) {
$verbose = 'quiet';
};
# Set flag indicating whether or not to generate all pages.
# The flag is set to true if the special argument ALL is
# passed into the generator
my $ALL = grep { $_ eq 'ALL' } @page_args;
# Load config file
read_config "site.cfg" => my %config;
my $tt = get_template_html($config{DBI});
if ($ALL) {
# If command line option all is set, parse configuration file
# for all pages
if ($all) {
@page_args = keys %config;
# Remove non page sections of the configuration file
@@ -129,7 +131,13 @@ sub main {
if (exists($config{$parsed_arg{'page'}})) {
my $page_config = $config{$parsed_arg{'page'}};
$page_config->{'page'} = $parsed_arg{'page'};
$page_config->{'root_template'} = $config{root_template}{content};
# Set page's root_template to the default root_template if the
# page root_template property is not set in the configuration file.
if (exists $page_config->{'root_template'} == 0) {
$page_config->{'root_template'} = $config{root_template}{content};
}
if (exists $config{root_template}{baseurl}) {
$page_config->{'baseurl'} = $config{root_template}{baseurl};
}
@@ -258,7 +266,7 @@ sub get_filename {
else {
$filename = $$config{'filename'};
my $padded_index = "";
if ($$config{'id'}) {
if (exists $$config{'id'}) {
$padded_index = sprintf("%04d", $$config{'id'});
}
$filename =~ s/\[id\]/$padded_index/;
@@ -275,3 +283,20 @@ sub get_filename {
}
return $filename;
}
sub print_available_pages {
# Load config file
read_config "site.cfg" => my %config;
my @page_args = sort (keys %config);
# Remove non page sections of the configuration file
# from the generated list of pages.
@page_args= grep { $_ ne 'DBI' } @page_args;
@page_args= grep { $_ ne 'root_template' } @page_args;
foreach my $page_arg (@page_args) {
print "$page_arg\n";
}
exit;
}

View File

@@ -87,3 +87,85 @@ content: content-syndication.tpl.html
[contribute]
navigation: navigation-give-shows.tpl.html
content: content-contribute.tpl.html
[search]
navigation: navigation-main.tpl.html
content: content-search.tpl.html
[help_out]
navigation: navigation-contribute.tpl.html
content: content-help_out.tpl.html
[download]
navigation: navigation-get-shows.tpl.html
content: content-download.tpl.html
[stuff_you_need_to_know]
navigation: navigation-give-shows.tpl.html
content: content-stuff_you_need_to_know.tpl.html
[theme]
navigation: navigation-give-shows.tpl.html
content: content-theme.tpl.html
[requested_topics]
navigation: navigation-give-shows.tpl.html
content: content-requested_topics.tpl.html
[recording]
navigation: navigation-give-shows.tpl.html
content: content-recording.tpl.html
[request_a_slot]
navigation: navigation-give-shows.tpl.html
content: content-request_a_slot.tpl.html
[podcatchers]
navigation: navigation-contribute.tpl.html
content: content-podcatchers.tpl.html
[promote]
navigation: navigation-about.tpl.html
content: content-promote.tpl.html
[sitemap]
navigation: navigation-about.tpl.html
content: content-sitemap.tpl.html
[hpr_ogg]
root_template: rss.tpl.xml
content: rss-hpr.tpl.xml
filename: hpr_ogg.rss
media_file_extension: ogg
[hpr_mp3]
root_template: rss.tpl.xml
content: rss-hpr.tpl.xml
filename: hpr_mp3.rss
media_file_extension: mp3
audio_mime_type: mpeg
[hpr_spx]
root_template: rss.tpl.xml
content: rss-hpr.tpl.xml
filename: hpr_spx.rss
media_file_extension: spx
[hpr_total_ogg]
root_template: rss.tpl.xml
content: rss-hpr_total.tpl.xml
filename: hpr_total_ogg.rss
media_file_extension: ogg
[hpr_total_mp3]
root_template: rss.tpl.xml
content: rss-hpr_total.tpl.xml
filename: hpr_total_mp3.rss
media_file_extension: mp3
audio_mime_type: mpeg
[hpr_total_spx]
root_template: rss.tpl.xml
content: rss-hpr_total.tpl.xml
filename: hpr_total_spx.rss
media_file_extension: spx

View File

@@ -61,7 +61,7 @@
After you have selected a date you will be redirected to the <a href="https://www.hackerpublicradio.org/request.php">request page</a>, where you will be asked to select your show and email address. We will send a link to where you can upload your show to this address and so it must be a valid working address that you can access quickly. We intend to use <a href="https://www.gnupg.org/">GPG</a> to speed up the validation of hosts, so you may wish to use an email address that has an associated public key available on public key servers.
</p>
<p>
<a href="https://www.hackerpublicradio.org/request_a_slot.php">More Information</a>.
<a href="<!--% absolute_path(baseurl) %-->request_a_slot.html">More Information</a>.
</p>
<h2>Questions ?</h2>

View File

@@ -21,7 +21,7 @@
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
WHERE hosts.hostid = ?
WHERE hosts.hostid = ? AND eps.date < date(\'now\', \'+1 days\')
ORDER BY date DESC ')
%-->
<!--% shows_to_count = query_show_count.execute(id); %-->

View File

@@ -1,7 +1,7 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<article>
<h2 class="title">Correspondents</h2>
<p>For more information on how to become a Correspondent see our <a href="contribute.php">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) %-->
<!--% PROCESS 'shared-avatar.tpl.html' %-->
<table>
@@ -27,5 +27,5 @@
</tr>
<!--% END %-->
</table>
<p><a href="contribute.php">Become a Correspondent</a></p>
<p><a href="<!--% absolute_path(baseurl) %-->contribute.html">Become a Correspondent</a></p>
</article>

View File

@@ -0,0 +1,57 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<article>
<header>
<h1>Download Archive</h1>
<p>Please be aware that our Archive exceeds <strong>62Gb</strong> <em>(Ogg: 21Gb, Spx: 16Gb, mp3: 25Gb)</em>. We are happy for you to download them, but please make sure that you are not going to incur additional bandwidth charges on your side.</p>
<p>We will be happy to post you DVD's of the episodes anywhere in the world if bandwidth is an issue.</p>
</header>
<h2>Full Episode Guide</h2>
<p>
The <a href="<!--% absolute_path(baseurl) %-->eps/index.html">compete episode guide</a> is available to you, and it lists all the shows on one page going right back to the very first episode.
</p>
<h2>Command line download</h2>
<p>
You can download the audio of the episodes directly from the command line using the following commands:
</p>
<ul>
<li>ogg:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].ogg' -o "hpr#1.ogg"</span></li>
<li>spx:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].spx' -o "hpr#1.spx"</span></li>
<li>mp3:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].mp3' -o "hpr#1.mp3"</span></li>
</li>
</ul>
<h2>Full RSS feed, BitTorrent and Magnet links</h2>
<p>The full rss feed is updated daily and contains the complete show note with links to supporting articles. The torrent/magnet also contains this information and is a snaphot of the archive taken between 2007 and November 2013. </p>
<ul>
<li><span style="font-family:monospace;">ogg: <a href="hpr_total_ogg_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Ogg-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:390C66903BBB2B6A067C438C70B2E90988AA8207&dn=HPR-Ogg-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
<li><span style="font-family:monospace;">spx: <a href="hpr_total_spx_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Mp3-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:E2573BEF0209B8C2E3C7908BAF220EC34D4A5B8E&dn=HPR-Speex-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
<li><span style="font-family:monospace;">mp3: <a href="hpr_total_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Mp3-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:6E9492AD78BCCA2B8D6A42C9C0BCAB0E6FA778F8&dn=HPR-Mp3-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
</ul>
<h3>Direct download of the remaining shows</h3>
<p>
You can download the remaining episodes since the torrent was created directly from the command line using the following commands:
</p>
<ul>
<li>ogg:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].ogg' -o "hpr#1.ogg"</span>
</li>
</li>
</ul>
<ul>
<li>spx:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].spx' -o "hpr#1.spx"</span>
</li>
</li>
</ul>
<ul>
<li>mp3:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].mp3' -o "hpr#1.mp3"</span>
</li>
</li>
</ul>
<footer>
<p>Big to DeepGeek and the team for providing the BitTorrent service.</p>
</footer>
</article>

View File

@@ -0,0 +1,11 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<h1>Help Out.</h1>
<h2>Submit a show</h2>
<p>One of the best ways to help out is to <a href="<!--% absolute_path(baseurl) %-->contribute.html">contribute a show</a>. You can find out <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html">everything you need to know here</a>. </p>
<h2>Suggest Topics</h2>
<p>If there is a technical topic you would like us to cover, or if you are looking for topics to record a show on, then look no further than our <a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Requested topics</a> page.</p>
<h2>Podcatcher Support</h2>
<p>
Please report your experiences with our feeds to admin@hpr. We maintain a podcatcher <a href="<!--% absolute_path(baseurl) %-->podcatchers.html">compatibility list.</a>
</p>

View File

@@ -3,25 +3,22 @@
<hr>
<article>
<header>
<h3>welcome to hpr the community podcast</h3>
<h3>Welcome to HPR the Community Podcast</h3>
</header>
<!--% 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')) %-->
<p>we started producing shows as <a href="/twat.php"><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="/calendar.php">released</a> in <strong>13</strong> days.</p>
<h4>meet the team</h4>
<p>We started producing shows as <a href="https://www.hackerpublicradio.org/twat.php"><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>13</strong> days.</p>
<h4>Meet the team</h4>
<p>
<audio controls preload="none">";
<source src="../media/promos/all-hpr-hosts.ogg" type="audio/ogg" >
<source src="../media/promos/all-hpr-hosts.mp3" type="audio/mpeg" >
<source src="<!--% absolute_path(baseurl) %-->media/promos/all-hpr-hosts.ogg" type="audio/ogg" >
<source src="<!--% absolute_path(baseurl) %-->media/promos/all-hpr-hosts.mp3" type="audio/mpeg" >
</audio>
</p>
<p>
please help out <a href="/report_missing_tags.php">tagging</a> older shows !
</p>
</article>
<hr>
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
<h1>latest shows</h1>
<h1>Latest Shows</h1>
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
<!--% FOREACH latest_episodes IN DBI.query('
SELECT
@@ -52,7 +49,7 @@
<br>Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(latest_episodes.hostid) %-->.html"><!--% latest_episodes.host %--></a> on <!--% latest_episodes.date %--> is flagged as <!--% display_explicit(latest_episodes.explicit) %--> and released under a <!--% latest_episodes.license %--> license. <br>
<strong>Tags:</strong> <!--% latest_episodes.tags %--><em></em>.<br>
<small>listen in <a href="local/hpr<!--% latest_episodes.id %-->.ogg">ogg</a>, <a href="local/hpr<!--% latest_episodes.id %-->.spx">spx</a>, or <a href="local/hpr<!--% latest_episodes.id %-->.mp3">mp3</a> format. <!--% show_series(latest_episodes.series, latest_episodes.seriesid) %-->
<a href="eps.php?id=3628#comments">comments (0)</a></small>
<a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(latest_episodes.id) %-->/index.html#comments">View comments.</a></small>
</p>
</header>
<!--% latest_episodes.notes %-->

View File

@@ -0,0 +1,151 @@
<h1>Podcast Clients Test Status</h1>
<table style="width:100%">
<caption></caption>
<tr>
<th>Name</th>
<th>MP3</th>
<th>OGG</th>
<th>SPX</th>
<th>HTML</th>
</tr>
<tr>
<td>gPodder</td>
<td>OK</td>
<td>OK</td>
<td>OK</td>
<td>?</td>
</tr>
<tr>
<td>Bashpodder</td>
<td>OK</td>
<td>OK</td>
<td>OK</td>
<td>?</td>
</tr>
<tr>
<td>podget</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>Akregator</td>
<td>?</td>
<td>OK</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>BeyondPod</td>
<td>?</td>
<td>OK</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>AntennaPod, Version 1.5.2.0</td>
<td>OK</td>
<td>?</td>
<td>?</td>
<td>Reading the itunes:summary which has no html.<br />Should we also enable html here as well - how to fix the 4k limit ?</td>
</tr>
<tr>
<td>PodKicker Pro for Android</td>
<td>?</td>
<td>FAIL</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>pocketcasts</td>
<td>?</td>
<td>FAIL</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>Podlisten</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>Soundwaves</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>Podax</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>PodKicker Pro</td>
<td>OK</td>
<td>FAIL</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>RssDemon</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>newsbeuter</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>iTunes</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>VLC</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td><a href="https://github.com/jgoerzen/hpodder/wiki">hpodder</a></td>
<td>OK</td>
<td>OK</td>
<td>OK</td>
<td>?</td>
</tr>
<tr>
<td><a href="https://play.google.com/store/apps/details?id=com.podkicker">PodKicker Pro for Android</a></td>
<td>OK</td>
<td>?</td>
<td>?</td>
<td>OK</td>
</tr>
<tr>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
<tr>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
<td>?</td>
</tr>
</table>

View File

@@ -0,0 +1,23 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<article>
<header>
<h1>Please promote HPR</h1>
</header>
<p>Feel free to use the promotional material to spread the word in your podcasts, or have them played on to other shows.</p>
<h2>General HPR promotion</h2>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->media/promos/HPRpromoKlaatu.ogg">Klaatu explains HPR Daily podcast by the www.hackerpublicradio.org Community for the www.hackerpublicradio.org Community</a></li>
<!--<li><a href="../media/promos/HPRpromoNewsCast.ogg">A News Caster tells us about HPR</a></li>
<li><a href="../media/promos/HPRpromoSkirlet.ogg">Skirlet tells us we need to listen to HPR</a></li>-->
</ul>
<h2>Requests for contributions</h2>
<p>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->media/promos/Jude-aka-Mrs_Peter64_HPR-needs-shows.flac">Jude Mrs. Peter64 HPR needs shows</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->media/promos/hpr-contributor-promo-sax.ogg">slick0 basenet theme</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->media/promos/hpr-contributor-promo-basenettheme.ogg">slick0 sax roll</a></li>
</ul>
</p>
</article>

View File

@@ -0,0 +1,106 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<h1>Recording a Podcast</h1>
<p>
On this page you will find information on how to record a podcast. Our golden rule is <strong>Any audio is better than no audio.</strong> so keep that in mind. Don't forget to <strong>introduce yourself</strong> in your show.
</p>
<!--
<h2 id="callin_numbers">Recording with the telephone<a href="#">.</a></h2>
<p>
The quickest way to get started is to use our call in numbers to record a show over the phone. :
</p>
<ol>
<li>If possible <a href="request_a_slot.php">request a slot</a> so that you can get the episode number for inclusion in the recording.</li>
<li>Pick up a telephone and dial:
<pre>
USA: +1-470-222-4257 (HCKR)
UK: +44-203-432-5879
</pre>
</li>
<li>Listen to the introduction</li>
<li><strong>Talk to us</strong>, and include your <strong>episode number</strong>, name and email address clearly.</li>
<li>Press the <strong>#</strong> when you are finished and hang up.</li>
</ol>
<p>
That's it. Your show will be automatically sent to us and we will take care of the rest. If you have not done so already then please <a href="request_a_slot.php">request a slot</a> for your show.
</p>
<p>
<strong>Don't forget to end by pressing the # sign.</strong> If you don't your show will be lost and that makes us sad.
</p>
<p>
<em>(Thanks to K5tux for supplying the service and finux for the UK number)</em>
</p>
-->
<h2 id="portable_media_player">Recording with a portable media player<a href="#portable_media_player">.</a></h2>
<p>
Many of today's <a href="http://wiki.xiph.org/PortablePlayers">portable media players</a> support recording audio out of the box. Search for "Voice Recorder", to see if there is an application for your smartphone. Whichever option you have close to hand, try and set the recording to the best quality format (<a href="http://en.wikipedia.org/wiki/WAV">WAV</a> or <a href="http://en.wikipedia.org/wiki/FLAC">FLAC</a>), and set everything else to the highest setting. It's always the goal to get the best quality audio but here at Hacker Public Radio we value content over quality and so long as it's audible we'll take it.
</p>
<p>
Then just record your show, <a href="r<!--% absolute_url(baseurl) %-->equest_a_slot.html">request a slot</a>, and we'll do the rest.
</p>
<h2 id="smart_phone">Recording with a portable media player<a href="#smart_phone">.</a></h2>
<p>
Some of our hosts recommend <a href="https://gitlab.com/axet/android-audio-recorder">Android Audio Recorder</a> on my android phone. It's available on <a href="https://f-droid.org/en/packages/com.github.axet.audiorecorder/">F-Droid</a> and <a href="https://play.google.com/store/apps/details?id=com.github.axet.audiorecorder">Google Play</a>. These are the recommended settings:
</p>
<ul>
<li>Recording Source - Unprocessed</li>
<li>Sample Rate - 44.1 kHz</li>
<li>Encoding - .flac</li>
<li>Audio Channels - Mono</li>
</ul>
<h2 id="editing">Recording/Editing using your Computer<a href="#editing">.</a></h2>
<p>
The majority of podcasters use <a href="http://audacity.sourceforge.net/download/">Audacity</a>. First set the Project Rate to 44100Hz, then you can either record your show in Audacity itself or import the file you recorded earlier and edit it as you wish.
</p>
<p>
<img width="600" src="<!--% absolute_url(baseurl) %-->images/contribute-audacity-record.png" alt="Audacity Can Record" title="Audacity Screenshot of Recording" >
</p>
<blockquote>Audacity is a free, easy-to-use and multilingual audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems.</blockquote>
<iframe width="640" height="390" src="//www.youtube.com/embed/ss8CyTwBOPY" style="border: none"></iframe>
<p>
When you have finished editing your podcast you can export it.
</p>
<ol>
<li>Confirm that the Project Rate is set to 44100 Hz (bottom left).</li>
<li><em>File -> Export</em> and select <strong>FLAC File</strong>.</li>
<li>Click <em>Options...</em> to reveal FLAC Export Setup.</li>
<li>Set <em>Level</em> to <strong>8 (best)</strong>.</li>
<li>Set <em>Bit depth</em> to <strong>24</strong>.</li>
</ol>
<p>
<img width="600" src="<!--% absolute_url(baseurl) %-->images/contribute-audacity-export.png" alt="Audacity Export Settings" title="Audacity Screenshot of an Export" >
</p>
<h2 id="phone_interviews">Recording Interviews with the Phone<a href="#phone_interviews">.</a></h2>
<p>
If you want to record a one-to-one interview with someone then you can use <a href="skype.com">Skype</a> in conjunction with <a href="http://atdot.ch/scr/">Skype Call Recorder</a>. If everyone is using skype then it won't cost you anything otherwise you will need to pay for SkypeOut service. Although the quality is usually terrible, you could also put your phone on hands free and record with a <a href="http://wiki.xiph.org/PortablePlayers">portable media player</a>.
</p>
<h2 id="round_table">Recording round table discussions<a href="#round_table">.</a></h2>
<p>
If you would like to record with multiple participants then you can use <a href="http://www.mumble.com/">Mumble</a>. Connect to <strong>chatter.skyehaven.net</strong> Port: <strong>64738 </strong>.<br />
Walk through the audio wizard and then pop into the <strong>Hacker Public Radio</strong> room. Once you are ready press the <strong>recording</strong> button, select <em>multichannel</em> and then <em>start</em>. That will record multiple tracks, one for each participant which you can edit and then submit.
<br />
Kwisher made a <a href="<!--% absolute_url(baseurl) %-->Mumble-How-To.pdf">Mumble tutorial</a> which you might find useful and Delwin has produced a number of short <a href="<!--% absolute_url(baseurl) %-->correspondents/0228.html">shows</a> on how to configure the audio quality.
</p>
<p>
<img width="600" src="<!--% absolute_url(baseurl) %-->images/contribute-mumble-record.png" alt="Audacity Can Record" title="Audacity Screenshot of Recording" >
</p>
<h2 id="background_music">Avoid Bedding/background music<a href="#background_music">.</a></h2>
<p>
You may include backing music but it's best if you don't. Most long time podcast listeners speed up their shows, as this allows them to cram more shows into a day. Having bedding music makes it more difficult to understand, and prevents tools like <em>truncate silence</em> from working correctly.<br/>
Others will convert shows to mono to listen in one ear leaving the other free to carry out their other chores. Still more slow the shows down so that they can improve their English. Others are hard of hearing and backing music makes it difficult to understand the text.
</p>
<h2 id="encoding">We mix down to Mono<a href="#encoding">.</a></h2>
<p>
We will by default mix down your show to one channel mono and we will <a href="https://gitorious.org/hpr-scheduling-system/hpr-scheduling-system/source/2d526e000d31e79afa3d863ea8659503e2074267:transcoding/hprtranscode">transcode</a> to MP3, ogg and spx formats. If you want to control this in more detail then please email admin at Hacker Public Radio for more information.
</p>
<h2 id="no_metadata">No need to add Metadata to the file<a href="#">.</a></h2>
<p>
There is no need to add any information to the file as that will be inserted based on the information you fill in when you upload the show.
</p>

View File

@@ -0,0 +1,139 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<h1 id="requesting_slot">Picking a slot for your show</h1>
<p>
Any host can select any free slot a up to year in advance, by recording their show and uploading it to the desired slot. In exceptional circumstances it may be necessary to reserve a slot while not having the audio available, but this must be approved by the <a href="http://hackerpublicradio.org/mailman/listinfo/hpr_hackerpublicradio.org">HPR mailing list</a> in advance. Be sure to allow as much time as possible, and include a reason why you feel it is necessary to reserve the slot.
</p>
<p>
This is intended only for exceptional circumstances, such as a scheduled interview where we would like the audio to be released as soon after the event as possible, or to cover an important topical situation that has occurred. Due to the extended time now needed to post shows to external sites, the extra work this entails and the disruptive effect of reservations, we will no longer be allowing them except in very rare cases of the type mentioned above. [<a href="http://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2018-February/014260.html">?</a>]
</p>
<p>
You can post your show by going to the <a href="http://www.hackerpublicradio.org/calendar.php">Calendar</a> page. Once you have selected a date you will be redirected to the <a href="<!--% absolute_url(baseurl) %-->request.html">request page</a>, where you will be asked to select your show and email address. We will send a link to where you can upload your show to this address and therefore it must be a valid working address that you can access quickly. We intend to use <a href="https://www.gnupg.org/">GPG</a> to speed up the validation of hosts, so you may wish to use an email address that has an associated public key available on public key servers.
</p>
<p>
The audio of your show will not be moderated, however <em>the information provided in the upload form <strong>may be moderated</strong></em>. All publicly facing material is managed by the HPR Community as a whole, and not just the host providing the show. The show <a href="<!--% absolute_url(baseurl) %-->eps/hpr2210/index.html">hpr2210 :: On Freedom of Speech and Censorship</a> describes the agreed approach to this topic.
</p>
<p><strong>Note:</strong> This email address will be published on the HPR website and will be given out in the feeds, so please use a <strong>public email</strong> address for this purpose. Where we publish it we pad it with dot nospam at-sign nospam dot. <br />
i.e. <em>hpr@example.com</em> becomes <em>hpr.nospam@nospam.example.com</em>. If you do not want to have your email exposed, please contact the admin@hpr team to arrange a alias.
</p>
<p>
Once you press <em>next</em>, an email will be sent to your email address pointing to where you can upload the show. You need to <em>open</em> the link within <strong>15 minutes</strong> or the temporary lock will be released. Once you open the link, you can fill in the information at your leisure. The upload form works on the assumption you will be posting one show at a time, from the same IP address. Once you have pressed submit you will not be able to edit any of the information.
</p>
<h2 id="adding_the_episode">Adding the Episode</h2>
<p>
The unique link sent by email will allow you to manage both the episode and information about yourself that is displayed on HPR. The following information will be requested:
</p>
<h2 id="personal_information">Personal Information</h2>
<p>
Remember <em>All information will be displayed publicly</em>. The only exception is that your email address will be sent in the feed with some anti-spam additions.<br />
For example <em>hpr@example.com</em> will become <em>hpr.nospam@nospam.example.com</em>
</p>
<ul>
<li id="email"><strong>email:</strong> <em>already populated</em><br />
See notes <a href="#requesting_slot">above</a><br />
</li>
<li id="image"><strong>image:</strong> <em>Optional</em><br />
If you have associated a <a href="http://en.gravatar.com/">Gravatar</a> image with an email address, then it will be displayed here. Otherwise you can upload a 80x80 image .</li>
<li id="Name_Handle"><strong>Name/Handle:</strong> <em>Mandatory</em><br />
It should be the name you wish to be known as on HPR. It can be your real name, an Internet handle or both.</li>
<li id="Default_license"><strong>Your Default license:</strong> <em>Mandatory</em><br />
This field tells us what your work is normally licensed under. All our shows are now released under a <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</a> license, which means that while you continue to retain the copyright to your show you are allowing us (and everyone else) to use it provided we give you attribution and that we release it under the same license. Click the <a href="https://creativecommons.org/licenses/by-sa/4.0/">link</a> for more information.</li>
<li id="Profile"><strong>Profile:</strong> <em>Optional</em><br />
Enter some text about yourself with links to your blog or other online presence.</li>
</ul>
<p>
Your profile information is used on the website, in the RSS feeds, and on social media sites. You can change your profile information at any time, by submitting another show.
</p>
<h2 id="episode_information">Episode Information</h2>
<ul>
<li id="Title"><strong>Title:</strong> <em>Mandatory</em><br />
This will be a short descriptive title and will be used everywhere to identify your show. Any valid UTF-8 character is acceptable, but keep the length short and clear.</li>
<li id="Short_Summary"><strong>Summary:</strong> <em>Mandatory</em><br />
This is a short 100 character summary of what your show is about. Please fill this out as it is used once the show has gone off the main page, on the mobile site, on printed brochures, on text to speech announcements, on twitter, mastodon etc.</li>
<li id="Theme"><strong>Theme:</strong> <em>Automatic</em><br />
The <a href="<!--% absolute_url(baseurl) %-->theme.html#intro">Intro</a>, and the <a href="<!--% absolute_url(baseurl) %-->theme.html#outro">Outro</a> will be added automatically. Please do not add it.
</li>
<li id="Explicit"><strong>Explicit:</strong> <em>Mandatory</em><br />
See <a href="http://www.apple.com/uk/itunes/podcasts/specs.html#submitting">iTunes</a> for more information.</li>
<li id="License"><strong>License:</strong> <em>Mandatory</em><br />
All our shows are now released under a <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</a> license, which means that while you continue to retain the copyright to your show you are allowing us (and everyone else) to use it provided we give you attribution and that we release it under the same license. Click the <a href="https://creativecommons.org/licenses/by-sa/4.0/">link</a> for more information.</li>
<li id="show_notes"><strong>show notes:</strong> <em>Mandatory</em><br />
It is important to provide good show notes because:
<ul>
<li><strong>They provide the listeners with more information on the topic.</strong><br />
You have taken the time to record a show on a topic, so many people will want to find out more on the subject, therefore you should include links to give more information. It is not enough to just give it in the show itself as people may be listening while away from the Internet, and they may have forgotten or misheard your links.
</li>
<li><strong>They ensure your show gets posted on time.</strong><br />
If you do not supply show notes then your show notes will need to be edited manually by an HPR volunteer and this will most likely result in delays. During that time other shows will be processed and may get posted before your show. It is always better if you send us show notes yourself as you know best what information you are trying to convey.</li>
<li><strong>They encourage people to download your show.</strong><br />
We produce a lot of shows and many people download based on the text in the show notes. If the show notes are not descriptive then it is less likely that it will get as many downloads as other shows with good show notes.</li>
<li><strong>They allow your show to be indexed by search engines.</strong><br />
Search engines cannot determine the content of your show from the audio alone. The only way for your show to be indexed is for you to describe in the associated text what you say in the audio.</li>
<li><strong>They make your show accessible to the deaf and hard of hearing.</strong><br />
Your audio is completely inaccessible to those who have hearing problems, so the only way for your show to be of help to them is if you distill the essence of the show into the show notes. If you are using a script to prepare your show then include that.</li>
</ul>
The amount you can enter is restricted to 4000 characters, but you can provide additional show notes if you wish. Please add them to an index.html file which you can expect to be served from http://www.hackerpublicradio.org/eps/hpr9999/index.html<br /> <br />
<li>
If you wish to include text formatting then please use a format that supports it. We accept:
<ul>
<li>HTML5</li>
<li>Markdown (standard)</li>
<li>Markdown (GitHub flavoured)</li>
<li>Markdown (Pandoc flavoured)</li>
<li>RestructuredText</li>
<li>txt2tags</li>
<li>Plain text</li>
</ul>
However please restrict yourself to text unless you are experienced producing valid markdown/HTML5. Regardless of the format you send your shownotes will end up in html5 &lt;article&gt; section, where the header and footer are not available to you. Avoid using &lt;div&gt; or &lt;span&gt;. The inclusion of JavaScript will send your show into quarantine, until an experienced HPR volunteer can be found to debug it.<br />
It takes us a lot longer to fix incorrectly formatted shownotes than plain text, so please only create formatted show notes if you know what you are doing and are sure that what you are writing is valid.
</li>
<li id="shownotes_format"><strong>Show Note Format:</strong> <em>Optional</em><br />
Please tell us which format, if any you used when filling in your shownotes.
<ul>
<li><a href="http://www.w3schools.com/html/html5_intro.asp">HTML5</a></li>
<li><a href="https://en.wikipedia.org/wiki/Markdown">Markdown (standard)</a></li>
<li><a href="https://help.github.com/articles/basic-writing-and-formatting-syntax/">Markdown (GitHub flavoured)</a></li>
<li><a href="http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html">Markdown (Pandoc flavoured)</a></li>
<li><a href="http://docutils.sourceforge.net/docs/user/rst/quickstart.html">RestructuredText</a></li>
<li><a href="http://txt2tags.org/online.php">txt2tags</a></li>
<li>Plain text having no formatting.</li>
</ul>
</li>
<li id="series"><strong>Series:</strong> <em>Optional</em><br />
Select the <a href="<!--% absolute_url(baseurl) %-->series.html">series</a> if any that your show is a part of.
</li>
<li id="tags"><strong>Tags:</strong> <em>Optional</em><br />
Add a list of comma separated tags. Pick the most important words from the shownotes. These are used to <a href="http://hackerpublicradio.org/tags.php">find shows via the tags page</a>.
</li>
<li id="upload_method"><strong>Upload Method:</strong> <em>Optional</em><br />
You have the choice of the following options:<br />
<ul>
<li id="browser"><strong>Upload now via this browser</strong><br />
You can upload single or multiple files using this method. Chrome will display the percentage uploaded but to see this in Firefox you will need to install a <a href="https://addons.mozilla.org/en-US/firefox/addon/uploadprogress/">plugin</a>, or just wait.
</li>
<li id="url"><strong>Provide a url for us to get it from</strong><br />
Using this option may cause delays as a HPR volunteer will need to troubleshoot any issues that may occur, and this can result in your show not been posted on time.
</li>
<li id="upload_later"><strong>Other</strong><br />
The postal information will be sent to you after submission.
</li>
</ul>
<br />
If you want to submit an additional file with your show, then put them in a zip, or tgz file. This should expand to a directory with a index.html file that refers to the other files. This will be hosted in the eps directory under a new directory with the episode number.
<pre>
http://www.hackerpublicradio.org/eps/hpr9999/index.html
http://www.hackerpublicradio.org/eps/hpr9999/other-file.pdf
http://www.hackerpublicradio.org/eps/hpr9999/yet-other-file.c
...
</pre>
Ensure that all links are full urls, as relative urls will not work in RSS feeds. Adding additional files will delay processing as they need to be verified manually.
</li>
</ul>
<p>
Press submit and your show will be sent to the HPR Volunteers to be processed. Keep an eye on the <a href="http://www.hackerpublicradio.org/calendar.php">calendar</a> for when it is posted.
Your show information is used to process the media files, on the website, in the RSS feeds, and on social media sites.
</p>

View File

@@ -0,0 +1,59 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<h1 id="requested_topics">Requested topics</h1>
<p>This is a list of topics that have been requested by the community. Feel free to add it to the list by emailing admin at hpr or by tweeting us on <a href="https://twitter.com/hpr">@HPR</a>.</p>
<ul>
<li>How did you get into podcasting/linux/geekdom?</li>
<li>What podcasts you listen to and can recommend</li>
<li>Whats in your bag? Tell us what tools/gear/stuff you keep close at hand.</li>
<li>What got you into Linux?</li>
<li>Your favorite Android applications.</li>
<li>Your favorite desktop applications.</li>
<li>Your favorite browser extensions.</li>
<li>A introduction to Wireshark.</li>
<li>How to set up your own blog.</li>
<li>Choosing a artistic design for website, business cards etc.</li>
<li>Music Theory</li>
<li>Installing a VPN to your home network</li>
<li>Init and System.d</li>
<li>Episodes for the <a href="<!--% absolute_url(baseurl) %-->series/0007.html">LPI</a>, or the Networking series.</li>
<li><a href="http://opensourcemusician.com/index.php/Beginning_Audio_Series_for_HPR_and_OSMP_Release">Beginning Audio Series for HPR and OSMP Release</a></li>
<li>Hackintosh computers - what are they, why would you want one.</li>
<li>Grub 2.0 introduction and customization.</li>
<li>FM Transmitter hack to listen into internet streams</li>
<li>How I Got Into Accessible Computing</li>
<li>How to do knitting</li>
<li>How to build a house</li>
<li>Bitcoin howto <a href="<!--% absolute_url(baseurl) %-->eps/hpr0788/index.html">hpr0788</a></li>
<li>How to solder <a href="<!--% absolute_url(baseurl) %-->eps/hpr1037/index.html">hpr1037</a>, <a href="<!--% absolute_url(baseurl) %-->eps/hpr1047/index.html">hpr1047</a></li>
<li>How to weld</li>
<li>How to fix a car</li>
<li>Reviews of stream playing software, (for linuxheads who don't want to keep a browser tab open all the time)</li>
<li>Reviews of stream ripping software on linux</li>
<li>Beginners guide to gnuplot</li>
<li>Nagios series, intro, setup, advanced ...</li>
<li>How to set up GPG/openPGP</li>
<li>What I do with my Raspberry Pi</li>
<li>It broke, I fixed it</li>
<li>How does coreboot work</li>
<li>Introduction to HAM Radio</li>
<li>I've moved and they do it like this here</li>
<li>How to record a tag team tutorial on a topic</li>
<li>Open Street Map new editor</li>
<li>etymology</li>
<li>functional versus procedural programming</li>
<li>sed, awk and grep</li>
<li>Setting up imap/smtp (gmail) in a cli mail program</li>
<li>Irssi - a sane setup</li>
<li>Your view of the future</li>
<li>Alternative uses for Bayesian email classifiers (<a href="https://www.youtube.com/watch?v=JKB5CojW4AA">more info</a>)</li>
<li>How to use a multimeter, and other basic electronic components like a 555 timer</li>
<li>How does Hubble remain fixed on a spot in space while in orbit of the earth</li>
<li>Gnu automake system.</li>
<li>What's the deal with IPv6 (i.e., why can't we just NAT at the ISP level, are there privacy issues in having your MAC address as part of your IP?)</li>
<li>Network like a Pro. If you were to treat your home network like a corporate server farm, what tools and hardware would it entail to treat your home network like a security professional? What do we need for a firewall and what are the detection/prevention technologies that we could be implementing?</li>
<li>Beyond Firewall and an IDS/IPS, what do I need? I've started listening to Security Weekly, starting with last December, and at one point the suggested a secondary IDS, behind the firewall, to record what the primary defenses missed. Where and how do I set that up? Beyond firewall and IDS, what other tools should I be running, where should they be in my network, and how many physical boxes are we talking? Emphasis should be on low power devices and free as in beer tools.</li>
<li>Now That Your Security is in Place, How to Read Logs and Formulate a Response to an Intrusion. What I've learned from SW, is that you can't prevent an intrusion, it's how to respond when you are compromised. Again, according to SW, the security manager's job is to detect intrusions, inside 48 hours rather than 48 months. How can you protect your proprietary data and customer database?</li>
<li>What Are the Answers I Need, To the Questions I Don't Know Enough to Ask?</li>
<li>#IPFS (and don't leave out IPNS!). I'd really like to get a better understanding of practical use of this.</li>
<li>Any experiences integrating Dell/Wyse thin- and zero- clients into linux networks.</li>
</ul>

View File

@@ -0,0 +1,39 @@
<article>
<header>
<h1>Search HPR.</h1>
</header>
<hr />
<h2>Search Show Tags</h2>
<p>
<a href="http://www.hackerpublicradio.org/tags.php">Complete list of all the Tags</a></p>
<hr />
<h2>Google</h2>
<form name="google-search" method="get" action="http://www.google.com/search">
<input type="hidden" name="sitesearch" value="http://www.hackerpublicradio.org/" />
<input name="q" type="text" />
<input type="submit" name="sa" value="Search HPR with Google" />
</form>
<br />
<a href="http://www.google.com/policies/privacy/">privacy policy</a>
</p>
<hr />
<h2>DuckDuckGo</h2>
<p>
<iframe src="http://duckduckgo.com/search.html?site=www.hackerpublicradio.org&prefill=Search DuckDuckGo" style="overflow:hidden;margin:0;padding:0;width:408px;height:40px;" frameborder="0"></iframe>
<br />
<a href="https://duckduckgo.com/privacy">privacy policy</a>
</p>
<hr />
<h2>Bing</h2>
<p>
<form method="get" action="http://www.bing.com/search">
<input type="hidden" name="cp" value="utf-8" />
<input type="hidden" name="FORM" value="FREESS" />
<input type="text" name="q" size="30" />
<input type="submit" value="Search with Bing" />
<input type="hidden" name="q1" value="site:www.hackerpublicradio.org" />
</form>
<br />
<a href="http://www.microsoft.com/privacystatement/en-us/bing/default.aspx">privacy policy</a>
</p>
</article>

View File

@@ -16,7 +16,7 @@
GROUP BY series) AS ep ON ep.series = miniseries.id
ORDER BY name'
) %-->
<h2><a href="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>
<li>Number of episodes: <!--% series.number_of_episodes %--></li>
<li>Open/closed: <!--% display_choice(series.private, 'closed', 'open') %--></li>

View File

@@ -0,0 +1,33 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<h1>Sitemap</h1>
<ul>
<li><a href="https://www.hackerpublicradio/calendar.php"><strong>⇧Upload⇧</strong></a> ← Upload Your Show</li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</strong></a> ← The HPR Homepage</li>
<li><a href="<!--% absolute_path(baseurl) %-->syndication.html">Get Shows</a> ← The RSS Syndication Feeds</li>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">Full Episode Guide</a> ← Complete list of all the Shows.</li>
<li><a href="<!--% absolute_path(baseurl) %-->series/index.html">In-Depth Series</a> ← Overview of the In-Depth Series.</li>
<li><a href="<!--% absolute_path(baseurl) %-->download.html">Download Options</a> ← How to download the entire archive.</li>
</ul>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Give Shows</a> ← Upload your podcast show here.</li>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html">Info</a> ← Stuff you need to know before uploading a show.</li>
<li><a href="<!--% absolute_path(baseurl) %-->theme.html">Theme</a> ← Information about HPR Theme Music.</li>
<li><a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Topics</a> ← Requested topics.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html">Recording</a> ← How to record a podcast.</li>
<li><a href="<!--% absolute_path(baseurl) %-->request_a_slot.html">Scheduling</a> ← Picking a slot for your show.</li>
</ul>
<li><a href="<!--% absolute_path(baseurl) %-->help_out.html">Contribute</a> ← How you can help HPR.</li>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Submit Show</a> ← Upload your podcast show here.</li>
<li><a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Topics</a> ← Requested topics.</li>
</ul>
<li><a href="<!--% absolute_path(baseurl) %-->about.html">About</a> ← Information about the History and Governance of HPR.</li>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">Hosts</a> ← A list of all our Hosts.</li>
<li><a href="<!--% absolute_path(baseurl) %-->contact.html">Contact</a> ← How to get in touch with us.</li>
<li><a href="<!--% absolute_path(baseurl) %-->promote.html">Promote HPR</a> ← Ways you can spread the word.</li>
<li><a href="https://www.hackerpublicradio.org/comments_viewer.php">Show Comments</a> ← Read the latest comments left on shows.</li>
</ul>
<li><a href="<!--% absolute_path(baseurl) %-->search.html">Search</a> ← Search HPR</li>
</ul>

View File

@@ -0,0 +1,162 @@
<h1 id="agreement">Stuff you need to know<a href="#agreement">.</a></h1>
<p>
This is some important information that you will need to know before uploading to HPR.
</p>
<h2 id="wikipedia">You will no longer be allowed to edit HPR pages on Wikipedia<a href="#wikipedia">.</a></h2>
<p>
Once you upload a show, you will no longer be allowed to edit pages relating to <a href="https://en.wikipedia.org/wiki/Hacker_Public_Radio">Hacker Public Radio</a> in <a href="https://en.wikipedia.org/wiki/Wikipedia:FAQ/Organizations">Wikipedia</a>.
</p>
<h2 id="mailinglist">All policy decisions are made by the HPR Community<a href="#mailinglist">.</a></h2>
<p>
The community decides the HPR policies.
Please join the <a href="https://hackerpublicradio.org/mailman/listinfo/hpr_hackerpublicradio.org">HPR Mailing List</a> to participate.
</p>
<h2 id="no_shows_no_hpr">HPR will stop as a project if there are not enough shows<a href="#no_shows_no_hpr">.</a></h2>
<p>
Hacker Public Radio is dedicated to sharing knowledge.
We release about 260 shows a year, which is probably more than all of the other FOSS podcasts put together.
If you listen to HPR, then we would love you to <a target="_blank" href="<!--% absolute_path(baseurl) %-->contribute.html">contribute</a> one show a year.
Remember once that all the emergency shows have been used up and there are no more shows in the queue, HPR as a project will stop.
</p>
<h2 id="patrons">Support our Patrons<a href="#patrons">.</a></h2>
<p>
Our hosting is kindly provided to us by <a href="<!--% absolute_path(baseurl) %-->correspondents/0174.html">Josh Knapp</a> from <a href="https://anhonesthost.com/hosting/shared-hosting">AnHonestHost.com</a>, and The Internet Archive at <a href="https://archive.org/donate/">Archive.org</a>.
We encourage you to support our Patrons.
Over the years kind people have donated services and supported equipment for our conferences.
</p>
<h2 id="syndication">We do not syndicate non HPR Shows<a href="#syndication">.</a></h2>
<p>
HPR is founded on the principle of Hackers sharing knowledge.
For this reason we are only releasing material created exclusively for HPR.
We will continue to promote new podcasts and other creative commons material, but if you wish to have your show promoted, then please contact our sister site <a href="https://freeculturepodcasts.org/">Free Culture Podcasts</a>.
</p>
<p>
That said, if there is a piece of creative commons content that you would like to promote, then feel free to record a regular show.
There you can introduce the content and explain why it is important, providing links to where we can get more information etc., and then include one example episode.
</p>
<h2 id="license">You are agreeing to license your show CC-BY-SA<a href="#license">.</a></h2>
<p>
All our shows are now released under a <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</a> license, which means that while you continue to retain the copyright to your show, you are allowing us (and everyone else) to use it provided we give you attribution and that we release it under the same license.
Click the <a href="https://creativecommons.org/licenses/by-sa/4.0/">link</a> for more information.
</p>
<h2 id="permission">You have permission to redistribute your show in its entirety<a href="#permission">.</a></h2>
<p>
Never include content, for example music, in your show that you do not have permission to redistribute.
Try to avoid using any content in your show that can not be redistributed under a <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) </a> license.
If you are redistributing under another Creative Commons license, GNU Free Documentation License, public domain, or FLOSS software license, then please signal that when you upload your show. We do not post other copyrighted content, even if it is made available under fair use, or by arranged permission.
</p>
<h2 id="not_moderated">The audio of your show will not be moderated<a href="#not_moderated">.</a></h2>
<p>
We do not vet, edit, moderate or in any way censor any of the audio you submit, we trust you to do that.
Aside from checking snippets for audio quality/spam checking, we have a policy that we don't listen to the shows before they are aired.
This is a long standing tradition arising from the fact that HPR is a community of peers who believe that any host has as much right to submit shows as any other.
<br />
We <strong>do</strong> transcode the audio into different formats.
</p>
<p>
Please note that this only relates to the audio you upload.
The rest of the meta-data (branding/summaries/tags/show notes/etc.), are managed by the HPR Community, and <strong>may</strong> be edited.
The show <a href="<!--% absolute_path(baseurl) %-->eps/hpr2210/index.html">hpr2210 :: On Freedom of Speech and Censorship</a> describes the agreed approach to this topic.
</p>
</p>
<h2 id="explicit">Your show will be signaled as containing explicit content<a href="#explicit">.</a></h2>
<p>
Given that we are an open forum for free speech we signal all our shows as "explicit" with the assumption that the listeners will apply the required discretion when playing the shows in public.
That said the majority of our content is technical in nature and therefore is often considered appropriate for any audience.
If you feel that your show will be considered <strong>inoffensive in every region of the world</strong> then you can signal that when you upload the show.
</p>
<p>
When dealing with content that is "explicit" or contains material that would best be suited for a mature audience, it has become traditional to include a short warning at the very beginning of the show before the intro, to allow listeners time to switch off the episode should they so desire.
</p>
<p>
<a href="<!--% absolute_path(baseurl) %-->eps/hpr2210/index.html">hpr2210 :: On Freedom of Speech and Censorship</a> describes the agreed approach to this topic.
</p>
<h2 id="schedule">You determine when your show will be released<a href="#schedule">.</a></h2>
<p>
The HPR Schedule is entirely community driven and we recommend that <strong>you</strong> pick the date or show number as then you know when your show will be released.
However the slots will only be allocated once the shows have been successfully processed.
Any missing information can result in a show missing the requested slot.
Once the slots have been allocated it is not possible to move them.
</p>
<h2 id="reserving">All reservations need to be approved<a href="#reserving">.</a></h2>
<p>
Any host can select any free slot a up to year in advance, by recording their show and uploading it to the desired slot.
In exceptional circumstances it may be necessary to reserve a slot while not having the audio available, but this must be approved by the <a href="https://hackerpublicradio.org/mailman/listinfo/hpr_hackerpublicradio.org">HPR Mailing List</a> in advance.
Be sure to allow as much time as possible, and include a reason why you feel it is necessary to reserve the slot.
<br />
This is intended only for exceptional circumstances, such as a scheduled interview where we would like the audio to be released as soon after the event as possible, or to cover an important topical situation that has occurred.
Due to the extended time now needed to post shows to external sites, the extra work this entails and the disruptive effect of reservations, we will no longer be allowing them except in very rare cases of the type mentioned above.
</p>
<p>
The following are standing reservations:
<ul>
<li>Anniversary episodes.</li>
<li>HPR Community News on the first Monday of the month.</li>
<li>The first day of the fourth month.</li>
<li>The days following new year.</li>
</ul>
</p>
<h2 id="utf8">We use UTF-8 end to end<a href="#utf8">.</a></h2>
<blockquote>See the video "<a href="https://www.youtube.com/watch?v=MijmeoH9LT4">Characters, Symbols and the Unicode Miracle - Computerphile</a>" for an interesting background to ASCII and <a href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</a>.
</blockquote>
<h2 id="accessibility">Keep accessibility in mind<a href="#accessibility">.</a></h2>
<p>
When you includes output from the command line in the show notes, posting screen-shots of console or terminal output makes it impossible for screen readers to access the text.
Always try to include the raw output ( eg: embedded in &lt;pre&gt; tags)
<br />
Include descriptive language in any link texts.
<br />
Avoid structures like: <em>"For accessibility information click <a href="#accessibility">here</a>"</em><br />
Rather use: <em>"For more information click our <a href="#accessibility">accessibility page</a>"</em><br />
</p>
<h2 id="international">Your show will be heard by an International Audience<a href="#international">.</a></h2>
<p>
We have people listening from all over the world, who may not have the same cultural background as yourself, therefore you should be as clear as possible when giving details.
For example always give temperatures in both Celsius and Fahrenheit, measurements in Metric and Imperial, dates in <strong>YYYY-MM-DD</strong> <a href="https://en.wikipedia.org/wiki/ISO_8601">iso8601</a> format, and abbreviations using the <a href="https://en.wikipedia.org/wiki/NATO_phonetic_alphabet">NATO phonetic alphabet</a>.
Never assume that your audience knows what age a sixth grader is, or how big a 20 Cent Euro coin is.
Keep in mind that keyboard layouts are also different so make sure to specify the key shape or the position inrelation to a common known standard.
For example:
</p>
<blockquote>The at sign normally situated above the 2 key on a US keyboard, and has a unicode number of U+0040.
For more information see <a href="https://en.wikipedia.org/wiki/At_sign">Wikipedia</a></blockquote>
<p>
<a href="https://xkcd.com/1179/"><img src="../images/iso_8601.png" title="ISO 8601 was published on 06/05/88 and most recently amended on 12/01/04." alt="An xkcd cartoon showing ISO 8601" /></a>
</p>
<h2 id="emergency_queue">Feed the emergency queue<a href="#emergency_queue">.</a></h2>
<p>
The emergency queue is intended only to be used in the cases where there is still a gap in the schedule 24 hours prior to release.
The shows will by their very nature need to be "timeless".
That means your topic should still be relevant in four years or more.
People will be able to hear the show on the website but they will not be included in any feeds until release.
</p>
<p>
Please begin all shows with text similar to:
<br />
<em>
"This is an emergency show, if you are hearing this then HPR needs shows ASAP.
Please consider contributing a show.
Email admin at hacker public radio dot org for more information."
</em>
</p>
<p>
We expect that we need at least 10 shows in the emergency queue in order to give people enough time to record and submit shows.
Please contact admin at hpr if you want to submit an emergency show.
</p>

View File

@@ -6,9 +6,9 @@
Use this feed to get the archived episodes. The feed themselves run over 15Mb in size and so use them to download the archived episodes and when you are up to date switch back to the Two Week Feeds listed above.
</p>
<ul>
<li><a href="hpr_total_ogg_rss.php">ogg feed</a> Warning over 50G</li>
<li><a href="hpr_total_spx_rss.php">spx feed</a> Warning over 22G</li>
<li><a href="hpr_total_rss.php">mp3 feed</a> Warning over 36G</li>
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_ogg.rss">ogg feed</a> Warning over 50G</li>
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_spx.rss">spx feed</a> Warning over 22G</li>
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_mp3.rss">mp3 feed</a> Warning over 36G</li>
</ul>
</article>
<article>

View File

@@ -0,0 +1,42 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<h1>HPR Theme Music</h1>
<p>
An HPR episode is composed of a few parts which are all now added automatically.
</p>
<ol>
<li>
<h3 id="Synopsis">Show Synopsis</h3>
<p>
We will take the <a href="<!--% absolute_path(baseurl) %-->contribute.html#show_notes_file_format">fields</a> from the Show Notes and use those to create a short summary of what the show is about.<br />
The format is:
</p>
<blockquote>
This is HPR episode ${show_number) entitled "${title}". It is hosted by ${hostname} and is ${duration} minutes long. The Summary: "${summary}"
</blockquote>
<p>Most of the information is taken from the <a href="<!--% absolute_path(baseurl) %-->request_a_slot.html">Show Notes</a><br />
<strong>Note:</strong> <em>This is automatically added after you upload your show.</em>
</p>
</li>
<li>
<h3 id="show">The Show</h3>
<p>
The most important bit. As long as you like, on any topic you like as long as it is <em>"of interest to Hackers"</em>.
</p>
</li>
<li>
<h3 id="outro">HPR Outro Music </h3>
<p>
This can be added is automatically added after you upload your show.
</p>
</li>
</ol>
<h2>Media Files</h2>
<ol>
<li><a href="http://www.hackerpublicradio.org/media/theme-music/">outro-music-MrX-ccbysa-accordion.wav</a> (2.8M)</li>
<li><a href="http://www.hackerpublicradio.org/media/theme-music/">outro-music-rollercostermusic.com-ccbysa-v1-ccbysa.wav</a> (31M)</li>
<li><a href="http://www.hackerpublicradio.org/media/theme-music/">outro-music-rollercostermusic.com-ccbysa-v2-ccbysa.wav</a> (26M)</li>
<li><a href="http://www.hackerpublicradio.org/media/theme-music/">outro-music-rollercostermusic.com-ccbysa-v3-ccbysa.wav</a> (31M)</li>
<li><a href="http://www.hackerpublicradio.org/media/theme-music/">outro-music-slick0-cc0.flac</a> (12M)</li>
<li><a href="http://www.hackerpublicradio.org/media/theme-music/">outro-speech-manon_fallon-cc0.flac</a> (4.6M)</li>
</ol>

View File

@@ -1,6 +1,6 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="https://www.hackerpublicradio.org/calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->about.html">About »</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">Hosts</a></li>

View File

@@ -1,9 +1,8 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="https://www.hackerpublicradio.org/calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->help_out.html">Contribute »</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Submit Show</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->report_missing_tags.html">Fix Tags</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Topics</a></li>
</ul>

View File

@@ -1,9 +1,9 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="https://www.hackerpublicradio.org/calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->syndication.html"><strong>Get Shows »</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index_full.html">Full Episode Guide</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->eps/index.html">Full Episode Guide</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->series/index.html">In-Depth Series</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->download.php">Download Options</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->download.html">Download Options</a></li>
</ul>

View File

@@ -1,11 +1,11 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="https://www.hackerpublicradio.org/calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Give Shows »</strong></a>
<li><a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html">Info</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->theme.html">Theme</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Topics</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html">Recording</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->request_a_slot.php">Scheduling</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->request_a_slot.html">Scheduling</a></li>
</ul>

View File

@@ -1,6 +1,6 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<ul>
<li><a href="calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="https://www.hackerpublicradio.org/calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home »</strong></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>

View File

@@ -20,9 +20,9 @@
}
</style>
<link rel="shortcut icon" href="hpr.ico" >
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Ogg Vorbis RSS" href="/hpr_ogg_rss.php" />
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Speex RSS" href="/hpr_spx_rss.php" />
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio MP3 RSS" href="/hpr_mp3_rss.php" />
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Ogg Vorbis RSS" href="<!--% absolute_path(baseurl) %-->hpr_ogg.rss" />
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Speex RSS" href="<!--% absolute_path(baseurl) %-->hpr_spx.rss" />
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio MP3 RSS" href="<!--% absolute_path(baseurl) %-->hpr_mp3.rss" />
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Comments RSS" href="/comments_rss.php" />
<link rel="license" title="cc by 3.0" href="https://creativecommons.org/licenses/by-sa/3.0/" />
<link href="<!--% absolute_path(baseurl) %-->css/hpr.css" rel="stylesheet" />
@@ -39,10 +39,10 @@
<a href=""><img id="hprlogo" src="<!--% absolute_path(baseurl) %-->images/hpr_logo.png" alt=""></a>
<div id="hpr_banner">
<p id="accessible_menu">
<a href="sitemap.php">Site Map</a>
<a href="<!--% absolute_path(baseurl) %-->sitemap.html">Site Map</a>
- <a href="#maincontent">skip to main content</a>
</p>
<h1 id="sitename">Hacker <a href="comments_viewer.php">P</a>ublic <a href="/syndication.php">R</a>adio</h1>
<h1 id="sitename">Hacker <a href="https://www.hackerpublicradio.org/comments_viewer.php">P</a>ublic <a href="<!--% absolute_path(baseurl) %-->syndication.html">R</a>adio</h1>
<h2>Your ideas, projects, opinions - podcasted.</h2>
<h3>New episodes Monday through Friday.</h3>
</div>

View File

@@ -0,0 +1,5 @@
<!--% PROCESS 'shared-item.tpl.xml' %-->
<!--% PROCESS 'rss-query-hpr.tpl.xml' %-->
<!--% FOREACH episode IN feed_result %-->
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
<!--% END %-->

View File

@@ -0,0 +1,5 @@
<!--% PROCESS 'shared-item.tpl.xml' %-->
<!--% PROCESS 'rss-query-hpr_total.tpl.xml' %-->
<!--% FOREACH episode IN feed_result %-->
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
<!--% END %-->

View 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() %-->

View 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() %-->

57
templates/rss.tpl.xml Normal file
View File

@@ -0,0 +1,57 @@
<!--% USE date %-->
<!--% PROCESS 'shared-utils.tpl.html' %-->
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"
xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" >
<channel>
<title>Hacker Public Radio</title>
<link>https://www.hackerpublicradio.org/about.html</link>
<itunes:subtitle>A daily show hosted the community on topics that are of interest to hackers and hobbyists.</itunes:subtitle>
<description>Hacker Public Radio is an podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that are of interest to hackers and hobbyists.</description>
<language>en-us</language>
<itunes:category text="Technology">
<itunes:category text="Tech News"/>
</itunes:category>
<itunes:category text="Education">
<itunes:category text="Training"/>
</itunes:category>
<itunes:image href="https://www.hackerpublicradio.org/images/hpr_feed_itunes.png"/>
<itunes:explicit>yes</itunes:explicit>
<itunes:author>Hacker Public Radio</itunes:author>
<itunes:keywords>Community Radio, Tech Interviews, Linux, Open, Hobby, Software Freedom</itunes:keywords>
<copyright>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License</copyright>
<managingEditor>feedback@NOSPAM-hackerpublicradio.org (HPR Feedback)</managingEditor>
<!-- <author>feedback@NOSPAM-hackerpublicradio.org (HPR Feedback)</author> -->
<itunes:owner>
<itunes:name>HPR Volunteer</itunes:name>
<itunes:email>admin@hackerpublicradio.org</itunes:email>
</itunes:owner>
<webMaster>admin@hackerpublicradio.org (HPR Volunteer)</webMaster>
<generator>site-generator</generator>
<docs>http://www.rssboard.org/rss-specification</docs>
<ttl>43200</ttl>
<skipDays>
<day>Saturday</day>
<day>Sunday</day>
</skipDays>
<image>
<url>https://www.hackerpublicradio.org/images/hpr_feed_small.png</url>
<title>Hacker Public Radio</title>
<link>https://www.hackerpublicradio.org/about.php</link>
<description>The Hacker Public Radio Old Microphone Logo</description>
<height>164</height>
<width>144</width>
</image>
<googleplay:author>HPR Volunteer</googleplay:author>
<googleplay:description>Hacker Public Radio is an podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that are of interest to hackers and hobbyists.</googleplay:description>
<googleplay:email>admin@hackerpublicradio.org</googleplay:email>
<googleplay:image href="https://www.hackerpublicradio.org/images/hpr_feed_itunes.png"/>
<googleplay:category text="Technology"/>
<atom:link href="https://www.hackerpublicradio.org/<!--% filename %-->" rel="self" type="application/rss+xml" />
<pubDate><!--% format_feed_date(date.now) %--></pubDate>
<!--% INCLUDE $content %-->
</channel>
</rss>

View File

@@ -0,0 +1,23 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% MACRO display_item(episode, file_extension, audio_mime_type) BLOCK %-->
<!--% IF audio_mime_type == "" %-->
<!--% audio_mime_type = 'ogg' %-->
<!--% END %-->
<item>
<itunes:explicit><!--% display_explicit_feed(episode.explicit) %--></itunes:explicit>
<googleplay:explicit><!--% display_explicit_feed(episode.explicit) %--></googleplay:explicit>
<title>HPR<!--% zero_pad_left(episode.id) %-->: <!--% episode.title %--></title>
<author><!--% episode.email %--> (<!--% episode.host %-->)</author>
<googleplay:author><!--% episode.email %--> (<!--% episode.host %-->)</googleplay:author>
<itunes:author><!--% episode.email %--> (<!--% episode.host %-->)</itunes:author>
<googleplay:image href="https://www.hackerpublicradio.org/images/hpr_feed_itunes.png"/>
<link>https://www.hackerpublicradio.org/eps/hpr/<!--% zero_pad_left(episode.id) %-->/index.html</link>
<description><![CDATA[<!--% episode.notes %-->]]>
</description>
<itunes:summary><![CDATA[<!--% episode.notes %-->]]>
</itunes:summary>
<pubDate><!--% format_feed_date(episode.date) %--></pubDate>
<enclosure url="http://hackerpublicradio.org/eps/hpr<!--% zero_pad_left(episode.id) %-->.<!--% file_extension %-->" length="<!--% episode.duration * 1000 %-->" type="audio/<!--% audio_mime_type %-->"/>
<guid>http://hackerpublicradio.org/eps/hpr<!--% zero_pad_left(episode.id) %-->.<!--% file_extension %--></guid>
</item>
<!--% END %-->

View File

@@ -12,6 +12,15 @@
<!--% display_choice(is_explicit, 'Explicit', 'Clean') %-->
<!--% END %-->
<!--% MACRO display_explicit_feed(is_explicit) BLOCK %-->
<!--% display_choice(is_explicit, 'yes', 'no') %-->
<!--% END %-->
<!--% MACRO format_feed_date(date_to_format) BLOCK %-->
<!--% USE feed_date = date(format = '%a, %e %b %Y 00:00:00 +0000', gmt=1) %-->
<!--% feed_date.format(date_to_format) %-->
<!--% END %-->
<!--% MACRO absolute_path(baseurl) BLOCK %-->
<!--% IF baseurl %-->./<!--% ELSE %-->/<!--% END %-->
<!--% END %-->