Archived
4
2

78 Commits

Author SHA1 Message Date
Roan Horning
1dc0046fce README repository deprecation notice 2024-09-26 03:20:24 +00: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
#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: #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: #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: #198
2024-06-02 09:37:49 +00:00
kdmurrayhpr
eb0b752841 Merge branch 'main' into main 2024-06-01 00:31:37 +00:00
4c19b56643 Changed Show summary to display Full Show name for Today with a Techie 2024-05-31 17:29:54 -07: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: #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: #193
2024-05-19 09:26:11 +00:00
kdmurrayhpr
1382fe5e2a Merge branch 'main' into main 2024-05-19 04:40:25 +00:00
54ba2dc318 Replaced open-source-musicial URL on requested topics with the latest wayback machine capture before shutdown 2024-05-18 21:21:41 -07:00
c2c2cb0cc2 Replaced broken links for Binrev, Infonomicon and RFA with the last most recent wayback machine crawls for those sites before they went down. 2024-05-18 21:10:28 -07:00
Ken Fallon
5ec9fd21e9 Merge pull request 'Fix broken link to tags page on about page' (#191) from kdmurrayhpr/hpr_generator:main into main
Reviewed-on: #191
2024-05-18 15:22:48 +00:00
Ken Fallon
d053ec253a Merge pull request 'Fixed four queries to correct the episode flags' (#192) from 190_clean_shows_when_not into main
Reviewed-on: #192
2024-05-18 15:19:09 +00:00
Dave Morriss
db6c0bedaa Fixed four queries to correct the episode flags
templates/queries-correspondent-mysql.tpl.html,
templates/queries-correspondent-sqlite.tpl.html,
templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html: All SQL queries used a CASE
    expression to return either 'Explicit' or 'Clean' depending on the
    0/1 setting of the 'explicit' column. However, the TT² templates
    using these queries were written to expect the numeric form. All the
    'CASE' expressions have been replaced by the field name and now the
    correct flag is being displayed.
2024-05-18 15:54:52 +01:00
0c000b17b9 Removed hashtag references; based on current searches those aren't useful anymore. 2024-05-18 01:54:46 -07:00
1853af5521 Added the Telegram link since that exists now. 2024-05-18 01:52:49 -07:00
f4530a3f48 Fix broken link to tags page on about page 2024-05-18 01:37:38 -07:00
Ken Fallon
5b2b2ce6d0 Merge pull request 'link to how to help section of about' (#189) from norrist/hpr_generator:fix_contribute_404 into main
Reviewed-on: #189
Reviewed-by: Ken Fallon <ken_fallon@josh@anhonesthost.com>
2024-05-14 08:20:03 +00:00
6d8bdaa7a9 link to how to help section of about 2024-05-13 17:35:32 -05:00
2713664f86 2024-05-13_09-45-39Z_Monday Removed reference to advanced settings 2024-05-13 11:45:39 +02:00
eacd1e8425 2024-05-11_19-50-01Z_Saturday Fixed links to git repo 2024-05-11 21:50:01 +02:00
Ken Fallon
138c1e2d2b Update templates/content-about.tpl.html
Fixed the location for the mumble howto
2024-05-08 15:37:46 +00:00
Dave Morriss
b69cb913ea Added the Telegram link to page.tpl.html 2024-05-02 20:16:20 +01:00
Ken Fallon
467a14a72a Merge pull request 'Added host profile to the correspondent display' (#183) from 181_Host_Profile_not_showing into main
Reviewed-on: #183
2024-03-04 19:12:59 +00:00
Dave Morriss
69dcb66d05 Added host profile to the correspondent display
templates/queries-correspondent-mysql.tpl.html,
templates/queries-correspondent-sqlite.tpl.html: enhanced the queries to
    include the 'profile' field.

templates/content-correspondent.tpl.html: the 'profile' string from
    whichever of the above two queries is invoked is displayed after the
    (obscured) 'email' address
2024-03-04 18:30:59 +00:00
Ken Fallon
1e451e156d Clarification on using url
Needs to be accessible without logins.
2024-02-29 15:08:22 +00:00
Ken Fallon
7c98273236 internal links in error 2024-01-21 17:15:23 +00:00
Ken Fallon
fcf624dc22 Fix for Comment system needs to support hostid #180 2024-01-08 18:43:07 +00:00
Ken Fallon
fc096c6fa6 typo # in id field 2024-01-04 15:44:21 +00:00
Ken Fallon
d34064d787 update to about anonymous post 2024-01-04 15:41:22 +00:00
Ken Fallon
4287028e25 IA donation drive and NYS are over 2024-01-02 11:56:54 +00:00
Ken Fallon
67f28d43e3 Updates for the NYE show 2023-12-30 17:56:32 +00:00
Ken Fallon
dc36d9de86 last few stray references to php 2023-12-29 13:04:39 +00:00
Ken Fallon
96642bc69f more typos 2023-12-29 12:56:18 +00:00
Ken Fallon
f432954891 Added missing escapes for tt2 2023-12-29 12:42:41 +00:00
Ken Fallon
3f32a39301 Fixing links and formatting 2023-12-29 12:12:10 +00:00
Ken Fallon
7d8af97f7d Merge pull request 'The links to the page itself were not working - used to quickly add links to about page to questions' (#179) from I121_Fix_anchor_links_on_about_page into main
Reviewed-on: #179
2023-12-20 11:58:50 +00:00
130f603748 The links to the page itself were not working - used to quickly add links to about page to questions 2023-12-20 12:56:25 +01:00
Dave Morriss
eba235c503 Adjustments to the index page announcements 2023-12-19 21:56:02 +00:00
Ken Fallon
8bcf6bd0e8 new year show update
Added the hpr new yearshow updates
2023-12-10 15:11:46 +00:00
Ken Fallon
15cd9018b0 Merge pull request 'A further fix to the free slot algorithm' (#178) from fix4_next_available_episode into main
Reviewed-on: #178
2023-11-18 20:56:20 +00:00
Dave Morriss
e5b5aac104 A further fix to the free slot algorithm
templates/content-index.tpl.html: the `TT²` algorithm can be simplified
    because the new query returns less. We get the date of the show
    before the free slot, and can increment it differently depending on
    whether the previous show is on a Friday or not - catering for
    weekends in other words!

templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html: using a 'find unused index
    numbers' query available in many places on the Internet, but
    modified to return the id number and date for the show *before* the
    next free slot.
2023-11-17 18:23:22 +00:00
Ken Fallon
0ef92840c8 Added an explanation as to why 2023-11-02 08:39:56 +00:00
Dave Morriss
79a788bda9 Added content to the announcement section 2023-11-01 16:00:33 +00:00
Ken Fallon
2e151ebae9 Merge pull request 'fix3_next_available_episode' (#176) from fix3_next_available_episode into main
Reviewed-on: #176
2023-10-29 18:16:46 +00:00
Dave Morriss
097b50b30b Next free slot algorithm now in TT² form
templates/content-index.tpl.html: Now contains TT² code and an in-built
    query to determine the next free slot. No need for an external
    query. Old code that used to use this has been deleted.

templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html: Old queries called
    'query_next_available_episode' removed since no longer needed.
2023-10-29 17:32:02 +00:00
Dave Morriss
8325b2c0d1 Unwanted items commented out 2023-10-29 17:28:04 +00:00
Ken Fallon
a49bd6b08d Merge pull request 'fix2_next_available_episode' (#175) from fix2_next_available_episode into main
Reviewed-on: #175
2023-10-20 14:23:03 +00:00
Dave Morriss
c8135d811d Bug fix of query to find days to next free slot
templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html:
    Rather than driving the search from the eps table itself, this
    version makes a counter that generates slot numbers from the current
    show number to the highest show number in the system. The counter is
    used to interrogate the eps table to find the first empty slot. This
    sems to be a more reliable approach (but time will tell).
2023-10-20 13:37:37 +01:00
Dave Morriss
dab80f1772 Using even more complex CTE query for testing 2023-10-16 23:01:30 +01:00
Dave Morriss
3ccd6101ee Removed unnecessary computations from query_next_available_episode 2023-10-12 19:36:03 +01:00
Dave Morriss
51d328203b Merge pull request 'Fixing days to next free slot' (#174) from fix_next_available_episode into main
Reviewed-on: #174
2023-10-10 19:43:45 +00:00
Dave Morriss
366729a827 Fixing days to next free slot
templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html: Enhanced the query that finds
    the next free slot (query_next_available_episode). Also made it
    compute the days to the slot from the current day. The query returns
    data for calling Date::Calc to compute the number of days, but this
    calculation is no longer necessary. Next release will remove this.

templates/content-index.tpl.html: The number of days to the next free
    slot is reported here. The original Date::Calc computation which did
    this is no longer needed and has been removed since the query
    (query_next_available_episode) does it.
2023-10-10 17:55:44 +01:00
Dave Morriss
faac8c202e Updated README.md 2023-10-06 15:47:09 +01:00
Ken Fallon
3cf2f3a8e1 Merge pull request 'Making good an oversight in the IA_link PR' (#171) from IA_link_fix into main
Reviewed-on: #171
2023-09-29 11:24:00 +00:00
Dave Morriss
83bb04f25c Making good an oversight in the IA_link PR 2023-09-29 10:56:56 +01:00
Ken Fallon
383ef45bb7 Merge pull request 'Added a link to the IA copy of the show' (#170) from IA_link into main
Reviewed-on: #170
2023-09-29 08:15:21 +00:00
Dave Morriss
68c5e91552 Added a link to the IA copy of the show
site-generator: removed a subroutine prototype

templates/content-episode.tpl.html: added a new IA show link
2023-09-28 23:16:04 +01:00
Dave Morriss
35fa97e120 Cleaning up after bad merge 2023-09-09 23:26:15 +01:00
25 changed files with 739 additions and 450 deletions

View File

@@ -1,3 +1,6 @@
The repository is deprecated, please use: https://repo.anhonesthost.net/HPR/hpr_generator
# hpr_generator # hpr_generator
Static web page generator for the Hacker Public Radio website. Static web page generator for the Hacker Public Radio website.
@@ -31,12 +34,18 @@ Static web page generator for the Hacker Public Radio website.
* Template * Template
* Template::Plugin::File * Template::Plugin::File
* Template::Plugin::DBI * Template::Plugin::DBI
* Template::Plugin::Date
* Template::Plugin::HTML::Strip
* DBI * DBI
* Tie::DBI * Tie::DBI
* DBD::SQLite or DBD:mysql * DBD::SQLite or DBD:mysql
* Date::Calc * Date::Calc
* See the Getting Started tutorial (GETTING_STARTED.md) for more details on * Text::CSV_XS
* HTML::Entities
* See the [Getting Started](GETTING_STARTED.md) tutorial for more details on
installing the HPR generator. installing the HPR generator.
## Usage ## Usage
Generate two specific pages: Generate two specific pages:
`site-generator index about` `site-generator index about`
@@ -66,6 +75,8 @@ and add the label "**Feature Request**".
## Authors and acknowledgment ## Authors and acknowledgment
* Roan "Rho`n" Horning * Roan "Rho`n" Horning
* Dave Morriss
* gordons * gordons
* Ken Fallon * Ken Fallon
* norrist * 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'; - GRANT EXECUTE ON `hpr_hpr`.* TO 'hpr-generator'@'localhost';
Install the needed Perl modules using preferred method (distribution packages, CPAN, etc.) Install the needed Perl modules using preferred method (distribution packages, CPAN, etc.)
* GetOpt
* Pod::Usage
* Config::Std * Config::Std
* Template
* Template::Plugin::File
* Template::Plugin::DBI
* Template::Plugin::HTML::Strip
* DBI
* Tie::DBI
* DBD::SQLite or DBD:mysql * DBD::SQLite or DBD:mysql
* DBI
* Data::Dumper
* Date::Calc * 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 * Text::CSV_XS
* Tie::DBI
=head1 AUTHOR =head1 AUTHOR
@@ -115,7 +118,8 @@ use Getopt::Long qw(:config auto_help);
use Pod::Usage; use Pod::Usage;
use Config::Std; use Config::Std;
use Text::CSV_XS; 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 Date::Calc;
use DBI; use DBI;
use DBD::SQLite; use DBD::SQLite;
@@ -232,7 +236,7 @@ sub main {
return 0; return 0;
} }
sub get_template_html (\%@) { sub get_template_html {
# For an HTML based Template file, define the # For an HTML based Template file, define the
# template start and end tags to also function as # template start and end tags to also function as
# HTML comments to make the template file valid HTML. # HTML comments to make the template file valid HTML.
@@ -425,7 +429,8 @@ sub parse_csv {
sub xml_entity { sub xml_entity {
my ($text) = @_; my ($text) = @_;
encode_entities_numeric( $text ); # encode_entities_numeric( $text );
encode_entities( $text );
return $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: OPTIONAL [i.e. file://<full path to local website directory>]
#baseurl: file:///home/roan/Development/hpr/website/hpr_generator/public_html/ #baseurl: file:///home/roan/Development/hpr/website/hpr_generator/public_html/
baseurl: https://hackerpublicradio.org/ baseurl: https://hackerpublicradio.org/
http_baseurl: http://hackerpublicradio.org/
hub_baseurl: https://hub.hackerpublicradio.org/ hub_baseurl: https://hub.hackerpublicradio.org/
media_baseurl: https://archive.org/download/hpr$eps_id/ media_baseurl: https://archive.org/download/hpr$eps_id/
generator_name: The HPR Robot generator_name: The HPR Robot

File diff suppressed because it is too large Load Diff

View File

@@ -33,7 +33,7 @@
eps.notes, eps.notes,
hosts.local_image, hosts.local_image,
hosts.hostid, hosts.hostid,
hosts.host, hosts.email, hosts.host, hosts.email, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid miniseries.name AS series, miniseries.id AS seriesid
FROM twat_eps AS eps FROM twat_eps AS eps
INNER JOIN hosts ON eps.hostid = hosts.hostid INNER JOIN hosts ON eps.hostid = hosts.hostid
@@ -58,6 +58,7 @@
<p><!--% get_avatar(this_host.hostid, this_host.host) %--><br> <p><!--% get_avatar(this_host.hostid, this_host.host) %--><br>
<label>Host ID</label>: <!--% this_host.hostid %--><br><br> <label>Host ID</label>: <!--% this_host.hostid %--><br><br>
<label>email:</label> <u><!--% this_host.email %--></u><br> <label>email:</label> <u><!--% this_host.email %--></u><br>
<label>profile:</label> <!--% this_host.profile %--><br><br>
<label>episodes:</label> <strong><!--% hpr_show_count + twat_show_count %--></strong> <label>episodes:</label> <strong><!--% hpr_show_count + twat_show_count %--></strong>
</p> </p>
<!--% FOREACH hpr_show IN hpr_shows; %--> <!--% FOREACH hpr_show IN hpr_shows; %-->

View File

@@ -21,6 +21,7 @@ Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pa
<!--% display_tags(episode.tags) %--> <!--% display_tags(episode.tags) %-->
<label>Comments: </label><!--% display_comments_tally(episode.id, episode.eps_tally) %--> <br> <label>Comments: </label><!--% display_comments_tally(episode.id, episode.eps_tally) %--> <br>
The show is available on the Internet Archive at: <a href="https://archive.org/details/hpr<!--% zero_pad_left(episode.id) %-->">https://archive.org/details/hpr<!--% zero_pad_left(episode.id) %--></a>
<!--% listen_now(episode, "hpr", baseurl, media_baseurl) %--> <!--% listen_now(episode, "hpr", baseurl, media_baseurl) %-->
</p> </p>
<h3><!--% show_series(episode.series, episode.seriesid, "Part of the series") %--></h3> <h3><!--% show_series(episode.series, episode.seriesid, "Part of the series") %--></h3>
@@ -53,7 +54,7 @@ Subscribe to the comments <a href="<!--% absolute_path(baseurl) %-->comments.rss
<!--% comment_index = 1 %--> <!--% comment_index = 1 %-->
<!--% comments_result = query_comments.execute(id) %--> <!--% comments_result = query_comments.execute(id) %-->
<!--% FOREACH comment IN comments_result %--> <!--% 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> <h4><!--% comment.comment_title %--></h4>
<!--% comment.comment_text FILTER html_para %--> <!--% comment.comment_text FILTER html_para %-->
<!--% comment_index = comment_index + 1 %--> <!--% comment_index = comment_index + 1 %-->
@@ -109,9 +110,18 @@ Subscribe to the comments <a href="<!--% absolute_path(baseurl) %-->comments.rss
</tr> </tr>
<!-- . --> <!-- . -->
<tr> <tr>
<td>Who hosted this show?</td> <td>Who is the <strong>host</strong> of this show?</td>
<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> <td>
<!-- . --> <!-- . -->
<tr> <tr>

View File

@@ -17,7 +17,7 @@
<p> <p>
<!-- Creative Commons License --> <!-- 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> <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(' <!--% FOREACH twat_episode IN DBI.query('
SELECT SELECT
eps.id, eps.id,

View File

@@ -1,2 +1 @@
<!--% PROCESS 'shared-utils.tpl.html' %--> <!--% PROCESS 'shared-utils.tpl.html' %-->

View File

@@ -11,34 +11,36 @@
<!--% img_re = '(?six)^(.*?)\<img ([^\>]+\>)(.+)$' %--> <!--% img_re = '(?six)^(.*?)\<img ([^\>]+\>)(.+)$' %-->
<!--% lazy_re = '(?i)loading="lazy"' %--> <!--% lazy_re = '(?i)loading="lazy"' %-->
<!--% WHILE (matches = lines.match(img_re)) %--> <!--% WHILE (matches = lines.match(img_re)) %-->
<!--% img_tag = matches.1 %--> <!--% img_tag = matches.1 %-->
<!--% after_html = matches.2 %--> <!--% after_html = matches.2 %-->
<!--% matches.0 %--> <!--% matches.0 %-->
<!--% IF (img_tag.search(lazy_re)) %--> <!--% IF (img_tag.search(lazy_re)) %-->
<img <!--% img_tag %--> <img <!--% img_tag %-->
<!--% ELSE %--> <!--% ELSE %-->
<img loading="lazy" <!--% img_tag %--> <img loading="lazy" <!--% img_tag %-->
<!--% END %--> <!--% END %-->
<!--% lines = after_html %--> <!--% lines = after_html %-->
<!--% END %--> <!--% END %-->
<!--% after_html %--> <!--% after_html %-->
<!--% END %--> <!--% END %-->
<hr> <hr>
<article> <article>
<header> <header>
<h3>Welcome to HPR the Community Podcast</h3> <h3>Welcome to HPR, the Community Podcast</h3>
</header> </header>
<!--% days_till_next_episode = 0 %--> <!--% days_till_next_episode = 0 %-->
<!--% USE DBI(constants.driver, constants.user, constants.password) %--> <!--% USE DBI(constants.driver, constants.user, constants.password) %-->
<!--% FOREACH next_available_episode_result IN DBI.query(query_next_available_episode)
%-->
<!--% USE date %--> <!--% USE date %-->
<!--% calc = date.calc %--> <!--% calc = date.calc %-->
<!--% days_till_next_episode = calc.Delta_Days(date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d'),next_available_episode_result.last_year,next_available_episode_result.last_month,next_available_episode_result.last_day) %--> <!--% episodes = DBI.query(query_next_available_episode).get_all() %-->
<!--% END %--> <!--% last_date = episodes.0.date.split('-') %-->
<!--% USE date %--> <!--% offset = (calc.Day_of_Week(last_date.0,last_date.1,last_date.2) == 5 ? 3 : 1) %-->
<!--% slot_date = calc.Add_Delta_Days(last_date.0,last_date.1,last_date.2,offset) %-->
<!--% now = calc.Today() %-->
<!--% days_till_next_episode = calc.Delta_Days(now.0,now.1,now.2,slot_date.0,slot_date.1,slot_date.2) %-->
<!--% delta = date.calc.N_Delta_YMD(2005,9,19, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) %--> <!--% 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="<!--% absolute_path(baseurl) %-->eps/index.html#twat_episodes"><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_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">record</a> your show now it could be <a href="<!--% hub_baseurl %-->calendar.php">released</a> in <strong><!--% days_till_next_episode %--></strong> days.</p> <p>We started producing shows as <a href="<!--% absolute_path(baseurl) %-->eps/index.html#twat_episodes"><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">topics</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_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">record</a> your show now it could be <a href="<!--% hub_baseurl %-->calendar.php">released</a> in <strong><!--% days_till_next_episode %--></strong> days.</p>
</article> </article>
<!--% display_call_for_shows() %--> <!--% display_call_for_shows() %-->
<hr> <hr>

View File

@@ -16,7 +16,7 @@
<li>Installing a VPN to your home network</li> <li>Installing a VPN to your home network</li>
<li>Init and System.d</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>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><a href="https://web.archive.org/web/20160629174556/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>Hackintosh computers - what are they, why would you want one.</li>
<li>Grub 2.0 introduction and customization.</li> <li>Grub 2.0 introduction and customization.</li>
<li>FM Transmitter hack to listen into internet streams</li> <li>FM Transmitter hack to listen into internet streams</li>

View File

@@ -1,5 +1,4 @@
<h1>RSS Syndication</h1> <h1>RSS Syndication</h1>
<p><small><em><a href="<!--% absolute_path(baseurl) %-->syndication.html">Advanced Settings</a>.</em></small></p>
<article> <article>
<header> <header>
@@ -78,12 +77,16 @@
<li><a href="<!--% absolute_path(baseurl) %-->comments.rss">Listener contributed comments to the episodes</a></li> <li><a href="<!--% absolute_path(baseurl) %-->comments.rss">Listener contributed comments to the episodes</a></li>
</ul> </ul>
</article> </article>
<hr />
<h1>Other Download Options</h1>
<article> <article>
<header> <header>
<h2>Site Replication Sources</h2> <h2>Site Replication Sources</h2>
</header> </header>
<ul> <ul>
<li><a href="<!--% absolute_path(baseurl) %-->hpr.sql">Daily Database Dump in SQL Format</a></li> <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://hub.hackerpublicradio.org/stats.json">Current Statistics on the HPR Project (updated every 15 mins)</a></li>
<ul> <ul>
</article> </article>
<article> <article>

View File

@@ -4,7 +4,7 @@
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home »</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) %-->syndication.html">Get Shows</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Give Shows</a></li> <li><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Give Shows</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->help_out.html">Contribute</a></li> <li><a href="<!--% absolute_path(baseurl) %-->about.html#how_to_help">Contribute</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->tags.html">Tags</a></li> <li><a href="<!--% absolute_path(baseurl) %-->tags.html">Tags</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->about.html">About</a></li> <li><a href="<!--% absolute_path(baseurl) %-->about.html">About</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->search.html">Search</a></li> <li><a href="<!--% absolute_path(baseurl) %-->search.html">Search</a></li>

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/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/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/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> </ul>
</nav> </nav>
<nav class="column"> <nav class="column">
@@ -86,6 +86,7 @@
<li><a href="https://matrix.to/#/#hpr:matrix.org" >Matrix</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="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://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://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.facebook.com/HenryPartickReilly" target="_blank">Facebook</a></li>
<li><a href="https://www.linkedin.com/company/hackerpublicradio/" target="_blank">Linked-In</a></li> <li><a href="https://www.linkedin.com/company/hackerpublicradio/" target="_blank">Linked-In</a></li>
@@ -113,6 +114,7 @@
<ul> <ul>
<li><a href="https://freeculturepodcasts.org/">Free Culture Podcasts</a></li> <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://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://cchits.net/">cchits.net</a></li>
<li><a href="https://freesound.org/">freesound.org</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://librivox.org/">librivox.org</a></li>

View File

@@ -1,13 +1,13 @@
<!--% query_hpr_shows = ' <!--% query_hpr_shows = '
SELECT SELECT
eps.id, eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit , eps.explicit,
eps.date, eps.license, eps.duration, eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags, eps.title, eps.summary, eps.tags,
eps.notes, eps.notes,
hosts.local_image, hosts.local_image,
hosts.hostid, hosts.hostid,
hosts.host, hosts.email, hosts.host, hosts.email, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid miniseries.name AS series, miniseries.id AS seriesid
FROM eps FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid INNER JOIN hosts ON eps.hostid = hosts.hostid

View File

@@ -1,13 +1,13 @@
<!--% query_hpr_shows = ' <!--% query_hpr_shows = '
SELECT SELECT
eps.id, eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit , eps.explicit,
eps.date, eps.license, eps.duration, eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags, eps.title, eps.summary, eps.tags,
eps.notes, eps.notes,
hosts.local_image, hosts.local_image,
hosts.hostid, hosts.hostid,
hosts.host, hosts.email, hosts.host, hosts.email, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid miniseries.name AS series, miniseries.id AS seriesid
FROM eps FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid INNER JOIN hosts ON eps.hostid = hosts.hostid

View File

@@ -1,18 +1,14 @@
<!--% query_next_available_episode = ' <!--% query_next_available_episode = '
WITH next_id AS ( SELECT id, date FROM eps e WHERE id = (
SELECT id, id + 1 AS \'id_next\', date as \'last_date\' SELECT id + 1 FROM eps mo
FROM eps WHERE NOT EXISTS (
WHERE eps.date > NOW() SELECT NULL
) FROM eps mi
SELECT WHERE mi.id = mo.id + 1
MIN(next_id.id_next) AS \'next_id\', )
DATE_FORMAT(DATE_ADD(MIN(last_date), INTERVAL 1 DAY), \'%Y\') AS \'last_year\', ORDER BY id
DATE_FORMAT(DATE_ADD(MIN(last_date), INTERVAL 1 DAY), \'%d\') AS \'last_day\', LIMIT 1) - 1
DATE_FORMAT(DATE_ADD(MIN(last_date), INTERVAL 1 DAY), \'%m\') AS \'last_month\' '
FROM next_id
LEFT JOIN eps ON next_id.id_next = eps.id
WHERE eps.id IS NULL
'
%--> %-->
<!--% query_latest_episodes = ' <!--% query_latest_episodes = '
WITH comment_tallies AS ( WITH comment_tallies AS (
@@ -45,7 +41,7 @@
<!--% query_last_5_weeks_episodes = ' <!--% query_last_5_weeks_episodes = '
SELECT SELECT
eps.id, eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit , eps.explicit,
eps.date, eps.license, eps.title, eps.summary, eps.date, eps.license, eps.title, eps.summary,
eps.duration, eps.notes, eps.tags, eps.duration, eps.notes, eps.tags,
hosts.hostid, hosts.hostid,

View File

@@ -1,18 +1,14 @@
<!--% query_next_available_episode = ' <!--% query_next_available_episode = '
WITH next_id AS ( SELECT id, date FROM eps e WHERE id = (
SELECT id, id + 1 AS \'id_next\', date as \'last_date\' SELECT id + 1 FROM eps mo
FROM eps WHERE NOT EXISTS (
WHERE eps.date > date(\'now\') SELECT NULL
) FROM eps mi
SELECT WHERE mi.id = mo.id + 1
MIN(next_id.id_next) AS \'next_id\', )
strftime(\'%Y\', DATE (MIN (last_date), \'+1 Days\')) AS \'last_year\', ORDER BY id
strftime(\'%d\', DATE (MIN (last_date), \'+1 Days\')) AS \'last_day\', LIMIT 1) - 1
strftime(\'%m\', DATE (MIN (last_date), \'+1 Days\')) AS \'last_month\' '
FROM next_id
LEFT JOIN eps ON next_id.id_next = eps.id
WHERE eps.id IS NULL
'
%--> %-->
<!--% query_latest_episodes = ' <!--% query_latest_episodes = '
WITH comment_tallies AS ( WITH comment_tallies AS (
@@ -45,7 +41,7 @@
<!--% query_last_5_weeks_episodes = ' <!--% query_last_5_weeks_episodes = '
SELECT SELECT
eps.id, eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit , eps.explicit,
eps.date, eps.license, eps.title, eps.summary, eps.date, eps.license, eps.title, eps.summary,
eps.duration, eps.notes, eps.tags, eps.duration, eps.notes, eps.tags,
hosts.hostid, hosts.hostid,

View File

@@ -2,8 +2,8 @@
<!--% PROCESS 'shared-utils.tpl.html' %--> <!--% PROCESS 'shared-utils.tpl.html' %-->
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" <rss version="2.0"
xmlns:googleplay="https://www.google.com/schemas/play-podcasts/1.0" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"
xmlns:atom="https://www.w3.org/2005/Atom" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" > xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" >
<channel> <channel>
<title>Hacker Public Radio</title> <title>Hacker Public Radio</title>
@@ -17,7 +17,7 @@
<itunes:category text="Education"> <itunes:category text="Education">
<itunes:category text="Training"/> <itunes:category text="Training"/>
</itunes:category> </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:explicit>yes</itunes:explicit>
<itunes:author>Hacker Public Radio</itunes:author> <itunes:author>Hacker Public Radio</itunes:author>
<itunes:keywords>Community Radio, Tech Interviews, Linux, Open, Hobby, Software Freedom</itunes:keywords> <itunes:keywords>Community Radio, Tech Interviews, Linux, Open, Hobby, Software Freedom</itunes:keywords>
@@ -30,8 +30,8 @@
</itunes:owner> </itunes:owner>
<webMaster>admin@hackerpublicradio.org (HPR Volunteer)</webMaster> <webMaster>admin@hackerpublicradio.org (HPR Volunteer)</webMaster>
<generator>site-generator</generator> <generator>site-generator</generator>
<docs>https://www.rssboard.org/rss-specification</docs> <docs>http://www.rssboard.org/rss-specification</docs>
<ttl>43200</ttl> <ttl>720</ttl>
<skipDays> <skipDays>
<day>Saturday</day> <day>Saturday</day>
<day>Sunday</day> <day>Sunday</day>
@@ -47,9 +47,9 @@
<googleplay:author>HPR Volunteer</googleplay:author> <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: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: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"/> <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> <pubDate><!--% format_feed_date(date.now) %--></pubDate>
<!--% INCLUDE $content %--> <!--% INCLUDE $content %-->

View File

@@ -57,7 +57,7 @@ or
<!--% MACRO twat_show_summary(show, hide_host) BLOCK %--> <!--% MACRO twat_show_summary(show, hide_host) BLOCK %-->
<h3 class="title"><a href="<!--% absolute_path(baseurl) %-->eps/twat<!--% zero_pad_left(show.id) %-->/index.html">twat<!--% show.id %--> :: <!--% show.title %--></a> <!--% IF hide_host == "" %--> <h3 class="title"><a href="<!--% absolute_path(baseurl) %-->eps/twat<!--% zero_pad_left(show.id) %-->/index.html">Today with a Techie Ep.<!--% show.id %--> :: <!--% show.title %--></a> <!--% IF hide_host == "" %-->
hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(show.hostid) %-->.html"><!--% show.host %--></a> hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(show.hostid) %-->.html"><!--% show.host %--></a>
<!--% END %--> <!--% END %-->
</h3> </h3>

View File

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

View File

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