Compare commits

..

78 Commits

Author SHA1 Message Date
cf687fe0db Merge branch 'main' into main 2024-06-04 21:19:20 +00:00
e0ef6c7613 Added relative comment link trackbacks to the comment viewer 2024-06-04 14:18:09 -07:00
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
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
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
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
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
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
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
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
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
5ec9fd21e9 Merge pull request 'Fix broken link to tags page on about page' (#191) from kdmurrayhpr/hpr_generator:main into main
Reviewed-on: rho_n/hpr_generator#191
2024-05-18 15:22:48 +00:00
d053ec253a Merge pull request 'Fixed four queries to correct the episode flags' (#192) from 190_clean_shows_when_not into main
Reviewed-on: rho_n/hpr_generator#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
5b2b2ce6d0 Merge pull request 'link to how to help section of about' (#189) from norrist/hpr_generator:fix_contribute_404 into main
Reviewed-on: rho_n/hpr_generator#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: rho_n/hpr_generator#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: rho_n/hpr_generator#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: rho_n/hpr_generator#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: rho_n/hpr_generator#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: rho_n/hpr_generator#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: rho_n/hpr_generator#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: rho_n/hpr_generator#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: rho_n/hpr_generator#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
Dave Morriss
47a7493ef2 Merge branch '167_Several_templates_use_non-existent_absolute_url'
Somehow stuff got deleted - no idea why!
2023-09-09 23:10:07 +01:00
Dave Morriss
8e6c44c46c Merge branch 'main' of https://repo.anhonesthost.net/rho_n/hpr_generator 2023-09-06 18:51:56 +01:00
Dave Morriss
aba463099c Merge branch 'I162_Fix_broken_links_in_template_files' 2023-09-06 18:50:19 +01:00
Dave Morriss
3396413321 Merge pull request 'I162_Fix_broken_links_in_template_files' (#166) from I162_Fix_broken_links_in_template_files into main
Reviewed-on: rho_n/hpr_generator#166
2023-09-06 17:43:42 +00:00
d1832ae619 Changes recommended by Dave - missing php and typo 2023-09-06 19:35:22 +02:00
4c239f4f67 Cleaned up the temp cruft 2023-09-05 20:39:25 +02:00
796ee598e9 Added press information that was missing and updated the FAQ for wikipedia 2023-09-05 20:31:46 +02:00
4b2a030a5b Missed a reference to <!--% baseurl %--> 2023-09-03 18:02:09 +02:00
7009533e25 Fixing invalid links in the templates. 2023-09-03 17:51:03 +02:00
61 changed files with 19654 additions and 949 deletions

View File

@ -4,16 +4,16 @@ Static web page generator for the Hacker Public Radio website.
## Installation
* Clone or download this repository
* With SQLite
* Create the sqlite3 database from the hpr.sql MySQL dump file available on
hackerpublicradio.org. The default name for the database file is "hpr.db"
and should be located in the root of the project directory. The name and
* Create the sqlite3 database from the hpr.sql MySQL dump file available on
hackerpublicradio.org. The default name for the database file is "hpr.db"
and should be located in the root of the project directory. The name and
location can be set in the site.cfg file.
* An "update-hpr.sh" helper script is available in the utils directory. This
script will download the hpr.sql file, convert it to the SQLite hpr.db file,
and regenerate the website using the site-generator.
* An "update-hpr.sh" helper script is available in the utils directory. This
script will download the hpr.sql file, convert it to the SQLite hpr.db file,
and regenerate the website using the site-generator.
1. `cd` into the root of the project directory
2. Run `./utils/update-hpr.sh`
* SQLite v3.8.3 or greater is recommended. CTE WITH clauses are used in some template queries. Must convert WITH
* SQLite v3.8.3 or greater is recommended. CTE WITH clauses are used in some template queries. Must convert WITH
clauses to sub-queries when using earlier versions of SQLite.
* With MySQL
* Create database hpr_hpr in the MySQL server from HPR dump file.
@ -31,18 +31,24 @@ Static web page generator for the Hacker Public Radio website.
* Template
* Template::Plugin::File
* Template::Plugin::DBI
* Template::Plugin::Date
* Template::Plugin::HTML::Strip
* DBI
* Tie::DBI
* DBD::SQLite or DBD:mysql
* 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.
## Usage
Generate two specific pages:
`site-generator index about`
`site-generator index about`
Generate the whole site:
`site-generator --all`
`site-generator --all`
Generate pages based on the same template:
`site-generator correspondent=1,3,5..10`
@ -65,7 +71,7 @@ To make a suggestion, please [submit an Issue](https://repo.anhonesthost.net/rho
and add the label "**Feature Request**".
## Authors and acknowledgment
* Roan "Rho`n" Horning
* Roan "Rho`n" Horning
* gordons
* Ken Fallon
* norrist
* norrist

View File

@ -1,7 +1,7 @@
@charset "utf-8";
/* Website design Copyright Ken Fallon - Released into the public domain/
http://creativecommons.org/publicdomain/
https://creativecommons.org/publicdomain/
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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;
@ -232,7 +236,7 @@ sub main {
return 0;
}
sub get_template_html (\%@) {
sub get_template_html {
# For an HTML based Template file, define the
# template start and end tags to also function as
# HTML comments to make the template file valid HTML.
@ -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;
}

119
site.cfg
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
@ -68,10 +69,6 @@ navigation: navigation-about.tpl.html
content: content-correspondents.tpl.html
filename: correspondents/index.html
# [contact]
# navigation: navigation-about.tpl.html
# content: content-contact.tpl.html
[correspondent]
navigation: navigation-about.tpl.html
content: content-correspondent.tpl.html
@ -104,50 +101,10 @@ filename: eps/hpr[id]/index.html
navigation: navigation-get-shows.tpl.html
content: content-syndication.tpl.html
[contribute]
navigation: navigation-give-shows.tpl.html
content: content-contribute.tpl.html
[search]
navigation: navigation-main.tpl.html
content: content-search.tpl.html
[help_out]
navigation: navigation-contribute.tpl.html
content: content-help_out.tpl.html
[download]
navigation: navigation-get-shows.tpl.html
content: content-download.tpl.html
# [stuff_you_need_to_know]
# navigation: navigation-give-shows.tpl.html
# content: content-stuff_you_need_to_know.tpl.html
[theme]
navigation: navigation-give-shows.tpl.html
content: content-theme.tpl.html
[requested_topics]
navigation: navigation-give-shows.tpl.html
content: content-requested_topics.tpl.html
[recording]
navigation: navigation-give-shows.tpl.html
content: content-recording.tpl.html
[request_a_slot]
navigation: navigation-give-shows.tpl.html
content: content-request_a_slot.tpl.html
[podcatchers]
navigation: navigation-contribute.tpl.html
content: content-podcatchers.tpl.html
[promote]
navigation: navigation-about.tpl.html
content: content-promote.tpl.html
[sitemap]
navigation: navigation-about.tpl.html
content: content-sitemap.tpl.html
@ -171,43 +128,43 @@ content: content-mumble-howto.tpl.html
navigation: navigation-about.tpl.html
content: content-comments_viewer.tpl.html
# [hpr_ogg]
# root_template: rss.tpl.xml
# content: rss-hpr.tpl.xml
# filename: hpr_ogg.rss
# media_file_extension: ogg
#
# [hpr_mp3]
# root_template: rss.tpl.xml
# content: rss-hpr.tpl.xml
# filename: hpr_mp3.rss
# media_file_extension: mp3
# audio_mime_type: mpeg
#
# [hpr_spx]
# root_template: rss.tpl.xml
# content: rss-hpr.tpl.xml
# filename: hpr_spx.rss
# media_file_extension: spx
#
# [hpr_total_ogg]
# root_template: rss.tpl.xml
# content: rss-hpr_total.tpl.xml
# filename: hpr_total_ogg.rss
# media_file_extension: ogg
#
# [hpr_total_mp3]
# root_template: rss.tpl.xml
# content: rss-hpr_total.tpl.xml
# filename: hpr_total_mp3.rss
# media_file_extension: mp3
# audio_mime_type: mpeg
#
# [hpr_total_spx]
# root_template: rss.tpl.xml
# content: rss-hpr_total.tpl.xml
# filename: hpr_total_spx.rss
# media_file_extension: spx
[hpr_ogg]
root_template: rss.tpl.xml
content: rss-hpr.tpl.xml
filename: hpr_ogg.rss
media_file_extension: ogg
[hpr_mp3]
root_template: rss.tpl.xml
content: rss-hpr.tpl.xml
filename: hpr_mp3.rss
media_file_extension: mp3
audio_mime_type: mpeg
[hpr_spx]
root_template: rss.tpl.xml
content: rss-hpr.tpl.xml
filename: hpr_spx.rss
media_file_extension: spx
[hpr_total_ogg]
root_template: rss.tpl.xml
content: rss-hpr_total.tpl.xml
filename: hpr_total_ogg.rss
media_file_extension: ogg
[hpr_total_mp3]
root_template: rss.tpl.xml
content: rss-hpr_total.tpl.xml
filename: hpr_total_mp3.rss
media_file_extension: mp3
audio_mime_type: mpeg
[hpr_total_spx]
root_template: rss.tpl.xml
content: rss-hpr_total.tpl.xml
filename: hpr_total_spx.rss
media_file_extension: spx
[comments]
root_template: rss-comments.tpl.xml

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,7 @@
<article>
<header>
<h1><!--% item.comment_author_name %--> says: <!--% item.comment_title %--></h1>
<h1><a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html#comment_<!--% item.comment_id %-->"><!--% item.comment_author_name %--> says</a>: <!--% item.comment_title %--></h1>
<p><small>Posted at <!--% item.comment_timestamp %--> relating to the show <a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html">hpr<!--% item.eps_id %--></a> which was released on <!--% item.episode_date %--> by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(item.host_id) %-->.html"><!--% item.host %--></a> entitled <em><!--% item.episode_title %--></em></small>
</p>
</header>

View File

@ -1,87 +0,0 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
<!--% FOREACH correspondents IN DBI.query('
SELECT COUNT(hostid) AS \'tally\' FROM hosts;
') %-->
<h1>So you want to do a podcast ?</h1>
<p>Well you've come to the right place. Our goal here at HPR is to make it as easy as possible for you to get a podcast released. We take care of the hard bits so you don't need to. Recording your first show is always a daunting prospect but over <a href="<!--% absolute_path(baseurl) %-->correspondents/index.html"><!--% correspondents.tally %--></a> people like yourself have done it and so can you.
<!--% END %-->
</p>
<h2>1. Stuff you need to know</h2>
<ul>
<li>HPR will stop as a project if there are not enough <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#no_shows_no_hpr">Shows</a>.</li>
<li>We do not <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#syndication">syndicate</a> shows not produced for HPR.</li>
<li>You are agreeing to <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#license">license</a> your show CC BY-SA 4.0.</li>
<li>You have <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#permission">permission</a> to redistribute your show in its entirety.</li>
<li>Your audio will <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#not_moderated">not be moderated.</a></li>
<li>Your show will be signaled as containing <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#explicit">explicit</a> content.</li>
<li>You determine where in the <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#schedule">schedule</a> your show will be released.</li>
<li>We use <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#utf8">UTF-8</a> end to end.</li>
<li>Your show will be heard by an <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#international">International</a> Audience.</li>
<li>We also need <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#emergency_queue">emergency</a> shows.</li>
<li>You will no longer be allowed to edit HPR pages on <a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html#wikipedia">Wikipedia</a>.</li>
</ul>
<p>
<a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html">More information.</a>
</p>
<h2>2. Select a Topic</h2>
<p>
The first thing you will need to do is decide on a topic for your show. You might already have an idea but if not you can have a look at our <a href="<!--% absolute_path(baseurl) %-->eps/index.html">Archive</a> page for examples of shows people have recorded in the past. You can also look at our <a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Requested Topics</a>, or our <a href="<!--% absolute_path(baseurl) %-->series/index.html">Series</a> page to see if you can add your knowledge to the pool.
</p>
<p>
If you are <a href="<!--% absolute_path(baseurl) %-->will-my-show-be-of-interest-to-hackers.html">worried that your show may not be of interest to Hackers then follow this link</a> to check if it is.
</p>
<p>
If you can't think of anything to talk about then please just record a show telling us <a href="<!--% absolute_path(baseurl) %-->series/0029.html">how you got into tech</a> as a way to introducing yourself to the community.
</p>
<h2>3. Record your show</h2>
<p>
Please select <a href="<!--% absolute_path(baseurl) %-->recording.html">more detailed information on how to record a show</a>:
</p>
<ul>
<!-- <li>Recording with the <a href="<!--% absolute_path(baseurl) %-->recording.html#callin_numbers">telephone</a>.</li> -->
<li><a href="<!--% absolute_path(baseurl) %-->recording.html#portable_media_player">Recording with a portable media player</a>.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html#smart_phone">Recording with a smart phone</a>.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html#editing">Recording/Editing using your Computer</a>.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html#phone_interviews">Recording Interviews with the Phone</a>.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html#round_table">Recording round table discussions</a>.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html#background_music">Avoid Bedding/background music</a>.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html#encoding">We mix down to Mono</a>.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html#no_metadata">No need to add Metadata</a> to the file.</li>
</ul>
<p>Don't forget to <strong>introduce yourself</strong> in your show.</p>
<h2>4. Upload your show</h2>
<p>
Once you have your audio ready you can post your show by going to the <a href="<!--% hub_baseurl %-->calendar.php">Calendar</a> page or press the <strong><a href="<!--% hub_baseurl %-->calendar.php">⇧Upload⇧</strong></a> button.
</p>
<p>
After you have selected a date you will be redirected to the <a href="https://www.hackerpublicradio.org/request.php">request page</a>, where you will be asked to select your show and email address. We will send a link to where you can upload your show to this address and so it must be a valid working address that you can access quickly. We intend to use <a href="https://www.gnupg.org/">GPG</a> to speed up the validation of hosts, so you may wish to use an email address that has an associated public key available on public key servers.
</p>
<p>
<a href="<!--% absolute_path(baseurl) %-->request_a_slot.html">More Information</a>.
</p>
<h2>Questions ?</h2>
<p>
Got any questions not covered here, then just email <strong>"admin" at "www.hackerpublicradio.org"</strong>, and well get in touch with you with all you need to know about getting your show published.<br />
You can chat with other podcasters using IRC in the <strong>#oggcastplanet</strong> channel on the <a href="https://web.libera.chat/gamja/?channels=oggcastplanet">freenode.net</a> network. Follow us on <a href="https://identi.ca/group/hpr">identi.ca</a> (use the tag <strong>!hpr</strong>) and on <a href="https://twitter.com/hpr">Twitter</a> (use the tag <strong>#hpr</strong>). We have a <a href="https://www.facebook.com/home.php?sk=group_130169220378872">Facebook</a> and <a href="https://www.linkedin.com/groups?mostPopular=&amp;gid=3737302">LinkedIn</a> group, so please join and spread the word.</p>
<h2>Still Nervous</h2>
<p>
Fellow listeners like yourself contribute the shows and so we all know how hard it is to do that first show. You're probably worried that we won't like the topic. Well don't be, have a look at our <a href="<!--% absolute_path(baseurl) %-->eps/index.html">archive</a> to see how diverse the contributions have been. You're probably worried about the quality of your audio, that you sound funny, that English isn't your native language, that you suffer from a speech impediment, that your show has loads of ummms and awws in it, well don't be. We have plenty of hosts that fall into all these categories but continue to produce great shows.
</p>
<p>
At the end of the day the show is about the content and not the quality of the audio. That's not to say we won't help you with ways to improve the audio if you wish, or narrate your script if you can't or won't record it yourself. Drop into the IRC channel <a href="https://web.libera.chat/gamja/?channels=oggcastplanet">#oggcastplanet</a> where there are people who will help.<br />
</p>
<h2 id="motto">Our Mottos</h2>
<blockquote>Any audio is better than no audio.</blockquote>
<blockquote>Any topic of intrest to hackers.</blockquote>
<blockquote>It ain't a show unless it's on the server.</blockquote>
<blockquote>If you tell us you are doing a show, then you owe us a show.</blockquote>
<p>You don't need anyones permission to upload a show, but if you have any questions then drop into the <a href="https://web.libera.chat/gamja/?channels=oggcastplanet">#oggcastplanet</a> channel on freenode and chat with a live person 24/7.
</p>

View File

@ -6,7 +6,7 @@
<!--% query_hpr_show_count = DBI.prepare('
SELECT id
FROM eps
WHERE eps.hostid = ?
WHERE eps.hostid = ?
')
%-->
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows)
@ -25,18 +25,18 @@
')
%-->
<!--% query_twat_shows = DBI.prepare('
SELECT
eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
SELECT
eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags,
eps.title, eps.summary, eps.tags,
eps.notes,
hosts.local_image,
hosts.hostid,
hosts.host, hosts.email,
hosts.hostid,
hosts.host, hosts.email, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid
FROM twat_eps AS eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
WHERE hosts.hostid = ?
ORDER BY eps.id DESC
@ -58,6 +58,7 @@
<p><!--% get_avatar(this_host.hostid, this_host.host) %--><br>
<label>Host ID</label>: <!--% this_host.hostid %--><br><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>
</p>
<!--% FOREACH hpr_show IN hpr_shows; %-->
@ -71,4 +72,4 @@
<p class="listen-in"><!--% display_listen_in(twat_show.id,"twat") %--></p>
<!--% END %-->
</article>
<p><a href="contribute.html">Become a Correspondent</a></p>
<p><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Become a Correspondent</a></p>

View File

@ -2,7 +2,7 @@
<!--% PROCESS 'shared-avatar.tpl.html' %-->
<article>
<h2 class="title">Correspondents</h2>
<p>For more information on how to become a Correspondent see our <a href="<!--% absolute_path(baseurl) %-->contribute.html">contribute</a></center> page. To add a logo here, either email one to admin at hpr or setup your email on <a href="https://en.gravatar.com/">Gravatar</a>. To protect your browsing privacy we gather the images every hour and serve them directly from HPR.<p />
<p>For more information on how to become a Correspondent see our <a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">contribute</a></center> page. To add a logo here, either email one to admin at hpr or setup your email on <a href="https://en.gravatar.com/">Gravatar</a>. To protect your browsing privacy we gather the images every hour and serve them directly from HPR.<p />
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
<!--% host_cnt = 0 %-->
<table class="hosts">
@ -29,5 +29,5 @@
</tr><!--% host_cnt = host_cnt + 1 %-->
<!--% END %-->
</table>
<p><a href="<!--% absolute_path(baseurl) %-->contribute.html">Become a Correspondent</a></p>
<p><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Become a Correspondent</a></p>
</article>

View File

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

View File

@ -18,9 +18,10 @@
</p>
<p><!--% show_avatar(episode.hostid, episode.host) %-->
Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(episode.hostid) %-->.html"><!--% episode.host %--></a> on <span><!--% episode.date %--></span> is flagged as <span><!--% display_explicit(episode.explicit) %--></span> and is released under a <span><!--% episode.license %--> license</span>. <br>
<!--% display_tags(episode.tags) %-->
<!--% display_tags(episode.tags) %-->
<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) %-->
</p>
<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 %-->
<!--% 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 %-->
@ -62,11 +63,11 @@ Subscribe to the comments <a href="<!--% absolute_path(baseurl) %-->comments.rss
<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="<!--% absolute_path(baseurl) %-->contribute.html">record</a> a response show instead.
If you can't fit everything you want to say in the comment below then you really should <a href="<!--% absolute_url(baseurl) %-->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="<!--% absolute_path(baseurl) %-->contribute.html">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>.
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to <a href="<!--% absolute_url(baseurl) %-->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="<!--% hub_baseurl %-->comment_confirm.php">
<fieldset>
@ -109,7 +110,7 @@ Subscribe to the comments <a href="<!--% absolute_path(baseurl) %-->comments.rss
</tr>
<!-- . -->
<tr>
<td>Who hosted this show?</td>
<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>

View File

@ -16,8 +16,8 @@
<h2 id="twat_episodes">Today With a Techie Archived Shows</h2>
<p>
<!-- Creative Commons License -->
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.png" width="88" height="31" /></a><br>The following work is licensed under a <a rel="license" href="http://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>
<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>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

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

View File

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

View File

@ -11,34 +11,36 @@
<!--% img_re = '(?six)^(.*?)\<img ([^\>]+\>)(.+)$' %-->
<!--% lazy_re = '(?i)loading="lazy"' %-->
<!--% WHILE (matches = lines.match(img_re)) %-->
<!--% img_tag = matches.1 %-->
<!--% after_html = matches.2 %-->
<!--% matches.0 %-->
<!--% IF (img_tag.search(lazy_re)) %-->
<!--% img_tag = matches.1 %-->
<!--% after_html = matches.2 %-->
<!--% matches.0 %-->
<!--% IF (img_tag.search(lazy_re)) %-->
<img <!--% img_tag %-->
<!--% ELSE %-->
<!--% ELSE %-->
<img loading="lazy" <!--% img_tag %-->
<!--% END %-->
<!--% lines = after_html %-->
<!--% END %-->
<!--% lines = after_html %-->
<!--% END %-->
<!--% after_html %-->
<!--% END %-->
<hr>
<article>
<header>
<h3>Welcome to HPR the Community Podcast</h3>
<h3>Welcome to HPR, the Community Podcast</h3>
</header>
<!--% days_till_next_episode = 0 %-->
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
<!--% FOREACH next_available_episode_result IN DBI.query(query_next_available_episode)
%-->
<!--% USE date %-->
<!--% 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) %-->
<!--% END %-->
<!--% USE date %-->
<!--% episodes = DBI.query(query_next_available_episode).get_all() %-->
<!--% last_date = episodes.0.date.split('-') %-->
<!--% 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')) %-->
<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_path(baseurl) %-->contribute.html">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>
<!--% display_call_for_shows() %-->
<hr>
@ -54,7 +56,7 @@
<h3><!--% latest_episodes.summary%--></h3>
<p class="meta"$><!--% show_avatar(latest_episodes.hostid, latest_episodes.host, host_cnt) %-->
Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(latest_episodes.hostid) %-->.html"><!--% latest_episodes.host %--></a> on <!--% latest_episodes.date %--> is flagged as <!--% display_explicit(latest_episodes.explicit) %--> and released under a <!--% latest_episodes.license %--> license. <br>
<!--% display_tags(latest_episodes.tags) %-->
<!--% display_tags(latest_episodes.tags) %-->
<span><!--% show_series(latest_episodes.series, latest_episodes.seriesid) %--></span>
<span><label>Comments: </label><!--% display_comments_tally(latest_episodes.id, latest_episodes.eps_tally) %--></span><br>
<!--% listen_now(latest_episodes, "hpr", baseurl, media_baseurl) %-->
@ -72,7 +74,7 @@
<hr>
<h1>Previous five weeks</h1>
</header>
<!--% FOREACH last_5_weeks_episodes IN DBI.query(query_last_5_weeks_episodes)
<!--% FOREACH last_5_weeks_episodes IN DBI.query(query_last_5_weeks_episodes)
%-->
<!--% show_summary(last_5_weeks_episodes) %-->
<p class="listen-in"><!--% display_listen_in(last_5_weeks_episodes.id) %--></p>

View File

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

View File

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

View File

@ -16,7 +16,7 @@
<li>Installing a VPN to your home network</li>
<li>Init and System.d</li>
<li>Episodes for the <a href="<!--% absolute_url(baseurl,'series/0007.html') %-->">LPI</a>, or the Networking series.</li>
<li><a href="http://opensourcemusician.com/index.php/Beginning_Audio_Series_for_HPR_and_OSMP_Release">Beginning Audio Series for HPR and OSMP Release</a></li>
<li><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>Grub 2.0 introduction and customization.</li>
<li>FM Transmitter hack to listen into internet streams</li>

View File

@ -5,7 +5,7 @@
<hr />
<h2>Search Show Tags</h2>
<p>
<a href="https://www.hackerpublicradio.org/tags.html">Complete list of all the Tags</a></p>
<a href="<!--% absolute_path(baseurl) %-->tags.html">Complete list of all the Tags</a></p>
<hr />
<h2>Google</h2>
<form name="google-search" method="get" action="https://www.google.com/search">
@ -27,7 +27,7 @@
<input type="submit" value="Search HPR with DuckDuckGo" />
</form>
<br />
<a href="httpss://duckduckgo.com/privacy">privacy policy</a>
<a href="https://duckduckgo.com/privacy">privacy policy</a>
</p>
<hr />
<h2>Bing</h2>

View File

@ -10,7 +10,7 @@
<li>Open/closed: <!--% display_choice(series.private, 'closed', 'open') %--></li>
<li>Date of earliest show: <!--% series.earliest_show %--></li>
<li>Date of latest show: <!--% series.latest_show %--></li>
<li>Series RSS feeds: <a href="https://www.hackerpublicradio.org/hpr_ogg_rss.php?series=<!--% series.id %-->">ogg</a>, <a href="https://www.hackerpublicradio.org/hpr_spx_rss.php?series=<!--% series.id %-->">spx</a>, <a href="https://www.hackerpublicradio.org/hpr_mp3_rss.php?series=<!--% series.id %-->">mp3</a></li>
<li>Series RSS feeds: <a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=<!--% series.id %-->">ogg</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=<!--% series.id %-->">spx</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=<!--% series.id %-->">mp3</a></li>
</ul>
<em><!--% series.description %--></em>
<!--% END %-->

View File

@ -13,7 +13,7 @@
<li>Open/closed: open</li>
<li>Date of earliest show: <!--% series.earliest_show %--></li>
<li>Date of latest show: <!--% series.latest_show %--></li>
<li>Series RSS feeds: <a href="https://www.hackerpublicradio.org/hpr_ogg_rss.php?series=<!--% series.id %-->&full=1&gomax=1">ogg</a>, <a href="https://www.hackerpublicradio.org/hpr_spx_rss.php?series=<!--% series.id %-->&full=1&gomax=1">spx</a>, <a href="https://www.hackerpublicradio.org/hpr_mp3_rss.php?series=<!--% series.id %-->&full=1&gomax=1">mp3</a></li>
<li>Series RSS feeds: <a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=<!--% series.id %-->&full=1&gomax=1">ogg</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=<!--% series.id %-->&full=1&gomax=1">spx</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=<!--% series.id %-->&full=1&gomax=1">mp3</a></li>
</ul>
<div><em><!--% series.description %--></em></div>
<!--% END %-->

View File

@ -7,19 +7,18 @@
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">Full Episode Guide</a> ← Complete list of all the Shows.</li>
<li><a href="<!--% absolute_path(baseurl) %-->series/index.html">In-Depth Series</a> ← Overview of the In-Depth Series.</li>
<li><a href="<!--% absolute_path(baseurl) %-->download.html">Download Options</a> ← How to download the entire archive.</li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#download">Download Options</a> ← How to download the entire archive.</li>
</ul>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Give Shows</a> ← Upload your podcast show here.</li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Give Shows</a> ← Upload your podcast show here.</li>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->theme.html">Theme</a> ← Information about HPR Theme Music.</li>
<li><a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Topics</a> ← Requested topics.</li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html">Recording</a> ← How to record a podcast.</li>
<li><a href="<!--% absolute_path(baseurl) %-->request_a_slot.html">Scheduling</a> ← Picking a slot for your show.</li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#requested_topics">Topics</a> ← Requested topics.</li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#recording_a_podcast">Recording</a> ← How to record a podcast.</li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#requesting_slot">Scheduling</a> ← Picking a slot for your show.</li>
</ul>
<li><a href="<!--% absolute_path(baseurl) %-->help_out.html">Contribute</a> ← How you can help HPR.</li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#how_to_help">Contribute</a> ← How you can help HPR.</li>
<ul>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Submit Show</a> ← Upload your podcast show here.</li>
<li><a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Topics</a> ← Requested topics.</li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Submit Show</a> ← Upload your podcast show here.</li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#requested_topics">Topics</a> ← Requested topics.</li>
</ul>
<li><a href="<!--% absolute_path(baseurl) %-->about.html">About</a> ← Information about the History and Governance of HPR.</li>
<ul>

View File

@ -1,5 +1,4 @@
<h1>RSS Syndication</h1>
<p><small><em><a href="http://hackerpublicradio.org/advanced_rss_settings.php">Advanced Settings</a>.</em></small></p>
<article>
<header>
@ -38,9 +37,9 @@
Use these feeds to keep up to date with the latest HPR Episodes.
</p>
<ul>
<li><a href="hpr_ogg_rss.php">ogg</a> Larger file size higher quality feed.</li>
<li><a href="hpr_rss.php">mp3</a> Larger file size regular quality feed in a common format.</li>
<li><a href="hpr_spx_rss.php">spx</a> Small file size lower quality feed. <br/>Ideal for dial-up/mobile connections.</li>
<li><a href="<!--% absolute_url(baseurl) %-->hpr_ogg_rss.php">ogg</a> Larger file size higher quality feed.</li>
<li><a href="<!--% absolute_url(baseurl) %-->hpr_rss.php">mp3</a> Larger file size regular quality feed in a common format.</li>
<li><a href="<!--% absolute_url(baseurl) %-->hpr_spx_rss.php">spx</a> Small file size lower quality feed. <br/>Ideal for dial-up/mobile connections.</li>
</ul>
<p>
We also maintain an <a href="https://archive.org/details/hackerpublicradio">Archive.org</a> page where you can get the shows in even more formats. For more recent shows we are now including the original upload as delivered.
@ -78,12 +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://hub.hackerpublicradio.org/stats.json">Current Statistics on the HPR Project (updated every 15 mins)</a></li>
<ul>
</article>
<article>
@ -92,66 +95,41 @@
</header>
<ul>
<li><a href="https://archive.org/details/hackerpublicradio">Archive.org</a></li>
<li><a href="https://itunes.apple.com/us/podcast/hacker-public-radio/id281699640?mt=2">iTunes</a></li>
<li><a href="https://podcasts.google.com/feed/aHR0cDovL2hhY2tlcnB1YmxpY3JhZGlvLm9yZy9ocHJfcnNzLnBocA">Google Podcasts</a></li>
<li><a href="https://player.fm/series/hacker-public-radio">PlayerFM</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://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://player.fm/series/hacker-public-radio">PlayerFM</a></li>
<li><a href="https://podcasts.apple.com/us/podcast/hacker-public-radio/id281699640">iTunes</a></li>
<li><a href="https://podcasts.google.com/feed/aHR0cDovL2hhY2tlcnB1YmxpY3JhZGlvLm9yZy9ocHJfcnNzLnBocA">Google Podcasts</a></li>
<li><a href="https://toppodcast.com/podcast_feeds/hacker-public-radio/">Top 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://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://www.podchaser.com/podcasts/hacker-public-radio-76781">Podchaser</a></li>
<ul>
</article>
<article>
<header>
<h1>Download Archive</h1>
<p>Please be aware that our Archive exceeds <strong>62Gb</strong> <em>(Ogg: 21Gb, Spx: 16Gb, mp3: 25Gb)</em>. We are happy for you to download them, but please make sure that you are not going to incur additional bandwidth charges on your side.</p>
<p>We will be happy to post you DVD's of the episodes anywhere in the world if bandwidth is an issue.</p>
<h1>Download Archive</h1>
<p>Please be aware that our Archive exceeds <strong>62Gb</strong> <em>(Ogg: 21Gb, Spx: 16Gb, mp3: 25Gb)</em>. We are happy for you to download them, but please make sure that you are not going to incur additional bandwidth charges on your side.</p>
<p>We will be happy to post you DVD's of the episodes anywhere in the world if bandwidth is an issue.</p>
</header>
<h2>Full Episode Guide</h2>
<p>
The <a href="<!--% absolute_path(baseurl) %-->eps/index.html">compete episode guide</a> is available to you, and it lists all the shows on one page going right back to the very first episode.
</p>
<h2>Command line download</h2>
<p>
You can download the audio of the episodes directly from the command line using the following commands:
</p>
<ul>
<li>ogg:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].ogg' -o "hpr#1.ogg"</span></li>
<li>spx:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].spx' -o "hpr#1.spx"</span></li>
<li>mp3:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].mp3' -o "hpr#1.mp3"</span></li>
</li>
</ul>
<h2>Full RSS feed, BitTorrent and Magnet links</h2>
<p>The full rss feed is updated daily and contains the complete show note with links to supporting articles. The torrent/magnet also contains this information and is a snaphot of the archive taken between 2007 and November 2013. </p>
<ul>
<li><span style="font-family:monospace;">ogg: <a href="hpr_total_ogg_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Ogg-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:390C66903BBB2B6A067C438C70B2E90988AA8207&dn=HPR-Ogg-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
<li><span style="font-family:monospace;">spx: <a href="hpr_total_spx_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Mp3-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:E2573BEF0209B8C2E3C7908BAF220EC34D4A5B8E&dn=HPR-Speex-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
<li><span style="font-family:monospace;">mp3: <a href="hpr_total_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Mp3-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:6E9492AD78BCCA2B8D6A42C9C0BCAB0E6FA778F8&dn=HPR-Mp3-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
</ul>
<h3>Direct download of the remaining shows</h3>
<p>
You can download the remaining episodes since the torrent was created directly from the command line using the following commands:
</p>
<ul>
<li>ogg:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].ogg' -o "hpr#1.ogg"</span>
</li>
</li>
</ul>
<ul>
<li>spx:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].spx' -o "hpr#1.spx"</span>
</li>
</li>
</ul>
<ul>
<li>mp3:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].mp3' -o "hpr#1.mp3"</span>
</li>
</li>
</ul>
<footer>
<p>Big to DeepGeek and the team for providing the BitTorrent service.</p>
</footer>
<h2>Full Episode Guide</h2>
<p>
The <a href="<!--% absolute_path(baseurl) %-->eps/index.html">compete episode guide</a> is available to you, and it lists all the shows on one page going right back to the very first episode.
</p>
<h2>Command line download</h2>
<p>
You can download the audio of the episodes directly from the command line using the following commands:
</p>
<ul>
<li>ogg:<br />
<span style="font-family:monospace;">curl '<!--% absolute_path(baseurl) %-->eps/hpr[0001-<!--% episode.latest %-->].ogg' -o "hpr#1.ogg"</span></li>
<li>spx:<br />
<span style="font-family:monospace;">curl '<!--% absolute_path(baseurl) %-->eps/hpr[0001-<!--% episode.latest %-->].spx' -o "hpr#1.spx"</span></li>
<li>mp3:<br />
<span style="font-family:monospace;">curl '<!--% absolute_path(baseurl) %-->eps/hpr[0001-<!--% episode.latest %-->].mp3' -o "hpr#1.mp3"</span></li>
</ul>
</article>

View File

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

View File

@ -3,6 +3,6 @@
<li><a href="<!--% hub_baseurl %-->"><strong>⇧Upload⇧</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->help_out.html">Contribute »</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Submit Show</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Submit Show</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Topics</a></li>
</ul>

View File

@ -2,10 +2,10 @@
<ul>
<li><a href="<!--% hub_baseurl %-->"><strong>⇧Upload⇧</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Give Shows »</strong></a>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">Give Shows »</strong></a>
<li><a href="<!--% absolute_path(baseurl) %-->stuff_you_need_to_know.html">Info</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->theme.html">Theme</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->requested_topics.html">Topics</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->recording.html">Recording</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->request_a_slot.html">Scheduling</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#recording_a_podcast">Recording</a></li>
<li><!--% absolute_url(baseurl) %-->about.html#requesting_slot">Scheduling</a></li>
</ul>

View File

@ -3,8 +3,8 @@
<li><a href="<!--% hub_baseurl %-->calendar.php"><strong>⇧Upload⇧</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home »</strong></a></li>
<li><a href="<!--% absolute_path(baseurl) %-->syndication.html">Get Shows</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->contribute.html">Give Shows</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->help_out.html">Contribute</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) %-->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) %-->about.html">About</a></li>
<li><a href="<!--% absolute_path(baseurl) %-->search.html">Search</a></li>

View File

@ -22,7 +22,7 @@
display:none;
}
</style>
<link rel="shortcut icon" href="hpr.ico" >
<link rel="shortcut icon" href="<!--% absolute_url(baseurl) %-->hpr.ico" >
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Ogg Vorbis RSS" href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php" />
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Speex RSS" href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php" />
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio MP3 RSS" href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php" />
@ -39,27 +39,27 @@
<body id="give">
<div id="container" class="shadow">
<header>
<a href=""><img id="hprlogo" src="<!--% absolute_path(baseurl) %-->images/hpr_logo.png" alt=""></a>
<div id="hpr_banner">
<p id="accessible_menu">
<a href="<!--% absolute_path(baseurl) %-->sitemap.html">Site Map</a>
- <a href="#maincontent">skip to main content</a>
</p>
<h1 id="sitename">
<a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">H</a>acker
<a href="<!--% absolute_path(baseurl) %-->comments_viewer.html">P</a>ublic
<a href="<!--% absolute_path(baseurl) %-->syndication.html">R</a>adio
</h1>
<h2>Your ideas, projects, opinions - podcasted.</h2>
<a href="<!--% absolute_path(baseurl) %-->"><img id="hprlogo" src="<!--% absolute_path(baseurl) %-->images/hpr_logo.png" alt="hprlogo"></a>
<div id="hpr_banner">
<p id="accessible_menu">
<a href="<!--% absolute_path(baseurl) %-->sitemap.html">Site Map</a>
- <a href="#maincontent">skip to main content</a>
</p>
<h1 id="sitename">
<a href="<!--% absolute_path(baseurl) %-->correspondents/index.html">H</a>acker
<a href="<!--% absolute_path(baseurl) %-->comments_viewer.html">P</a>ublic
<a href="<!--% absolute_path(baseurl) %-->syndication.html">R</a>adio
</h1>
<h2>Your ideas, projects, opinions - podcasted.</h2>
<h3>New episodes every weekday Monday through Friday.<br />
<em><small>This page was <a href="https://repo.anhonesthost.net/rho_n/hpr_generator">generated</a> by <a href="mailto:<!--% generator_email %-->"><!--% generator_name %--></a> at <time dateTime="<!--% format_iso8601_date(date.now) %-->"><!--% format_feed_date(date.now) %--></time></small></em></h3>
<em><small>This page was <a href="https://repo.anhonesthost.net/rho_n/hpr_generator">generated</a> by <a href="mailto:<!--% generator_email %-->"><!--% generator_name %--></a> at <time dateTime="<!--% format_iso8601_date(date.now) %-->"><!--% format_feed_date(date.now) %--></time></small></em></h3>
</div>
<hr />
<nav class="menu" role="navigation">
</div>
<hr />
<nav class="menu" role="navigation">
<!--% INCLUDE $navigation %-->
</nav>
</nav>
</header>
<main id="maincontent">
@ -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">
@ -86,35 +86,41 @@
<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://plus.google.com/u/0/s/hacker%20public%20radio" target="_blank">Google+</a></li>
<li><a href="https://www.facebook.com/home.php?sk=group_130169220378872¬if_t=group_r2j" 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="http://itunes.apple.com/us/podcast/hacker-public-radio/id281699640" target="_blank">iTunes</a></li>
<li><a href="https://play.google.com/music/m/Igrhzh3izdb5qxv536ii6qpbgv4?t=Hacker_Public_Radio" target="_blank">Google Play</a></li>
</ul>
</nav>
</nav>
<nav class="column">
<h2>Affiliates</h2>
<h2>Unaffiliates</h2>
<ul>
<li><a href="http://www.hackradiolive.org/">Hack Radio Live</a></li>
<li><a href="http://www.binrev.com/">Binary Revolution</a></li>
<li><a href="http://hackermedia.org">Hackermedia</a></li>
<li><a href="http://www.nomicon.info/">Infonomicon</a></li>
<li><a href="http://www.packetsniffers.org/">Packetsniffers</a></li>
<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="http://cchits.net/">cchits.net</a></li>
<li><a href="http://freemusi.cc/">FreeMusi.cc</a></li>
<li><a href="http://freesound.org/">freesound.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="http://openclipart.org/">openclipart.org</a></li>
<li><a href="http://openfontlibrary.org/">openfontlibrary.org</a></li>
<li><a href="http://www.openrouteservice.org/">openrouteservice.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>
@ -123,6 +129,7 @@
<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 -->
@ -132,7 +139,7 @@
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>
The <span property="dct:title">HPR Website Design</span> is released to the <a rel="license" href="http://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>
<hr />
</div><!-- copyright -->

View File

@ -1,18 +1,18 @@
<!--% query_hpr_shows = '
SELECT
eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags,
eps.title, eps.summary, eps.tags,
eps.notes,
hosts.local_image,
hosts.hostid,
hosts.host, hosts.email,
hosts.hostid,
hosts.host, hosts.email, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
WHERE hosts.hostid = ? AND eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
ORDER BY eps.id DESC
WHERE hosts.hostid = ? AND eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
ORDER BY eps.id DESC
'
%-->

View File

@ -1,18 +1,18 @@
<!--% query_hpr_shows = '
SELECT
eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags,
eps.title, eps.summary, eps.tags,
eps.notes,
hosts.local_image,
hosts.hostid,
hosts.host, hosts.email,
hosts.hostid,
hosts.host, hosts.email, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
WHERE hosts.hostid = ? AND eps.date < date(\'now\', \'+1 days\')
ORDER BY eps.id + 0 DESC
WHERE hosts.hostid = ? AND eps.date < date(\'now\', \'+1 days\')
ORDER BY eps.id + 0 DESC
'
%-->

View File

@ -1,58 +1,54 @@
<!--% query_next_available_episode = '
WITH next_id AS (
SELECT id, id + 1 AS \'id_next\', date as \'last_date\'
FROM eps
WHERE eps.date > NOW()
)
SELECT
MIN(next_id.id_next) AS \'next_id\',
DATE_FORMAT(DATE_ADD(MIN(last_date), INTERVAL 1 DAY), \'%Y\') AS \'last_year\',
DATE_FORMAT(DATE_ADD(MIN(last_date), INTERVAL 1 DAY), \'%d\') AS \'last_day\',
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
'
SELECT id, date FROM eps e WHERE id = (
SELECT id + 1 FROM eps mo
WHERE NOT EXISTS (
SELECT NULL
FROM eps mi
WHERE mi.id = mo.id + 1
)
ORDER BY id
LIMIT 1) - 1
'
%-->
<!--% query_latest_episodes = '
WITH comment_tallies AS (
SELECT
WITH comment_tallies AS (
SELECT
eps_id,
COUNT(eps_id) AS eps_tally
FROM comments
GROUP BY eps_id
GROUP BY eps_id
)
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags,
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags,
eps.notes,
hosts.local_image,
hosts.hostid,
hosts.hostid,
hosts.host, hosts.email,
miniseries.name AS series, miniseries.id AS seriesid,
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
FROM eps
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
WHERE eps.date <= UTC_DATE()
ORDER BY eps.id DESC
ORDER BY eps.id DESC
LIMIT 10
'
%-->
<!--% query_last_5_weeks_episodes = '
SELECT
eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
eps.date, eps.license, eps.title, eps.summary,
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.title, eps.summary,
eps.duration, eps.notes, eps.tags,
hosts.hostid,
hosts.host, hosts.email, hosts.local_image,
hosts.hostid,
hosts.host, hosts.email, hosts.local_image,
miniseries.name AS series, miniseries.id AS seriesid
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
WHERE eps.date <= UTC_DATE()
ORDER BY eps.id DESC

View File

@ -1,58 +1,54 @@
<!--% query_next_available_episode = '
WITH next_id AS (
SELECT id, id + 1 AS \'id_next\', date as \'last_date\'
FROM eps
WHERE eps.date > date(\'now\')
)
SELECT
MIN(next_id.id_next) AS \'next_id\',
strftime(\'%Y\', DATE (MIN (last_date), \'+1 Days\')) AS \'last_year\',
strftime(\'%d\', DATE (MIN (last_date), \'+1 Days\')) AS \'last_day\',
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
'
SELECT id, date FROM eps e WHERE id = (
SELECT id + 1 FROM eps mo
WHERE NOT EXISTS (
SELECT NULL
FROM eps mi
WHERE mi.id = mo.id + 1
)
ORDER BY id
LIMIT 1) - 1
'
%-->
<!--% query_latest_episodes = '
WITH comment_tallies AS (
SELECT
WITH comment_tallies AS (
SELECT
eps_id,
COUNT(eps_id) AS eps_tally
FROM comments
GROUP BY eps_id
GROUP BY eps_id
)
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags,
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.duration,
eps.title, eps.summary, eps.tags,
eps.notes,
hosts.local_image,
hosts.hostid,
hosts.hostid,
hosts.host, hosts.email,
miniseries.name AS series, miniseries.id AS seriesid,
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
FROM eps
COALESCE (comment_tallies.eps_tally, 0) AS eps_tally
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
WHERE eps.date <= date(\'now\')
ORDER BY eps.id + 0 DESC
ORDER BY eps.id + 0 DESC
LIMIT 10
'
%-->
<!--% query_last_5_weeks_episodes = '
SELECT
eps.id,
CASE eps.explicit WHEN 1 THEN \'Explicit\' ELSE \'Clean\' END AS explicit ,
eps.date, eps.license, eps.title, eps.summary,
SELECT
eps.id,
eps.explicit,
eps.date, eps.license, eps.title, eps.summary,
eps.duration, eps.notes, eps.tags,
hosts.hostid,
hosts.host, hosts.email, hosts.local_image,
hosts.hostid,
hosts.host, hosts.email, hosts.local_image,
miniseries.name AS series, miniseries.id AS seriesid
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
FROM eps
INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id
WHERE eps.date <= date(\'now\')
ORDER BY eps.id + 0 DESC

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" >
<rss version="2.0" xmlns:atom="https://www.w3.org/2005/Atom" >
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
<!--% USE date %-->
@ -12,7 +12,7 @@
<managingEditor>feedback.nospam@nospam.hackerpublicradio.org (HPR Feedback)</managingEditor>
<webMaster>admin.nospam@nospam.hackerpublicradio.org (HPR Webmaster)</webMaster>
<generator>https://repo.anhonesthost.net/rho_n/hpr_generator</generator>
<docs>http://www.rssboard.org/rss-specification</docs>
<docs>https://www.rssboard.org/rss-specification</docs>
<ttl>600</ttl>
<image>
<url><!--% baseurl %-->images/hpr_feed_small.png</url>

View File

@ -7,7 +7,7 @@
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" >
<channel>
<title>Hacker Public Radio</title>
<link>https://www.hackerpublicradio.org/about.html</link>
<link><!--% absolute_url(baseurl) %-->about.html</link>
<itunes:subtitle>A daily show hosted by the community on topics that are of interest to hackers and hobbyists.</itunes:subtitle>
<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.</description>
<language>en-us</language>
@ -17,7 +17,7 @@
<itunes:category text="Education">
<itunes:category text="Training"/>
</itunes:category>
<itunes:image href="https://www.hackerpublicradio.org/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>
@ -31,15 +31,15 @@
<webMaster>admin@hackerpublicradio.org (HPR Volunteer)</webMaster>
<generator>site-generator</generator>
<docs>http://www.rssboard.org/rss-specification</docs>
<ttl>43200</ttl>
<ttl>720</ttl>
<skipDays>
<day>Saturday</day>
<day>Sunday</day>
</skipDays>
<image>
<url>https://www.hackerpublicradio.org/images/hpr_feed_small.png</url>
<url><!--% absolute_url(baseurl) %-->images/hpr_feed_small.png</url>
<title>Hacker Public Radio</title>
<link>https://www.hackerpublicradio.org/about.html</link>
<link><!--% absolute_url(baseurl) %-->about.html</link>
<description>The Hacker Public Radio Old Microphone Logo</description>
<height>164</height>
<width>144</width>
@ -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="https://www.hackerpublicradio.org/images/hpr_feed_itunes.png"/>
<googleplay:image href="<!--% absolute_url(http_baseurl) %-->images/hpr_feed_itunes.png"/>
<googleplay:category text="Technology"/>
<atom:link href="https://www.hackerpublicradio.org/<!--% 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

@ -57,7 +57,7 @@ or
<!--% 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>
<!--% END %-->
</h3>

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="https://www.hackerpublicradio.org/images/hpr_feed_itunes.png"/>
<link>https://www.hackerpublicradio.org/eps/hpr<!--% zero_pad_left(episode.id) %-->/index.html</link>
<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="http://hackerpublicradio.org/eps/hpr<!--% zero_pad_left(episode.id) %-->.<!--% file_extension %-->" length="<!--% episode.length %-->" type="audio/<!--% audio_mime_type %-->"/>
<guid>http://hackerpublicradio.org/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

@ -2,7 +2,9 @@
<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<!--% zero_pad_left(episode.id) %-->.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="<!--% media_path(episode.id, episode_type, 'txt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.txt</a></li>
<li><a href="https://en.wikipedia.org/wiki/WebVTT">WebVTT</a>: <a href="<!--% media_path(episode.id, episode_type, 'vtt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.vtt</a></li>

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