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.
#
# OPTIONS: None
# REQUIREMENTS: Needs modules Getopt::Long, Data::ICal, Date::Parse and
# Date::Calc
# REQUIREMENTS: Needs modules Getopt::Long, Data::ICal, Date::ICal,
# Date::Parse and Date::Calc
# BUGS: ---
# NOTES: Based on a script distributed with the HPR episode "iCalendar
# Hacking"
# AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com
# LICENCE: Copyright (c) year 2012-2024 Dave Morriss
# VERSION: 0.2.3
# LICENCE: Copyright (c) year 2012-2025 Dave Morriss
# VERSION: 0.2.4
# 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)
#
our $VERSION = '0.2.3';
our $VERSION = '0.2.4';
#
# Script name
@@ -91,6 +91,7 @@ usage() if ( $options{'help'} );
my $count = ( defined( $options{count} ) ? $options{count} : $DEF_COUNT );
my $reminder = ( defined( $options{reminder} ) ? $options{reminder} : 0 );
my $force = ( defined( $options{force} ) ? $options{force} : 0 );
my $outfile = $options{output};
#my $reminder_summary = ( defined( $options{summary} ) ? $options{summary} :
# $DEF_SUMMARY );
@@ -120,6 +121,19 @@ else {
@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
#
@@ -291,7 +305,7 @@ if ($reminder) {
#
# Print the result
#
print $calendar->as_string;
print $outfh $calendar->as_string;
exit;
@@ -440,7 +454,7 @@ sub ISO8601_Date {
#===============================================================================
sub usage {
print STDERR <<EOD;
Usage: $PROG [options] [FILE...]
Usage: $PROG [options]
$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
-[no]force Allow a -from=DATE date before today; default not
-[no]reminder Add a reminder TODO item; default no
-output=FILE Name of file to write to; optional, writes to STDOUT
if omitted
EOD
# -summary=TEXT Alternative text for the reminder (default 'Send out
@@ -472,7 +488,8 @@ EOD
sub Options {
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" );
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 -%]
[%# 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 -%]
[%- USE date -%]
[% DEFAULT shownotes = ""
@@ -10,248 +10,99 @@
<head>
<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="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="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">
<!-- Internal CSS -->
<style type="text/css">
article, aside, dialog, figure, footer, header, hgroup, menu, nav, section {
display: block;
}
#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="shortcut icon" href="/hpr.ico" >
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Opus RSS" href="/hpr_opus_rss.php" />
<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 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 href="./css/hpr.css" rel="stylesheet" />
<link href="/css/hpr.css" rel="stylesheet" />
<!--[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>
<![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>
<body id="give">
<div id="container" class="shadow">
<header>
<a href="./"><img id="hprlogo" src="./images/hpr_logo.png" alt="hprlogo"></a>
<div id="hpr_banner">
<p id="accessible_menu">
<a href="./sitemap.html">Site Map</a>
- <a href="#maincontent">skip to main content</a>
</p>
<h1 id="sitename">
<a href="./correspondents/index.html">H</a>acker
<a href="./comments_viewer.html">P</a>ublic
<a href="./syndication.html">R</a>adio
</h1>
<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>
<hr />
<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>
<body>
<div id="top_navigation" class="sr-only">
<nav id="accessible_menu">
<menu>
<li><a href="#main_content">Skip to Main Content</a></li>
<li><a href="/sitemap.html#main_content">Site Map</a></li>
</menu>
</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>
</hgroup>
<hgroup id="tag_line">
<h2 id="tag1">The Community Podcast</h2>
<p id="tag2">Sharing your ideas, projects, opinions since 2005</p>
<p id="tag3">New episodes every weekday </p>
</hgroup>
</div>
</header>
<main id="maincontent">
<main id="main_content" role="main">
<article>
<header>
<h1>hpr[% episode %] :: HPR Community News for [% month_year %]</h1>
<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>
<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>,
<a href="https://archive.org/download/hpr[% episode %]/hpr[% episode %].spx" aria-label="Download hpr[% episode %] as">spx</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>
<label>Comments: </label><a href="/eps/[% episode %]/index.html#comments"
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>,
<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">
<source src="https://archive.org/download/hpr[% episode %]/hpr[% 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 %].ogg" type="audio/ogg" >
<source src="https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/[% episode %]/[% episode %].mp3" type="audio/mpeg" >
</audio><br>
Duration: 00:00:00</p></p>
<h3> <label>Part of the series:</label> <a href="./series/0047.html">HPR Community News</a>.</h3>
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
<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>
</header>
<div>
[% INCLUDE $shownotes -%]
</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">
<h1 class="thick_bar"><span style="padding-left: 1em;">More Information...</span></h1>
<div id="more_info">
<nav class="column">
<h2>Ancestry</h2>
<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>
</article>
</main>
<footer role="contentinfo">
<hr class="no-css">
<div id="copyright">
<p>
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.</p>
<p>
<span>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>
<span>
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>
<hr />
</div><!-- copyright -->
<hr />
</span>
</div>
<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>
</div>
</footer>
</div>
<!-- shadow -->
</body>
</html>
[%#
vim: syntax=html:ts=8:sw=4:ai:et:tw=78:fo=tcqn:fdm=marker:com+=fb\:-
-%]