Adjustments for new website

Community_News/make_meeting: added a new -output=FILE option

Community_News/shownote_template.tpl: removed reference to previous name
    shownote_template13.tpl

Community_News/shownotes_container.tpl: rewrote to use the new website
    design. Also removed some irrelevant parts like the navigation links
    and the comment form.
This commit is contained in:
Dave Morriss
2025-10-26 18:35:11 +00:00
parent 01c5ed1495
commit 00172063de
3 changed files with 95 additions and 227 deletions

View File

@@ -10,16 +10,16 @@
# recurrence description is not adequate. # recurrence description is not adequate.
# #
# OPTIONS: None # OPTIONS: None
# REQUIREMENTS: Needs modules Getopt::Long, Data::ICal, Date::Parse and # REQUIREMENTS: Needs modules Getopt::Long, Data::ICal, Date::ICal,
# Date::Calc # Date::Parse and Date::Calc
# BUGS: --- # BUGS: ---
# NOTES: Based on a script distributed with the HPR episode "iCalendar # NOTES: Based on a script distributed with the HPR episode "iCalendar
# Hacking" # Hacking"
# AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com # AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com
# LICENCE: Copyright (c) year 2012-2024 Dave Morriss # LICENCE: Copyright (c) year 2012-2025 Dave Morriss
# VERSION: 0.2.3 # VERSION: 0.2.4
# CREATED: 2012-10-13 15:34:01 # CREATED: 2012-10-13 15:34:01
# REVISION: 2024-10-28 13:17:44 # REVISION: 2025-10-23 16:51:48
# #
#=============================================================================== #===============================================================================
@@ -42,7 +42,7 @@ use Date::ICal;
# #
# Version number (manually incremented) # Version number (manually incremented)
# #
our $VERSION = '0.2.3'; our $VERSION = '0.2.4';
# #
# Script name # Script name
@@ -88,9 +88,10 @@ usage() if ( $options{'help'} );
# #
# Collect options # Collect options
# #
my $count = ( defined( $options{count} ) ? $options{count} : $DEF_COUNT ); my $count = ( defined( $options{count} ) ? $options{count} : $DEF_COUNT );
my $reminder = ( defined( $options{reminder} ) ? $options{reminder} : 0 ); my $reminder = ( defined( $options{reminder} ) ? $options{reminder} : 0 );
my $force = ( defined( $options{force} ) ? $options{force} : 0 ); my $force = ( defined( $options{force} ) ? $options{force} : 0 );
my $outfile = $options{output};
#my $reminder_summary = ( defined( $options{summary} ) ? $options{summary} : #my $reminder_summary = ( defined( $options{summary} ) ? $options{summary} :
# $DEF_SUMMARY ); # $DEF_SUMMARY );
@@ -120,6 +121,19 @@ else {
@startdate = Today(); @startdate = Today();
} }
#
# Open the output file (or STDOUT)
#
my $outfh;
if ($outfile) {
open( $outfh, ">:encoding(UTF-8)", $outfile )
or die "Unable to open $outfile for writing: $!\n";
}
else {
open( $outfh, ">&", \*STDOUT )
or die "Unable to initialise for writing: $!\n";
}
# #
# Date and time values # Date and time values
# #
@@ -291,7 +305,7 @@ if ($reminder) {
# #
# Print the result # Print the result
# #
print $calendar->as_string; print $outfh $calendar->as_string;
exit; exit;
@@ -440,7 +454,7 @@ sub ISO8601_Date {
#=============================================================================== #===============================================================================
sub usage { sub usage {
print STDERR <<EOD; print STDERR <<EOD;
Usage: $PROG [options] [FILE...] Usage: $PROG [options]
$PROG v$VERSION $PROG v$VERSION
@@ -452,6 +466,8 @@ adds reminders in the form of TODO items in relation to each meeting.
-count=N Number of entries; default 12 -count=N Number of entries; default 12
-[no]force Allow a -from=DATE date before today; default not -[no]force Allow a -from=DATE date before today; default not
-[no]reminder Add a reminder TODO item; default no -[no]reminder Add a reminder TODO item; default no
-output=FILE Name of file to write to; optional, writes to STDOUT
if omitted
EOD EOD
# -summary=TEXT Alternative text for the reminder (default 'Send out # -summary=TEXT Alternative text for the reminder (default 'Send out
@@ -472,7 +488,8 @@ EOD
sub Options { sub Options {
my ($optref) = @_; my ($optref) = @_;
my @options = ( "help", "from=s", "count=i", "force!", "reminder!"); my @options
= ( "help", "from=s", "count=i", "force!", "reminder!", "output=s" );
# "summary|rs=s" ); # "summary|rs=s" );
if ( !GetOptions( $optref, @options ) ) { if ( !GetOptions( $optref, @options ) ) {

View File

@@ -1,4 +1,4 @@
[%# shownote_template13.tpl Updated: 2025-08-20 -%] [%# shownote_template.tpl Updated: 2025-10-22 -%]
[%# -------------------------------------------------------------------------------- -%] [%# -------------------------------------------------------------------------------- -%]
[%# Makes either an HTML snippet for insertion into the database or a full -%] [%# Makes either an HTML snippet for insertion into the database or a full -%]
[%# listing with full comments for circulation to the hosts recording the episode -%] [%# listing with full comments for circulation to the hosts recording the episode -%]

View File

@@ -1,4 +1,4 @@
[%# /home/cendjm/HPR/Community_News/shownotes_container.tpl 2024-06-22 -%] [%# /home/cendjm/HPR/Community_News/shownotes_container.tpl 2025-10-26 -%]
[%# Container to display Community News shownotes as an HTML page -%] [%# Container to display Community News shownotes as an HTML page -%]
[%- USE date -%] [%- USE date -%]
[% DEFAULT shownotes = "" [% DEFAULT shownotes = ""
@@ -8,250 +8,101 @@
<!DOCTYPE HTML> <!DOCTYPE HTML>
<html lang="en"> <html lang="en">
<head> <head>
<title>Hacker Public Radio ~ The Technology Community Podcast</title> <base href="https://hackerpublicradio.org/"> <meta charset="utf-8" /> <title>Hacker Public Radio ~ The Technology Community Podcast</title> <base href="https://hackerpublicradio.org/"> <meta charset="utf-8" />
<meta http-equiv="X-Clacks-Overhead" content="GNU Terry Pratchett" /> <meta http-equiv="X-Clacks-Overhead" content="GNU Terry Pratchett" />
<meta http-equiv="last-modified" content="Sat, 22 Jun 2024 16:04:21 +0000"> <meta http-equiv="last-modified" content="Wed, 22 Oct 2025 09:32:36 +0000">
<meta name="keywords" content="Technology, Tech News, Education, Training" /> <meta name="keywords" content="Technology, Tech News, Education, Training" />
<meta name="description" content="Hacker Public Radio is a podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that is of interest to hackers and hobbyists." /> <meta name="description" content="Hacker Public Radio is a podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that is of interest to hackers and hobbyists." />
<meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="/hpr.ico" >
<!-- Internal CSS --> <link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Opus RSS" href="/hpr_opus_rss.php" />
<style type="text/css"> <link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Ogg Vorbis RSS" href="/hpr_ogg_rss.php" />
article, aside, dialog, figure, footer, header, hgroup, menu, nav, section { <link rel="alternate" type="application/rss+xml" title="Hacker Public Radio MP3 RSS" href="/hpr_mp3_rss.php" />
display: block; <link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Comments RSS" href="/comments.rss" />
}
#list1, #list2, #list3 {
display:none;
}
</style>
<link rel="shortcut icon" href="https://hackerpublicradio.org/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 Comments RSS" href="./comments.rss" />
<link rel="license" title="CC BY-SA 4.0" href="https://creativecommons.org/licenses/by-sa/4.0/" /> <link rel="license" title="CC BY-SA 4.0" href="https://creativecommons.org/licenses/by-sa/4.0/" />
<link href="./css/hpr.css" rel="stylesheet" /> <link href="/css/hpr.css" rel="stylesheet" />
<!--[if IE]> <!--[if IE]>
<link rel="stylesheet" href="./css/hpr.css" media="screen" type="text/css" /> <link rel="stylesheet" href="/css/hpr.css" media="screen" type="text/css" />
<script src="/JavaScript/html5.js"></script> <script src="/JavaScript/html5.js"></script>
<![endif]--> <![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.5, user-scalable=yes"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"/>
</head> </head>
<body id="give"> <body>
<div id="container" class="shadow"> <div id="top_navigation" class="sr-only">
<header> <nav id="accessible_menu">
<a href="./"><img id="hprlogo" src="./images/hpr_logo.png" alt="hprlogo"></a> <menu>
<div id="hpr_banner"> <li><a href="#main_content">Skip to Main Content</a></li>
<p id="accessible_menu"> <li><a href="/sitemap.html#main_content">Site Map</a></li>
<a href="./sitemap.html">Site Map</a> </menu>
- <a href="#maincontent">skip to main content</a> </nav>
<hr class="no-css">
</div>
<header role="banner">
<div class="bounding-box">
<hgroup id="title">
<h1 id="site_acronym"><a href="/index.html">HPR</a></h1>
<p id="site_name">
<a href="/correspondents/index.html">H</a>acker
<a href="/comments_viewer.html">P</a>ublic
<a href="/syndication.html">R</a>adio
</p> </p>
<h1 id="sitename"> </hgroup>
<a href="./correspondents/index.html">H</a>acker <hgroup id="tag_line">
<a href="./comments_viewer.html">P</a>ublic <h2 id="tag1">The Community Podcast</h2>
<a href="./syndication.html">R</a>adio <p id="tag2">Sharing your ideas, projects, opinions since 2005</p>
</h1> <p id="tag3">New episodes every weekday </p>
<h2>Your ideas, projects, opinions - podcasted.</h2>
<h3>New episodes every weekday Monday through Friday.<br />
<em><small>Temporary version of the Community News notes for hosts to use when recording<br />
Updated on [% date.format(date.now,'%Y-%m-%d %H:%M:%S') %]</small></em></h3>
</div> </hgroup>
<hr /> </div>
<nav class="menu" role="navigation"> <ul>
<li><a href="https://hub.hackerpublicradio.org/"><strong>⇧Upload⇧</strong></a></li>
<li><a href="./index.html"><strong>Home</strong></a></li>
<li><a href="./syndication.html"><strong>Get Shows »</strong></a></li>
<li><a href="./eps/index.html">Full Episode Guide</a></li>
<li><a href="./series/index.html">In-Depth Series</a></li>
<li><a href="./download.html">Download Options</a></li>
</ul>
</nav>
</header> </header>
<main id="maincontent"> <main id="main_content" role="main">
<article> <article>
<header> <header>
<h1>hpr[% episode %] :: HPR Community News for [% month_year %]</h1> <h1>hpr[% episode %] :: HPR Community News for [% month_year %]</h1>
<h3>HPR Volunteers talk about shows released and comments posted in [% month_year %]</h3> <h3>HPR Volunteers talk about shows released and comments posted in [% month_year %]</h3>
<p class="meta"><small><a href="./eps/hpr0001/index.html" rel="first">&lt;&lt; First</a>, <a href="./eps/hpr4190/index.html" rel="previous">&lt; Previous</a>, Next <span>&gt;</span> <a href="./eps/hpr4145/index.html" rel="last">Latest &gt;&gt;</a></small> </p>
<p><a href="./correspondents/0159.html"><img src="./images/hosts/159.png" height="80" width="80" alt="Thumbnail of HPR Volunteers" /></a><br>Hosted by <a href="./correspondents/0159.html">HPR Volunteers</a> on <span>2024-09-02</span> is flagged as <span>Explicit</span> and is released under a <span>CC-BY-SA license</span>. <br> <span><label>Tags:</label> <em> <a href="./tags.html#community news">Community News</a>.</em> <p><em><small>Temporary version of the Community News notes for hosts to use when recording<br />
Updated on [% date.format(date.now,'%Y-%m-%d %H:%M:%S') %]</small></em></p>
<p><a href="/correspondents/0159.html"><img src="/images/hosts/159.png" height="80" width="80" alt="Thumbnail of HPR Volunteers" /></a><br>Hosted by <a href="/correspondents/0159.html">HPR Volunteers</a> on <span>Monday, 2025-10-06</span> is flagged as <span>Explicit</span> and is released under a <span>CC-BY-SA license</span>. <br> <span><label>Tags:</label> <em> <a href="/tags.html#community_news">Community News</a>.</em>
</span> </span>
<label>Comments: </label><a href="./eps/hpr[% episode %]/index.html#comments" aria-label="Comments for hpr[% episode %]">(Be the first)</a>. <br>
The show is available on the Internet Archive at: <a href="https://archive.org/details/hpr[% episode %]">https://archive.org/details/hpr[% episode %]</a><p> Listen in <a href="https://archive.org/download/hpr[% episode %]/hpr[% episode %].ogg" aria-label="Download hpr[% episode %] as">ogg</a>, <label>Comments: </label><a href="/eps/[% episode %]/index.html#comments"
<a href="https://archive.org/download/hpr[% episode %]/hpr[% episode %].spx" aria-label="Download hpr[% episode %] as">spx</a>, aria-label="Comments for [% episode %]">(Be the first)</a>. <br><p> Listen in <a href="https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/[% episode %]/[% episode %].ogg" aria-label="Download [% episode %] as">ogg</a>,
or <a href="https://archive.org/download/hpr[% episode %]/hpr[% episode %].mp3" aria-label="Download hpr[% episode %] as">mp3</a> format. Play now:<br> <a href="https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/[% episode %]/[% episode %].opus" aria-label="Download [% episode %] as">opus</a>,
or <a href="https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/[% episode %]/[% episode %].mp3" aria-label="Download [% episode %] as">mp3</a> format. Play now:<br>
<audio controls preload="none"> <audio controls preload="none">
<source src="https://archive.org/download/hpr[% episode %]/hpr[% episode %].ogg" type="audio/ogg" > <source src="https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/[% episode %]/[% episode %].ogg" type="audio/ogg" >
<source src="https://archive.org/download/hpr[% episode %]/hpr[% episode %].mp3" type="audio/mpeg" > <source src="https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/[% episode %]/[% episode %].mp3" type="audio/mpeg" >
</audio><br> </audio><br>
Duration: 00:00:00</p></p> Duration: 01:23:13<br>Download the <a href="https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/[% episode %]/[% episode %].txt" aria-label="Download [% episode %]">transcription</a></li> and
<h3> <label>Part of the series:</label> <a href="./series/0047.html">HPR Community News</a>.</h3> <a href="https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/[% episode %]/[% episode %].srt" aria-label="Download [% episode %]">subtitles</a>.</p></p>
<h3> <label>Part of the series:</label> <a href="/series/0047.html">HPR Community News</a>.</h3>
<p><em>A monthly look at what has been going on in the HPR community. This is a regular show scheduled for the first Monday of the month.</em></p> <p><em>A monthly look at what has been going on in the HPR community. This is a regular show scheduled for the first Monday of the month.</em></p>
</header> </header>
<div> <div>
[% INCLUDE $shownotes -%] [% INCLUDE $shownotes -%]
</div> </div>
<footer><h2>Show Transcript</h2>
<p>Automatically generated using <a href="https://github.com/openai/whisper">whisper</a>
<pre><code>whisper --model tiny --language en hpr[% episode %].wav</code></pre></p>
<p>
You can save these subtitle files to the same location as the HPR Episode, and they will automatically show in players like <a href="https://mpv.io/">mpv</a>, <a href="https://www.videolan.org/vlc/">vlc</a>. Some players allow you to specify the subtitle file location.
</p>
<ul>
<li>Text: <a href="https://archive.org/download/hpr[% episode %]/hpr[% episode %]/hpr[% episode %].txt">hpr[% episode %].txt</a></li>
<li><a href="https://en.wikipedia.org/wiki/WebVTT">WebVTT</a>: <a href="https://archive.org/download/hpr[% episode %]/hpr[% episode %]/hpr[% episode %].vtt">hpr[% episode %].vtt</a></li>
<li><a href="https://en.wikipedia.org/wiki/SubRip">SubRip</a>: <a href="https://archive.org/download/hpr[% episode %]/hpr[% episode %]/hpr[% episode %].srt">hpr[% episode %].srt</a></li>
</ul><p><small><a href="./eps/hpr0001/index.html" rel="first">&lt;&lt; First</a>, <a href="./eps/hpr4190/index.html" rel="previous">&lt; Previous</a>, Next <span>&gt;</span> <a href="./eps/hpr4145/index.html" rel="last">Latest &gt;&gt;</a></small></p>
</footer></article><hr />
<h1>Comments</h1>
<p id="comments">
Subscribe to the comments <a href="./comments.rss">RSS</a> feed.
</p>
<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="https://hackerpublicradio.org/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="https://hackerpublicradio.org/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="https://hub.hackerpublicradio.org/comment_confirm.php">
<fieldset>
<legend>Provide feedback</legend>
<table>
<tr>
<td>Your Name/Handle:</td>
<td><input required type="text" name="comment_author_name" size="40" maxlength="40" placeholder="Enter your name" ></td>
</tr>
<tr>
<td>Title:</td>
<td><input required type="text" name="comment_title" size="50" maxlength="100" placeholder="What is your comment about?"></td>
</tr>
<tr>
<td>Comment:</td>
<td><textarea required name="comment_text" maxlength="2000" rows="10" cols="50" placeholder="Place the comment here."></textarea></td>
</tr>
<tr>
<td>Anti Spam Question:</td>
<td>
What does the letter <strong>P</strong> in <em>HPR</em> stand for? <br />
<input required type="text" name="anti_spam_question" size="50" maxlength="100" placeholder="Type out what the P in HPR stands for."></td>
</tr><!-- . -->
<tr>
<td>Are you a spammer?</td>
<td>
<input required checked="checked" type="radio" name="spammer" id="spammer_yes" value="Yes">
<label for="spammer_yes">Yes</label>
<input required type="radio" name="spammer" id="spammer_no" value="No">
<label for="spammer_no">No</label>
</td>
</tr>
<!-- . -->
<tr>
<td>What is the <strong>HOST_ID</strong> for the host of this show?</td>
<td>
<input required type="text" name="hostid" size="20" maxlength="5" placeholder="Type the host number"></td>
<td>
<!-- . -->
<tr>
<td>What does HPR mean to you?</td>
<td><textarea required name="justification" maxlength="200" rows="4" cols="50" placeholder="Convince us you are part of the community."></textarea></td>
</tr> <tr><td>
<input type="hidden" name="eps_id" value="[% episode %]">
</td></tr>
</table>
<input type="submit" value="Next">
</fieldset>
</form>
</main>
<footer id="footer_page"> </article>
<h1 class="thick_bar"><span style="padding-left: 1em;">More Information...</span></h1>
<div id="more_info"> </main>
<nav class="column"> <footer role="contentinfo">
<h2>Ancestry</h2> <hr class="no-css">
<ul>
<li><a href="http://audio.textfiles.com/shows/radiofreekamerica/">Radio Freek America</a></li>
<li><a href="http://audio.textfiles.com/shows/binrev/">BinRev Radio</a></li>
<li><a href="http://audio.textfiles.com/shows/infonomicon/">Infonomicon</a></li>
<li><a href="http://audio.textfiles.com/shows/twat/">Today With a Techie</a></li>
</ul>
</nav>
<nav class="column">
<h2>Social</h2>
<ul>
<li><a href="https://hackerpublicradio.org/maillist" >Mailing list</a></li>
<li><a href="https://botsin.space/@hpr" >Mastodon</a></li>
<li><a href="https://matrix.to/#/#hpr:matrix.org" >Matrix</a></li>
<li><a href="mumble://chatter.skyehaven.net:64738/Hacker%20Public%20Radio?version=1.2.0" >Mumble</a></li>
<li><a href="https://web.libera.chat/gamja/?channels=oggcastplanet" target="_blank">#oggcastplanet</a></li>
<li><a href="https://t.me/+6fEhQrf5IEc4ZGU8">Telegram</a></li>
<li><a href="https://twitter.com/HPR">Twitter.com</a></li>
<li><a href="https://www.facebook.com/HenryPartickReilly" target="_blank">Facebook</a></li>
<li><a href="https://www.linkedin.com/company/hackerpublicradio/" target="_blank">Linked-In</a></li>
</ul>
</nav>
<nav class="column">
<h2>Unaffiliates</h2>
<ul>
<li><a href="https://archive.org/details/hackerpublicradio">Archive.org</a></li>
<li><a href="https://music.amazon.fr/podcasts/9d9e6211-ff78-4501-93b6-6a9e560c4dbd/hacker-public-radio">Amazon Music</a></li>
<li><a href="https://podcasts.google.com/feed/aHR0cDovL2hhY2tlcnB1YmxpY3JhZGlvLm9yZy9ocHJfcnNzLnBocA">Google Podcasts</a></li>
<li><a href="https://www.iheart.com/podcast/256-hacker-public-radio-30994513/" target="_blank">iHeart Radio</a></li>
<li><a href="https://podcasts.apple.com/us/podcast/hacker-public-radio/id281699640">iTunes</a></li>
<li><a href="https://www.listennotes.com/de/podcasts/hacker-public-radio-hacker-public-radio-mNH-jsI7LcJ/">Listen Notes</a></li>
<li><a href="https://www.mixcloud.com/hackerpublicradio/">MixCloud</a></li>
<li><a href="https://player.fm/series/hacker-public-radio">PlayerFM</a></li>
<li><a href="https://www.podchaser.com/podcasts/hacker-public-radio-76781">Podchaser</a></li>
<li><a href="https://nl.radio.net/podcast/hacker-public-radio">Radio.net</a></li>
<li><a href="https://open.spotify.com/show/7e2hYcnHj9vKgUzsIOf4r3">Spotify</a></li>
<li><a href="https://toppodcast.com/podcast_feeds/hacker-public-radio/">Top Podcasts</a></li>
</ul>
</nav>
<nav class="column">
<h2>Commons</h2>
<ul>
<li><a href="https://freeculturepodcasts.org/">Free Culture Podcasts</a></li>
<li><a href="https://archive.org/details/hackerpublicradio">archive.org</a></li>
<li><a href="https://repo.anhonesthost.net/explore/repos" >HPR Source Code</a></li>
<li><a href="https://cchits.net/">cchits.net</a></li>
<li><a href="https://freesound.org/">freesound.org</a></li>
<li><a href="https://librivox.org/">librivox.org</a></li>
<li><a href="https://openclipart.org/">openclipart.org</a></li>
<li><a href="https://openfontlibrary.org/">openfontlibrary.org</a></li>
<li><a href="https://www.openrouteservice.org/">openrouteservice.org/</a></li>
<li><a href="https://pixabay.com/">pixabay.com/</a></li>
</ul>
</nav>
<nav class="column">
<h2>Patrons</h2>
<ul>
<li><a href="https://anhonesthost.com/hosting/shared-hosting">AnHonestHost.com</a></li>
<li><a href="https://archive.org/donate/">Archive.org</a></li>
<li><a href="https://rsync.net/">rsync.net</a></li>
</ul>
</nav>
</div><!-- more_info -->
<h1 class="thick_bar"><span style="padding-left: 1em;">Copyright Information</span></h1>
<div id="copyright"> <div id="copyright">
<p> <span>Unless otherwise stated, our shows are released under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">
Unless otherwise stated, our shows are released under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"> Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</a> license.</span>
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</a> license.</p> <span>
<p>
The <span property="dct:title">HPR Website Design</span> is released to the <a rel="license" href="https://creativecommons.org/publicdomain/mark/1.0/">Public Domain</a>. The <span property="dct:title">HPR Website Design</span> is released to the <a rel="license" href="https://creativecommons.org/publicdomain/mark/1.0/">Public Domain</a>.
</p> </span>
<hr /> </div>
</div><!-- copyright --> <div id="generated_by">This page was <a href="https://repo.anhonesthost.net/HPR/hpr_generator">generated</a> by <a href="mailto:robot.nospam@nospam.hackerpublicradio.org">The HPR Robot</a> at <time dateTime="2025-10-22T09:32:36Z">Wed, 22 Oct 2025 09:32:36 +0000</time></em>
<hr /> </div>
</footer> </footer>
</div> </body>
<!-- shadow --> </html>
[%# [%#
vim: syntax=html:ts=8:sw=4:ai:et:tw=78:fo=tcqn:fdm=marker:com+=fb\:- vim: syntax=html:ts=8:sw=4:ai:et:tw=78:fo=tcqn:fdm=marker:com+=fb\:-
-%] -%]