27 Commits

Author SHA1 Message Date
3662ebd0aa Code formatting 2024-09-09 21:36:36 -04:00
c64ad492c8 Limit correspondent page episode count to released episodes
Fix for rho_n/hpr_generator#188
2024-09-08 12:23:45 -04:00
Ken Fallon
92dce90753 Trixter avatar 2024-08-12 13:23:12 +00:00
Ken Fallon
65e4e1af5e Trollercoaster avatar 2024-08-11 16:10:44 +00:00
Ken Fallon
b5384408db Upload files to "public_html/images/hosts" 2024-08-07 09:21:46 +00:00
Ken Fallon
1a84becd8d Upload files to "public_html/images/hosts" 2024-08-07 09:20:42 +00:00
Ken Fallon
d74c23bace gemlog avatar 2024-08-07 09:18:33 +00:00
Ken Fallon
f1817e6820 Update templates/content-episode.tpl.html
Fix for 

HPR/hpr_hub#49
rho_n/hpr_generator#202
2024-07-17 19:21:05 +00:00
Ken Fallon
493bae282b Update README.md 2024-06-21 15:43:57 +00:00
Ken Fallon
dbc557d4c5 Changed the reserve to one week
This is because the IA is slow in processing the uploads resulting from DDOS attacks.
2024-06-11 16:51:31 +00:00
Ken Fallon
2099f0e130 Clarification of the reserve queue 2024-06-11 16:21:24 +00:00
Ken Fallon
29c9c827a4 Clarified the scheduling guidelines 2024-06-11 15:51:03 +00:00
Ken Fallon
c72c813b02 Merge pull request 'Fixed relative link to include the episode number, not just the domain root.' (#200) from kdmurrayhpr/hpr_generator:main into main
Reviewed-on: rho_n/hpr_generator#200
2024-06-04 20:03:30 +00:00
kdmurrayhpr
966a94647d Merge branch 'main' into main 2024-06-04 19:51:56 +00:00
e090bf8498 Fixed relative link to include the episode number, not just the domain root. 2024-06-04 12:50:23 -07:00
Ken Fallon
4d1d4c8c1d Merge pull request 'Added local anchor links for each individual comment' (#199) from kdmurrayhpr/hpr_generator:main into main
Reviewed-on: rho_n/hpr_generator#199
2024-06-04 19:29:36 +00:00
99aee89698 Merge branch 'kdmurrayhpr-main' 2024-06-04 10:37:36 -07:00
kdmurrayhpr
f6f2c01202 Merge branch 'main' into main 2024-06-04 17:36:41 +00:00
797039d182 Added local anchor links for each individual comment 2024-06-04 10:32:37 -07:00
Ken Fallon
93f22fb266 Merge pull request 'Changed Show summary to display Full Show name for Today with a Techie' (#198) from kdmurrayhpr/hpr_generator:main into main
Reviewed-on: rho_n/hpr_generator#198
2024-06-02 09:37:49 +00:00
kdmurrayhpr
eb0b752841 Merge branch 'main' into main 2024-06-01 00:31:37 +00:00
9766ec2c36 2024-05-30_18-53-17Z_Thursday Added link to the stats 2024-05-30 20:53:17 +02:00
392f9ba9e5 2024-05-30_15-08-16Z_Thursday Corrected Today With a Techie references 2024-05-30 17:08:16 +02:00
41979786eb 2024-05-28_18-28-21Z_Tuesday fixed ttl to 12h 2024-05-28 20:28:21 +02:00
Ken Fallon
a61f2a5222 Merge pull request 'Setting up static RSS feeds' (#196) from 140_2_Convert_the_RSS_feeds_from_php_to_the_static_site into main
Reviewed-on: rho_n/hpr_generator#196
2024-05-23 19:38:58 +00:00
Dave Morriss
ccba560ee3 Setting up static RSS feeds
site-generator: Changed the routine used to generate entities in
    'HTML::Entities'; see filter function 'xml_entity'

site.cfg: Added root variable 'http_baseurl' which defines the base URL
    using 'http'

templates/rss.tpl.xml: RSS template defining the channel and inserting
    the 'item' definitions; adjusted to be in step with the PHP version.

templates/shared-item.tpl.xml: RSS template used for each 'item' in an
    RSS feed; contains a call to 'HTML::Strip' which turns off the
    addition of spaces when removing tags; adjusted to be in step with
    the PHP version.

templates/shared-utils.tpl.html: Macro collection used by other
    templates; addition of temporay macro 'display_explicit_feed_2'
    which generates 'Yes/No' strings to be in step with the PHP version.
2024-05-23 20:14:42 +01:00
Ken Fallon
a2c69ec898 Merge pull request 'Replaced links to defunct websites with Wayback Machine links' (#193) from kdmurrayhpr/hpr_generator:main into main
Reviewed-on: rho_n/hpr_generator#193
2024-05-19 09:26:11 +00:00
18 changed files with 78 additions and 44 deletions

View File

@@ -72,6 +72,8 @@ and add the label "**Feature Request**".
## Authors and acknowledgment
* Roan "Rho`n" Horning
* Dave Morriss
* gordons
* Ken Fallon
* norrist

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -67,18 +67,21 @@ Perl Template Toolkit.
- GRANT EXECUTE ON `hpr_hpr`.* TO 'hpr-generator'@'localhost';
Install the needed Perl modules using preferred method (distribution packages, CPAN, etc.)
* GetOpt
* Pod::Usage
* Config::Std
* Template
* Template::Plugin::File
* Template::Plugin::DBI
* Template::Plugin::HTML::Strip
* DBI
* Tie::DBI
* DBD::SQLite or DBD:mysql
* DBI
* Data::Dumper
* Date::Calc
* GetOpt::Long
* HTML::Entities
* Pod::Usage
* Template
* Template::Plugin::DBI
* Template::Plugin::Date
* Template::Plugin::File
* Template::Plugin::HTML::Strip
* Text::CSV_XS
* Tie::DBI
=head1 AUTHOR
@@ -115,7 +118,8 @@ use Getopt::Long qw(:config auto_help);
use Pod::Usage;
use Config::Std;
use Text::CSV_XS;
use HTML::Entities qw(encode_entities_numeric);
#use HTML::Entities qw(encode_entities_numeric);
use HTML::Entities qw(encode_entities);
use Date::Calc;
use DBI;
use DBD::SQLite;
@@ -425,7 +429,8 @@ sub parse_csv {
sub xml_entity {
my ($text) = @_;
encode_entities_numeric( $text );
# encode_entities_numeric( $text );
encode_entities( $text );
return $text;
}

View File

@@ -29,6 +29,7 @@ content: page.tpl.html
#baseurl: OPTIONAL [i.e. file://<full path to local website directory>]
#baseurl: file:///home/roan/Development/hpr/website/hpr_generator/public_html/
baseurl: https://hackerpublicradio.org/
http_baseurl: http://hackerpublicradio.org/
hub_baseurl: https://hub.hackerpublicradio.org/
media_baseurl: https://archive.org/download/hpr$eps_id/
generator_name: The HPR Robot

View File

@@ -40,7 +40,7 @@
<p>Hacker Public Radio (HPR) is an Internet Radio show (podcast) that releases shows every weekday Monday through Friday.
HPR has a long lineage going back to <a href="https://web.archive.org/web/20230323053905/http://www.oldskoolphreak.com/" >Radio FreeK America</a>,
<a href="https://web.archive.org/web/20220123174618/https://www.binrev.com/forums/" >Binary Revolution Radio</a> &amp; <a href="https://web.archive.org/web/20150208172826/http://www.nomicon.info/" >Infonomicon</a>,
and it is a direct continuation of <a href="<!--% absolute_url(baseurl,'twat.html') %-->" >Twatech</a> radio.
and it is a rename of <a href="<!--% absolute_url(baseurl,'twat.html') %-->" >Today With a Techie</a> radio.
Please listen to StankDawg&#39;s &quot;<a href="<!--% media_path(1, 'hpr', 'mp3', baseurl, media_baseurl) %-->" >
Introduction to HPR</a>&quot; for more information.</p>
@@ -582,9 +582,10 @@
<h1 id="reserve_queue">Feed the reserve queue<a href="<!--% absolute_url(baseurl,'about.html#reserve_queue') %-->">.</a></h1>
<p>
The reserve 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 reserve queue is intended only to be used in the cases where there is still a gap in the schedule one week prior to release.
This was known as the emergency queue, but now can also be used when the hosts don't care when the shows are scheduled.
They will be used on a first come first go basis, when there is no conflict with the scheduling guidelines.
These shows contain a message alerting listeners to the fact that we had free slots that were not filled.
</p>
<hr />
@@ -592,11 +593,12 @@
<h1 id="scheduling_guidelines">Scheduling Guidelines</h1>
<ol>
<li>You must have your audio recording ready to upload <strong>before</strong> you pick a slot.</li>
<li>New hosts, Interviews, and other time critical shows should use the first free slot.</li>
<li>Always try and fill any free slots that are available in the upcoming two weeks.</li>
<li>If the queue is filling up then please consider leaving some slots free for new contributors.</li>
<li>If you have a non urgent show then find a empty week and schedule it then.</li>
<li>If you are uploading a series of shows, consider scheduling one every two weeks.</li>
<li>Interviews may be released sooner.</li>
<li>When the queue is filling up then leave some slots free for new contributors.</li>
<li>Post non urgent shows into the first empty week.</li>
<li>If you are uploading a series of shows then post them one every two weeks.</li>
<li>If you have a non urgent show that is timeless, then add it to the <a href="<!--% absolute_url(baseurl,'about.html#reserve_queue') %-->">Reserve Queue</a>.</li>
</ol>
<hr />

View File

@@ -3,15 +3,10 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% PROCESS "queries-correspondent-${constants.database}.tpl.html" %-->
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
<!--% query_hpr_show_count = DBI.prepare('
SELECT id
FROM eps
WHERE eps.hostid = ?
')
%-->
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows)
%-->
<!--% hpr_shows_to_count = query_hpr_show_count.execute(id); %-->
<!--% results_hpr_show_count = DBI.prepare(query_hpr_show_count) %-->
<!--% hpr_shows_to_count = results_hpr_show_count.execute(id); %-->
<!--% hpr_shows = results_hpr_shows.execute(id); %-->
<!--% hpr_show_count = 0 %-->
<!--% FOREACH show IN hpr_shows_to_count %-->

View File

@@ -54,7 +54,7 @@ Subscribe to the comments <a href="<!--% absolute_path(baseurl) %-->comments.rss
<!--% comment_index = 1 %-->
<!--% comments_result = query_comments.execute(id) %-->
<!--% FOREACH comment IN comments_result %-->
<h5 id="comment_<!--% comment.id %-->">Comment #<!--% comment_index %--> posted on <!--% comment.comment_timestamp %--> by <!--% comment.comment_author_name %--></h5>
<h5 id="comment_<!--% comment.id %-->"><a href="/eps/hpr<!--% zero_pad_left(episode.id) %-->/index.html#comment_<!--% comment.id %-->">Comment #<!--% comment_index %--></a> posted on <!--% comment.comment_timestamp %--> by <!--% comment.comment_author_name %--></h5>
<h4><!--% comment.comment_title %--></h4>
<!--% comment.comment_text FILTER html_para %-->
<!--% comment_index = comment_index + 1 %-->
@@ -110,9 +110,18 @@ Subscribe to the comments <a href="<!--% absolute_path(baseurl) %-->comments.rss
</tr>
<!-- . -->
<tr>
<td>What is the <strong>HOST_ID</strong> for the host of this show?</td>
<td>Who is the <strong>host</strong> of this show?</td>
<td>
<input required type="text" name="hostid" size="20" maxlength="5" placeholder="Type the host number"></td>
<select required name="hostid" id="hostid">
<option value="Spammer" selected="selected">Spammer</option>
<option value="Spammer">Linus Torvalds</option>
<option value="Spammer">Marie Curie</option>
<option value="<!--% episode.hostid %-->"><!--% episode.host %--></option>
<option value="Spammer">Alan Turing</option>
<option value="Spammer">Terry Pratchett</option>
<option value="Spammer">Yuri Gagarin</option>
</select>
<td>
<td>
<!-- . -->
<tr>

View File

@@ -17,7 +17,7 @@
<p>
<!-- Creative Commons License -->
<a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/"><img alt="Creative Commons License" border="0" src="https://creativecommons.org/images/public/somerights20.png" width="88" height="31" /></a><br>The following work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/2.5/">Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License</a>.</p>
<p>T.W.A.T. Radio was brought to you by <a href="https://en.wikipedia.org/wiki/Infonomicon">The Infonomicon Computer Club</a></p>
<p>Today With a Techie Radio was brought to you by <a href="https://en.wikipedia.org/wiki/Infonomicon">The Infonomicon Computer Club</a></p>
<!--% FOREACH twat_episode IN DBI.query('
SELECT
eps.id,

View File

@@ -77,13 +77,16 @@
<li><a href="<!--% absolute_path(baseurl) %-->comments.rss">Listener contributed comments to the episodes</a></li>
</ul>
</article>
<hr />
<h1>Other Download Options</h1>
<article>
<header>
<h2>Site Replication Sources</h2>
</header>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->hpr.sql">Daily Database Dump in SQL Format</a></li>
<li><a href="https://repo.anhonesthost.net/explore/repos" >All the HPR Source Code is on GitTea</a></li>
<li><a href="https://repo.anhonesthost.net/explore/repos">All the HPR Source Code is on GitTea</a></li>
<li><a href="https://hub.hackerpublicradio.org/stats.json">Current Statistics on the HPR Project (updated every 15 mins)</a></li>
<ul>
</article>
<article>

View File

@@ -75,7 +75,7 @@
<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/">Talk With a Techie</a></li>
<li><a href="http://audio.textfiles.com/shows/twat/">Today With a Techie</a></li>
</ul>
</nav>
<nav class="column">

View File

@@ -1,5 +1,5 @@
<!--% query_hpr_shows = '
SELECT
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.duration,
@@ -16,3 +16,9 @@
ORDER BY eps.id DESC
'
%-->
<!--% query_hpr_show_count = '
SELECT id
FROM eps
WHERE eps.hostid = ? AND eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
'
%-->

View File

@@ -16,3 +16,9 @@
ORDER BY eps.id + 0 DESC
'
%-->
<!--% query_hpr_show_count = '
SELECT id
FROM eps
WHERE eps.hostid = ? AND eps.date < date(\'now\', \'+1 days\')
'
%-->

View File

@@ -2,8 +2,8 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"
xmlns:googleplay="https://www.google.com/schemas/play-podcasts/1.0"
xmlns:atom="https://www.w3.org/2005/Atom"
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>
@@ -17,7 +17,7 @@
<itunes:category text="Education">
<itunes:category text="Training"/>
</itunes:category>
<itunes:image href="<!--% absolute_url(baseurl) %-->images/hpr_feed_itunes.png"/>
<itunes:image href="<!--% absolute_url(http_baseurl) %-->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>
@@ -30,8 +30,8 @@
</itunes:owner>
<webMaster>admin@hackerpublicradio.org (HPR Volunteer)</webMaster>
<generator>site-generator</generator>
<docs>https://www.rssboard.org/rss-specification</docs>
<ttl>43200</ttl>
<docs>http://www.rssboard.org/rss-specification</docs>
<ttl>720</ttl>
<skipDays>
<day>Saturday</day>
<day>Sunday</day>
@@ -47,9 +47,9 @@
<googleplay:author>HPR Volunteer</googleplay:author>
<googleplay:description>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.</googleplay:description>
<googleplay:email>admin@hackerpublicradio.org</googleplay:email>
<googleplay:image href="<!--% absolute_url(baseurl) %-->images/hpr_feed_itunes.png"/>
<googleplay:image href="<!--% absolute_url(http_baseurl) %-->images/hpr_feed_itunes.png"/>
<googleplay:category text="Technology"/>
<atom:link href="<!--% absolute_url(baseurl) %--><!--% filename %-->" rel="self" type="application/rss+xml" />
<atom:link href="<!--% absolute_url(http_baseurl) %--><!--% filename %-->" rel="self" type="application/rss+xml" />
<pubDate><!--% format_feed_date(date.now) %--></pubDate>
<!--% INCLUDE $content %-->

View File

@@ -1,24 +1,25 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% MACRO display_item(episode, file_extension, audio_mime_type) BLOCK %-->
<!--% USE HTML.Strip %-->
<!--% USE HTML.Strip emit_spaces = 0 %-->
<!--% 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>
<googleplay:explicit><!--% display_explicit_feed_2(episode.explicit) %--></googleplay:explicit>
<title>HPR<!--% zero_pad_left(episode.id) %-->: <!--% episode.title | html_strip | xml_entity %--></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="<!--% absolute_url(baseurl) %-->images/hpr_feed_itunes.png"/>
<googleplay:image href="<!--% absolute_url(http_baseurl) %-->images/hpr_feed_itunes.png"/>
<link><!--% absolute_url(baseurl) %-->eps/hpr<!--% zero_pad_left(episode.id) %-->/index.html</link>
<description><![CDATA[<!--% episode.notes %-->]]>
</description>
<itunes:summary><![CDATA[<!--% episode.notes.substr(0, 4000) | html_strip | xml_entity %-->]]>
</itunes:summary>
<pubDate><!--% format_feed_date(episode.date) %--></pubDate>
<enclosure url="<!--% baseurl %-->eps/hpr<!--% zero_pad_left(episode.id) %-->.<!--% file_extension %-->" length="<!--% episode.length %-->" type="audio/<!--% audio_mime_type %-->"/>
<guid><!--% baseurl %-->eps/hpr<!--% zero_pad_left(episode.id) %-->.<!--% file_extension %--></guid>
</item>
<enclosure url="<!--% http_baseurl %-->eps/hpr<!--% zero_pad_left(episode.id) %-->.<!--% file_extension %-->" length="<!--% episode.length %-->" type="audio/<!--% audio_mime_type %-->"/>
<guid><!--% http_baseurl %-->eps/hpr<!--% zero_pad_left(episode.id) %-->.<!--% file_extension %--></guid>
</item>
<!--% END %-->

View File

@@ -35,6 +35,10 @@
<!--% display_choice(is_explicit, 'yes', 'no') %-->
<!--% END %-->
<!--% MACRO display_explicit_feed_2(is_explicit) BLOCK %-->
<!--% display_choice(is_explicit, 'Yes', 'No') %-->
<!--% END %-->
<!--% MACRO format_feed_date(date_to_format) BLOCK %-->
<!--% USE feed_date = date(format = '%a, %d %b %Y %H:%M:%S +0000', gmt=1) %-->
<!--% feed_date.format(date_to_format) %-->