Compare commits
No commits in common. "main" and "i222-fix-css" have entirely different histories.
main
...
i222-fix-c
@ -95,11 +95,11 @@ program which creates the hpr.db file:
|
|||||||
|
|
||||||
`./utils/mysql2sqlite ./hpr-sqlite.sql | sqlite3 ./hpr.db`
|
`./utils/mysql2sqlite ./hpr-sqlite.sql | sqlite3 ./hpr.db`
|
||||||
|
|
||||||
For convenience, the update-hpr-db.sh script in the utils directory
|
For convenience, the update-sqlite-db.sh script in the utils directory
|
||||||
automates the above steps (including downloading the hpr.sql file).
|
automates the above steps (including downloading the hpr.sql file).
|
||||||
From the root of the local hpr_generator repository run:
|
From the root of the local hpr_generator repository run:
|
||||||
|
|
||||||
`./utils/update-hpr-db.sh`
|
`./utils/update-sqlite-db.sh`
|
||||||
|
|
||||||
# Configure the site-generator
|
# Configure the site-generator
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 185 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 383 KiB |
Binary file not shown.
Before Width: | Height: | Size: 182 KiB |
Binary file not shown.
Before Width: | Height: | Size: 12 KiB |
Binary file not shown.
Before Width: | Height: | Size: 109 KiB |
Binary file not shown.
Binary file not shown.
14
site.cfg
14
site.cfg
@ -7,6 +7,13 @@
|
|||||||
# Configuration settings for SQLite
|
# Configuration settings for SQLite
|
||||||
database: sqlite
|
database: sqlite
|
||||||
driver: dbi:SQLite:hpr.db
|
driver: dbi:SQLite:hpr.db
|
||||||
|
#user: (not used - leave blank)
|
||||||
|
#password: (not used - leave blank)
|
||||||
|
# Configuration settings for MySQL
|
||||||
|
#database: mysql
|
||||||
|
#driver: dbi:mysql:database=hpr_hpr:hostname=localhost
|
||||||
|
#user: hpr-generator (Suggested user with read-only privileges)
|
||||||
|
#password: ********* (Password for user)
|
||||||
|
|
||||||
# Configure the location of the templates and the generated HTML
|
# Configure the location of the templates and the generated HTML
|
||||||
[app_paths]
|
[app_paths]
|
||||||
@ -20,9 +27,11 @@ output_path: ./public_html
|
|||||||
[root_template]
|
[root_template]
|
||||||
content: page.tpl.html
|
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: https://hackerpublicradio.org/
|
||||||
http_baseurl: http://hackerpublicradio.org/
|
http_baseurl: http://hackerpublicradio.org/
|
||||||
hub_baseurl: https://hub.hackerpublicradio.org/
|
hub_baseurl: https://hub.hackerpublicradio.org/
|
||||||
media_baseurl: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr$eps_id/
|
media_baseurl: https://archive.org/download/hpr$eps_id/
|
||||||
generator_name: The HPR Robot
|
generator_name: The HPR Robot
|
||||||
generator_email: robot.nospam@nospam.hackerpublicradio.org
|
generator_email: robot.nospam@nospam.hackerpublicradio.org
|
||||||
|
|
||||||
@ -112,7 +121,8 @@ content: content-tags.tpl.html
|
|||||||
navigation: navigation-get-shows.tpl.html
|
navigation: navigation-get-shows.tpl.html
|
||||||
content: content-twat_episode.tpl.html
|
content: content-twat_episode.tpl.html
|
||||||
multipage: true
|
multipage: true
|
||||||
filename: eps/twt[id]/index.html
|
filename: eps/twat[id]/index.html
|
||||||
|
media_baseurl: https://www.hackerpublicradio.org/eps/
|
||||||
|
|
||||||
[mumble-howto]
|
[mumble-howto]
|
||||||
navigation: navigation-about.tpl.html
|
navigation: navigation-about.tpl.html
|
||||||
|
@ -66,9 +66,8 @@
|
|||||||
<p>See the section <a href="<!--% absolute_url(baseurl,'about.html#stuff_you_need_to_know') %-->" >stuff you need to know</a> for more information.</p>
|
<p>See the section <a href="<!--% absolute_url(baseurl,'about.html#stuff_you_need_to_know') %-->" >stuff you need to know</a> for more information.</p>
|
||||||
<h3 id="recent_policy_changes">Recent Policy Changes</h3>
|
<h3 id="recent_policy_changes">Recent Policy Changes</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2024-October/004791.html">Clarification that contributions are CC BY-SA 4.0 unless otherwise stated</a></li>
|
|
||||||
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-July/004191.html">HPR will move #oggcastplanet on libera,
|
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-July/004191.html">HPR will move #oggcastplanet on libera,
|
||||||
and we will also include links to the matrix</a>, and <a href="https://infosec.exchange/@hpr">Mastodon</a> channel</li>
|
and we will also include links to the matrix, and <a href="https://botsin.space/@hpr">Mastodon</a> channel</a></li>
|
||||||
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-August/004200.html">Existing shows will be
|
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-August/004200.html">Existing shows will be
|
||||||
flagged with the current version and new shows will default to "Attribution 4.0 International (CC BY 4.0)"</a></li>
|
flagged with the current version and new shows will default to "Attribution 4.0 International (CC BY 4.0)"</a></li>
|
||||||
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-November/004328.html">The Intro Outro will be
|
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-November/004328.html">The Intro Outro will be
|
||||||
@ -80,7 +79,7 @@
|
|||||||
<p>
|
<p>
|
||||||
Our hosting is kindly provided by <a href="<!--% absolute_url(baseurl) %-->correspondents/0174.html">Josh</a> from
|
Our hosting is kindly provided by <a href="<!--% absolute_url(baseurl) %-->correspondents/0174.html">Josh</a> from
|
||||||
<a href="https://anhonesthost.com/shared-hosting/">AnHonestHost.com</a>.
|
<a href="https://anhonesthost.com/shared-hosting/">AnHonestHost.com</a>.
|
||||||
We would appreciate it if you could <a href="https://secure.anhonesthost.com/store/hpr-hosting-cost-donations">donate</a> to help
|
We would appreciate it if you could <a href="https://secure.anhonesthost.com/cart.php?gid=17">donate</a> to help
|
||||||
reduce his costs in funding the hosting. He is also accepting bitcoins to <em>1KsxJr9HtsdaUeU7yaV9bk9bQi21UPBtUq</em>
|
reduce his costs in funding the hosting. He is also accepting bitcoins to <em>1KsxJr9HtsdaUeU7yaV9bk9bQi21UPBtUq</em>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@ -90,36 +89,25 @@
|
|||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<h1 id="contact">Primary Contact Points<a href="<!--% absolute_url(baseurl,'about.html#contact') %-->">.</a></h1>
|
<h1 id="contact">Contact<a href="<!--% absolute_url(baseurl,'about.html#contact') %-->">.</a></h1>
|
||||||
|
|
||||||
|
<p>We are always looking for more hosts...</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>email: <strong>admin -at- hackerpublicradio org</strong>, will put you in touch with the Janitors who are
|
<li>email: <strong>admin -at- hackerpublicradio org</strong><br />
|
||||||
the first point of contact for any issues related to the HPR community.
|
<em>As an anti-spam measure you will get an error back but we do get your email.</em></li>
|
||||||
If you have any issue of concern please bring it to their attention first.
|
<li>Website: <a href="<!--% absolute_url(baseurl,'') %-->" ><!--% absolute_url(baseurl,'') %--></a></li>
|
||||||
<br />
|
<li>Maillist: <a href="<!--% absolute_url(baseurl,'/maillist') %-->">Mailing list</a></li>
|
||||||
<em>As an anti-spam measure you may get an error back but we do get your email.</em></li>
|
|
||||||
<li>Website: <a href="<!--% absolute_url(baseurl,'') %-->" ><!--% absolute_url(baseurl,'') %--></a>.
|
|
||||||
There is a comment link on each show where you can provide your constructive feedback.</li>
|
|
||||||
<li>Maillist: <a href="<!--% absolute_url(baseurl,'/maillist') %-->">Mailing list</a>.
|
|
||||||
While the Janitors are the first point of contact, the HPR project is
|
|
||||||
<a href="<!--% absolute_url(baseurl,'about.html#governance') %-->">governed</a> by the community.
|
|
||||||
Decisions about how Hacker Public Radio are made on the mailing list, and you can join it by going to :<br />
|
|
||||||
<a href="<!--% absolute_url(baseurl,'/maillist') %-->"><!--% absolute_url(baseurl,'/maillist') %--></a></li>
|
|
||||||
<li>Mastodon: <a href="https://infosec.exchange/@hpr">https://infosec.exchange/@hpr</a> is the official HPR Mastodon instance
|
|
||||||
and is actively monitored.</li>
|
|
||||||
<li>Matrix: <a href="https://matrix.to/#/#hpr:matrix.org" >https://matrix.to/#/#hpr:matrix.org</a> is the official HPR Matrix channel
|
|
||||||
and is actively monitored.</li>
|
|
||||||
</ul>
|
|
||||||
<h3 id="contact_secondary">Secondary Contact Points</h3>
|
|
||||||
<p>These platforms are monitored from time to time. Commenting here is less likely to get an immediate response.</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://t.me/+6fEhQrf5IEc4ZGU8">Telegram</a></li>
|
|
||||||
<li><a href="https://web.libera.chat/gamja/?channels=oggcastplanet" >#oggcastplanet</a></li>
|
<li><a href="https://web.libera.chat/gamja/?channels=oggcastplanet" >#oggcastplanet</a></li>
|
||||||
<li><a href="https://www.facebook.com/home.php?sk=group_130169220378872¬if_t=group_r2j" >Facebook</a></li>
|
<li><a href="https://www.facebook.com/home.php?sk=group_130169220378872¬if_t=group_r2j" >Facebook</a></li>
|
||||||
<li><a href="https://www.linkedin.com/company/hackerpublicradio/" >Linked-In</a></li>
|
<li><a href="https://www.linkedin.com/company/hackerpublicradio/" >Linked-In</a></li>
|
||||||
<li><a href="http://itunes.apple.com/us/podcast/hacker-public-radio/id281699640" >iTunes</a></li>
|
<li><a href="http://itunes.apple.com/us/podcast/hacker-public-radio/id281699640" >iTunes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<h2>Mail List</h2>
|
||||||
|
<p>
|
||||||
|
HPR is governed by the community, so decisions about how Hacker Public Radio should be run are made on the mailing list you can join it by going to :<br />
|
||||||
|
<a href="<!--% absolute_url(baseurl,'/maillist') %-->"><!--% absolute_url(baseurl,'/maillist') %--></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<h1 id ="press" >In the Press<a href="<!--% absolute_url(baseurl,'about.html#press') %-->">.</a></h1>
|
<h1 id ="press" >In the Press<a href="<!--% absolute_url(baseurl,'about.html#press') %-->">.</a></h1>
|
||||||
@ -158,7 +146,7 @@
|
|||||||
|
|
||||||
<h2 id="podcatcher_support">Podcatcher Support</h2>
|
<h2 id="podcatcher_support">Podcatcher Support</h2>
|
||||||
<p>
|
<p>
|
||||||
Please report your experiences with our feeds to admin@hpr</a>.
|
Please report your experiences with our feeds to <!--% absolute_url(baseurl,'about.html#contact') %-->admin@hpr</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="other_ways_to_help">Other ways to help</h2>
|
<h2 id="other_ways_to_help">Other ways to help</h2>
|
||||||
@ -288,7 +276,7 @@
|
|||||||
and we'll get in touch with you with all you need to know about getting your show published.<br />
|
and we'll 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
|
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">libera.chat</a> network.
|
<a href="https://web.libera.chat/gamja/?channels=oggcastplanet">libera.chat</a> network.
|
||||||
Follow us on <a href="https://infosec.exchange/@hpr">Mastodon</a> (use the tag <strong>#hpr</strong>)
|
Follow us on <a href="https://botsin.space/@hpr">Mastodon</a> (use the tag <strong>#hpr</strong>)
|
||||||
and on <a href="https://twitter.com/hpr">Twitter</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/HenryPartickReilly">Facebook</a> and
|
We have a <a href="https://www.facebook.com/HenryPartickReilly">Facebook</a> and
|
||||||
<a href="https://www.linkedin.com/groups?mostPopular=&gid=3737302">LinkedIn</a> group,
|
<a href="https://www.linkedin.com/groups?mostPopular=&gid=3737302">LinkedIn</a> group,
|
||||||
@ -835,7 +823,7 @@
|
|||||||
<li id="Short_Summary"><strong>Summary:</strong> <em>Mandatory</em><br />
|
<li id="Short_Summary"><strong>Summary:</strong> <em>Mandatory</em><br />
|
||||||
This is a short 100 character summary of what your show is about.
|
This is a short 100 character summary of what your show is about.
|
||||||
Please fill this out as it is used once the show has gone off the main page, on the mobile site,
|
Please fill this out as it is used once the show has gone off the main page, on the mobile site,
|
||||||
on printed brochures, on text to speech announcements, on twitter, <a href="https://infosec.exchange/@hpr">Mastodon</a> etc.</li>
|
on printed brochures, on text to speech announcements, on twitter, <a href="https://botsin.space/@hpr">Mastodon</a> etc.</li>
|
||||||
<li id="Theme"><strong>Theme:</strong> <em>Automatic</em><br />
|
<li id="Theme"><strong>Theme:</strong> <em>Automatic</em><br />
|
||||||
The Intro, and the Outro will be added automatically. Please do not add it.
|
The Intro, and the Outro will be added automatically. Please do not add it.
|
||||||
</li>
|
</li>
|
||||||
@ -1160,7 +1148,7 @@
|
|||||||
<li>You can join the <strong>#oggcastplanet</strong> channel on IRC.
|
<li>You can join the <strong>#oggcastplanet</strong> channel on IRC.
|
||||||
Visit the <a href="http://webchat.freenode.net/?channels=oggcastplanet">freenode.net</a> network to sign up.</li>
|
Visit the <a href="http://webchat.freenode.net/?channels=oggcastplanet">freenode.net</a> network to sign up.</li>
|
||||||
<li>A number of HPR messages may be found on Twitter and
|
<li>A number of HPR messages may be found on Twitter and
|
||||||
<a href="https://infosec.exchange/@hpr">Mastodon</a>.</li>
|
<a href="https://botsin.space/@hpr">Mastodon</a>.</li>
|
||||||
<li>There is a <a href="https://t.me/+6fEhQrf5IEc4ZGU8">chat group on Telegram</a></li>
|
<li>There is a <a href="https://t.me/+6fEhQrf5IEc4ZGU8">chat group on Telegram</a></li>
|
||||||
<li>An HPR tradition exists where we record a 26-hour show at the turn of the year celebrating the
|
<li>An HPR tradition exists where we record a 26-hour show at the turn of the year celebrating the
|
||||||
arrival of the New Year around the world. We use Mumble to record the show and anyone can connect
|
arrival of the New Year around the world. We use Mumble to record the show and anyone can connect
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-episode.tpl.html" %-->
|
<!--% PROCESS "queries-episode-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
|
|
||||||
<h2>Comment Viewer</h2>
|
<h2>Comment Viewer</h2>
|
||||||
<p>Because of the spammers we have had to turn on comment moderation. Sorry about the delay this will cause.</p>
|
<p>Because of the spammers we have had to turn on comment moderation. Sorry about the delay this will cause.</p>
|
||||||
<p><a href="<!--% absolute_path(baseurl) %-->comments.rss">Subscribe</a> to the comment feed.</p>
|
<p><a href="<!--% absolute_path(baseurl) %-->comments.rss">Subscribe</a> to the comment feed.</p>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-correspondent.tpl.html" %-->
|
<!--% PROCESS "queries-correspondent-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows)
|
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows)
|
||||||
%-->
|
%-->
|
||||||
<!--% results_hpr_show_count = DBI.prepare(query_hpr_show_count) %-->
|
<!--% results_hpr_show_count = DBI.prepare(query_hpr_show_count) %-->
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<article>
|
<article>
|
||||||
<h2 class="title">Correspondents</h2>
|
<h2 class="title">Correspondents</h2>
|
||||||
<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 />
|
<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) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% host_cnt = 0 %-->
|
<!--% host_cnt = 0 %-->
|
||||||
<table class="hosts">
|
<table class="hosts">
|
||||||
<th >Avatar</th>
|
<th >Avatar</th>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-episode.tpl.html" %-->
|
<!--% PROCESS "queries-episode-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% query_episodes = DBI.prepare(query_episode_maxmin) %-->
|
<!--% query_episodes = DBI.prepare(query_episode_maxmin) %-->
|
||||||
<!--% episode_result = query_episodes.execute(id, id, id, id, id) %-->
|
<!--% episode_result = query_episodes.execute(id, id, id, id, id) %-->
|
||||||
@ -17,10 +17,11 @@
|
|||||||
<p class="meta"><!--% episode_navigation %-->
|
<p class="meta"><!--% episode_navigation %-->
|
||||||
</p>
|
</p>
|
||||||
<p><!--% show_avatar(episode.hostid, episode.host) %-->
|
<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><!--% day_and_date(episode.date) %--></span> is flagged as <span><!--% display_explicit(episode.explicit) %--></span> and is released under a <span><!--% episode.license %--> license</span>. <br>
|
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>
|
<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>
|
||||||
@ -28,6 +29,7 @@ Hosted by <a href="<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pa
|
|||||||
</header>
|
</header>
|
||||||
<div><!--% episode.notes %--></div>
|
<div><!--% episode.notes %--></div>
|
||||||
<footer>
|
<footer>
|
||||||
|
<!--% show_transcript(episode, "hpr", baseurl, media_baseurl) %-->
|
||||||
<p>
|
<p>
|
||||||
<!--% episode_navigation %-->
|
<!--% episode_navigation %-->
|
||||||
</p>
|
</p>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-episodes.tpl.html" %-->
|
<!--% PROCESS "queries-episodes-${constants.database}.tpl.html" %-->
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
<h1>Complete Archive of Shows.</h1>
|
<h1>Complete Archive of Shows.</h1>
|
||||||
@ -7,13 +7,13 @@
|
|||||||
All this information is available to the public. Scrape if you wish but if we can format the data for you then we're happy to help.
|
All this information is available to the public. Scrape if you wish but if we can format the data for you then we're happy to help.
|
||||||
</p>
|
</p>
|
||||||
</header>
|
</header>
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH episodes IN DBI.query(query_episodes)
|
<!--% FOREACH episodes IN DBI.query(query_episodes)
|
||||||
%-->
|
%-->
|
||||||
<!--% show_summary(episodes) %-->
|
<!--% show_summary(episodes) %-->
|
||||||
<p class="listen-in"><!--% display_listen_in(episodes.id) %--></p>
|
<p class="listen-in"><!--% display_listen_in(episodes.id) %--></p>
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
<h2 id="twt_episodes">Today With a Techie Archived Shows</h2>
|
<h2 id="twat_episodes">Today With a Techie Archived Shows</h2>
|
||||||
<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>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-call_for_shows.tpl.html' %-->
|
<!--% PROCESS 'shared-call_for_shows.tpl.html' %-->
|
||||||
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
|
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-index.tpl.html" %-->
|
<!--% PROCESS "queries-index-${constants.database}.tpl.html" %-->
|
||||||
<!--% MACRO tidy_notes(all_lines) BLOCK %-->
|
<!--% MACRO tidy_notes(all_lines) BLOCK %-->
|
||||||
<!--% lines = all_lines %-->
|
<!--% lines = all_lines %-->
|
||||||
<!--% after_html = all_lines %-->
|
<!--% after_html = all_lines %-->
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<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) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% USE date %-->
|
<!--% USE date %-->
|
||||||
<!--% calc = date.calc %-->
|
<!--% calc = date.calc %-->
|
||||||
<!--% episodes = DBI.query(query_next_available_episode).get_all() %-->
|
<!--% episodes = DBI.query(query_next_available_episode).get_all() %-->
|
||||||
@ -40,7 +40,7 @@
|
|||||||
<!--% days_till_next_episode = calc.Delta_Days(now.0,now.1,now.2,slot_date.0,slot_date.1,slot_date.2) %-->
|
<!--% 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#twt_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>
|
<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>
|
||||||
@ -55,14 +55,17 @@
|
|||||||
<h1><a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(latest_episodes.id) %-->/index.html">hpr<!--% latest_episodes.id %--> :: <!--% latest_episodes.title %--></a></h1>
|
<h1><a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(latest_episodes.id) %-->/index.html">hpr<!--% latest_episodes.id %--> :: <!--% latest_episodes.title %--></a></h1>
|
||||||
<h3><!--% latest_episodes.summary%--></h3>
|
<h3><!--% latest_episodes.summary%--></h3>
|
||||||
<p class="meta"$><!--% show_avatar(latest_episodes.hostid, latest_episodes.host, host_cnt) %-->
|
<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 <!--% day_and_date(latest_episodes.date) %--> is flagged as <!--% display_explicit(latest_episodes.explicit) %--> and released under a <!--% latest_episodes.license %--> license. <br>
|
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><!--% 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>
|
<span><label>Comments: </label><!--% display_comments_tally(latest_episodes.id, latest_episodes.eps_tally) %--></span><br>
|
||||||
<!--% listen_now(latest_episodes, "hpr", baseurl, media_baseurl) %-->
|
<!--% listen_now(latest_episodes, "hpr", baseurl, media_baseurl) %-->
|
||||||
</p>
|
</p>
|
||||||
</header>
|
</header>
|
||||||
<p>See <a href="<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(latest_episodes.id) %-->/index.html">episode show notes</a> for more information.</p>
|
<!--% tidy_notes(latest_episodes.notes) %-->
|
||||||
|
<footer>
|
||||||
|
<!--% show_transcript(latest_episodes, "hpr", baseurl, media_baseurl) %-->
|
||||||
|
</footer>
|
||||||
</article>
|
</article>
|
||||||
<!--% host_cnt = host_cnt + 1 %-->
|
<!--% host_cnt = host_cnt + 1 %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-series.tpl.html" %-->
|
<!--% PROCESS "queries-series-${constants.database}.tpl.html" %-->
|
||||||
<article>
|
<article>
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<h1 class="title">In-Depth Series</h1>
|
<h1 class="title">In-Depth Series</h1>
|
||||||
<!--% FOREACH series IN DBI.query(query_episodes) %-->
|
<!--% FOREACH series IN DBI.query(query_episodes) %-->
|
||||||
<h2><a href="<!--% absolute_path(baseurl) %-->series/<!--% zero_pad_left(series.id) %-->.html"><!--% series.name %--></a></h2>
|
<h2><a href="<!--% absolute_path(baseurl) %-->series/<!--% zero_pad_left(series.id) %-->.html"><!--% series.name %--></a></h2>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-series_episodes.tpl.html" %-->
|
<!--% PROCESS "queries-series_episodes-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% query_series = DBI.prepare(query_series_sql)
|
<!--% query_series = DBI.prepare(query_series_sql)
|
||||||
%-->
|
%-->
|
||||||
<!--% series_result = query_series.execute(id) %-->
|
<!--% series_result = query_series.execute(id) %-->
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</strong></a> ← The HPR Homepage</li>
|
<li><a href="<!--% absolute_path(baseurl) %-->index.html"><strong>Home</strong></a> ← The HPR Homepage</li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->syndication.html">Get Shows</a> ← The RSS Syndication Feeds</li>
|
<li><a href="<!--% absolute_path(baseurl) %-->syndication.html">Get Shows</a> ← The RSS Syndication Feeds</li>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->eps/index.html">Full Episode Guide</a> ← Complete list of all the Shows.</li>
|
<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) %-->series/index.html">In-Depth Series</a> ← Overview of the In-Depth Series.</li>
|
||||||
<li><a href="<!--% absolute_url(baseurl) %-->about.html#download">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>
|
</ul>
|
||||||
|
@ -20,9 +20,9 @@
|
|||||||
Every month, the HPR Janitors put down their mops had have a chat about all the shows, and what else has been going on in the HPR community. This is a regular show scheduled for the first Monday of the month.
|
Every month, the HPR Janitors put down their mops had have a chat about all the shows, and what else has been going on in the HPR community. This is a regular show scheduled for the first Monday of the month.
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->hpr_opus_rss.php?series=47">opus</a>.</li>
|
<li><a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=47">ogg</a> Larger file size higher quality feed.</li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=47">ogg</a>.</li>
|
<li><a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=47">mp3</a> Larger file size regular quality feed in a common format.</li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=47">mp3</a>.</li>
|
<li><a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=47">spx</a> Small file size lower quality feed. <br/>Ideal for dial-up/mobile connections.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
We also maintain an <a href="https://archive.org/details/hackerpublicradio?and[]=subject%3A%22Community+News%22">Archive.org</a> page where you can get the shows in even more formats.
|
We also maintain an <a href="https://archive.org/details/hackerpublicradio?and[]=subject%3A%22Community+News%22">Archive.org</a> page where you can get the shows in even more formats.
|
||||||
@ -37,9 +37,9 @@
|
|||||||
Use these feeds to keep up to date with the latest HPR Episodes.
|
Use these feeds to keep up to date with the latest HPR Episodes.
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="<!--% absolute_url(baseurl) %-->hpr_opus_rss.php">opus</a>.</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_ogg_rss.php">ogg</a>.</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_rss.php">mp3</a>.</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>
|
</ul>
|
||||||
<p>
|
<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.
|
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.
|
||||||
@ -53,9 +53,9 @@
|
|||||||
Use this feed to get the archived episodes. The feed themselves run over 15Mb in size and so use them to download the archived episodes and when you are up to date switch back to the Two Week Feeds listed above.
|
Use this feed to get the archived episodes. The feed themselves run over 15Mb in size and so use them to download the archived episodes and when you are up to date switch back to the Two Week Feeds listed above.
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_opus_rss.php">opus feed</a> Warning over 62G</li>
|
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_ogg_rss.php">ogg feed</a> Warning over 50G</li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_ogg_rss.php">ogg feed</a> Warning over 71G</li>
|
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_spx_rss.php">spx feed</a> Warning over 22G</li>
|
||||||
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_rss.php">mp3 feed</a> Warning over 70G</li>
|
<li><a href="<!--% absolute_path(baseurl) %-->hpr_total_rss.php">mp3 feed</a> Warning over 36G</li>
|
||||||
</ul>
|
</ul>
|
||||||
</article>
|
</article>
|
||||||
<article>
|
<article>
|
||||||
@ -112,8 +112,8 @@
|
|||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
<h1>Download Archive</h1>
|
<h1>Download Archive</h1>
|
||||||
<p>Please be aware that our Archive exceeds <strong>200Gb</strong></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>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 physically send episodes anywhere in the world if bandwidth is an issue.</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>
|
</header>
|
||||||
<h2>Full Episode Guide</h2>
|
<h2>Full Episode Guide</h2>
|
||||||
<p>
|
<p>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-tags.tpl.html" %-->
|
<!--% PROCESS "queries-tags-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% PERL %-->
|
<!--% PERL %-->
|
||||||
$Template::Stash::PRIVATE = undef; # Allow . in tag
|
$Template::Stash::PRIVATE = undef; # Allow . in tag
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% query_episodes = DBI.prepare('
|
<!--% query_episodes = DBI.prepare('
|
||||||
WITH episode_maxmin AS (
|
WITH episode_maxmin AS (
|
||||||
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
||||||
@ -45,7 +45,7 @@
|
|||||||
%-->
|
%-->
|
||||||
<!--% episode_result = query_episodes.execute(id, id, id, id, id) %-->
|
<!--% episode_result = query_episodes.execute(id, id, id, id, id) %-->
|
||||||
<!--% FOREACH episode IN episode_result %-->
|
<!--% FOREACH episode IN episode_result %-->
|
||||||
<!--% episode_navigation = step_navigation(baseurl,episode,"twt") %-->
|
<!--% episode_navigation = step_navigation(baseurl,episode,"twat") %-->
|
||||||
<article>
|
<article>
|
||||||
<header>
|
<header>
|
||||||
<h1><!--% episode.id %--> :: <!--% episode.title %--></h1>
|
<h1><!--% episode.id %--> :: <!--% episode.title %--></h1>
|
||||||
@ -53,7 +53,7 @@
|
|||||||
<p class="meta"><!--% episode_navigation %-->
|
<p class="meta"><!--% episode_navigation %-->
|
||||||
</p>
|
</p>
|
||||||
<p><!--% show_avatar(episode.hostid, episode.host) %-->
|
<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><!--% day_and_date(episode.date) %--></span> is flagged as <span><!--% display_explicit(episode.explicit) %--></span> and is released under a <span><!--% episode.license %--> license</span>. <br>
|
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) %--> <br>
|
<!--% display_tags(episode.tags) %--> <br>
|
||||||
<!--% listen_now(episode, "twat", baseurl, media_baseurl) %-->
|
<!--% listen_now(episode, "twat", baseurl, media_baseurl) %-->
|
||||||
<!--% display_listen_in(episode.id, "twat") %-->
|
<!--% display_listen_in(episode.id, "twat") %-->
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH host IN DBI.query(
|
<!--% FOREACH host IN DBI.query(
|
||||||
'select h.hostid from hosts as h'
|
'select h.hostid from hosts as h'
|
||||||
) %-->
|
) %-->
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--% PROCESS "queries-ids-episode.tpl.html" %-->
|
<!--% PROCESS "queries-ids-episode-${constants.database}.tpl.html" %-->
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH episode IN DBI.query(query_ids_episode) %-->
|
<!--% FOREACH episode IN DBI.query(query_ids_episode) %-->
|
||||||
,<!--% episode.id %-->
|
,<!--% episode.id %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH episode IN DBI.query(
|
<!--% FOREACH episode IN DBI.query(
|
||||||
'select eps.id from twat_eps AS eps'
|
'select eps.id from twat_eps AS eps'
|
||||||
) %-->
|
) %-->
|
||||||
|
@ -23,14 +23,14 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<link rel="shortcut icon" href="<!--% absolute_url(baseurl) %-->hpr.ico" >
|
<link rel="shortcut icon" href="<!--% absolute_url(baseurl) %-->hpr.ico" >
|
||||||
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Opus RSS" href="<!--% absolute_path(baseurl) %-->hpr_opus_rss.php" />
|
|
||||||
<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 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" />
|
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio MP3 RSS" href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php" />
|
||||||
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Comments RSS" href="<!--% absolute_path(baseurl) %-->comments.rss" />
|
<link rel="alternate" type="application/rss+xml" title="Hacker Public Radio Comments RSS" href="<!--% absolute_path(baseurl) %-->comments.rss" />
|
||||||
<link rel="license" title="CC BY-SA 4.0" href="https://creativecommons.org/licenses/by-sa/4.0/" />
|
<link rel="license" title="CC BY-SA 4.0" href="https://creativecommons.org/licenses/by-sa/4.0/" />
|
||||||
<link href="/css/hpr.css" rel="stylesheet" />
|
<link href="<!--% absolute_path(baseurl) %-->css/hpr.css" rel="stylesheet" />
|
||||||
<!--[if IE]>
|
<!--[if IE]>
|
||||||
<link rel="stylesheet" href="/css/hpr.css" media="screen" type="text/css" />
|
<link rel="stylesheet" href="<!--% absolute_path(baseurl) %-->css/hpr.css" media="screen" type="text/css" />
|
||||||
<script src="/JavaScript/html5.js"></script>
|
<script src="/JavaScript/html5.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.5, user-scalable=yes"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.5, user-scalable=yes"/>
|
||||||
@ -81,8 +81,8 @@
|
|||||||
<nav class="column">
|
<nav class="column">
|
||||||
<h2>Social</h2>
|
<h2>Social</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://lists.hackerpublicradio.com/mailman/listinfo/hpr" >Mailing list</a></li>
|
<li><a href="<!--% absolute_url(baseurl,'/maillist') %-->" >Mailing list</a></li>
|
||||||
<li><a rel="me" href="https://infosec.exchange/@hpr" >Mastodon</a></li>
|
<li><a href="https://botsin.space/@hpr" >Mastodon</a></li>
|
||||||
<li><a href="https://matrix.to/#/#hpr:matrix.org" >Matrix</a></li>
|
<li><a href="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>
|
||||||
@ -114,7 +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/HPR/">HPR Source Code</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>
|
||||||
|
6
templates/queries-call_for_shows-mysql.tpl.html
Normal file
6
templates/queries-call_for_shows-mysql.tpl.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<!--% query_call_for_shows = '
|
||||||
|
SELECT CASE WHEN COUNT(id) < 6 THEN True ELSE False END AS `request_for_shows`
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date > NOW() AND eps.date <= DATE_ADD(NOW(), INTERVAL 10 DAY)
|
||||||
|
'
|
||||||
|
%-->
|
24
templates/queries-correspondent-mysql.tpl.html
Normal file
24
templates/queries-correspondent-mysql.tpl.html
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<!--% query_hpr_shows = '
|
||||||
|
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.host, hosts.email, hosts.profile,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
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
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
<!--% query_hpr_show_count = '
|
||||||
|
SELECT id
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.hostid = ? AND eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
'
|
||||||
|
%-->
|
51
templates/queries-episode-mysql.tpl.html
Normal file
51
templates/queries-episode-mysql.tpl.html
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<!--% query_episode_maxmin = '
|
||||||
|
WITH episode_maxmin AS (
|
||||||
|
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date <= UTC_DATE()
|
||||||
|
),
|
||||||
|
episode_date AS (
|
||||||
|
SELECT eps.date
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.id = ?
|
||||||
|
),
|
||||||
|
episode_previous AS (
|
||||||
|
SELECT MAX(id) AS \'previous\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN episode_date
|
||||||
|
ON eps.date < episode_date.date
|
||||||
|
WHERE eps.id > 1
|
||||||
|
),
|
||||||
|
episode_next AS (
|
||||||
|
SELECT MIN(id) AS \'next\', ? AS \'id\'
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN episode_date
|
||||||
|
ON eps.date > episode_date.date
|
||||||
|
WHERE eps.date <= NOW()
|
||||||
|
),
|
||||||
|
comment_tallies AS (
|
||||||
|
SELECT
|
||||||
|
eps_id,
|
||||||
|
COUNT(eps_id) AS eps_tally
|
||||||
|
FROM comments
|
||||||
|
GROUP BY eps_id
|
||||||
|
)
|
||||||
|
SELECT eps.id, eps.date, eps.title, eps.duration,
|
||||||
|
eps.summary, eps.notes, eps.explicit, eps.license,
|
||||||
|
eps.tags, eps.version, eps.downloads, eps.valid,
|
||||||
|
episode_maxmin.latest, episode_maxmin.earliest,
|
||||||
|
episode_previous.previous, episode_next.next,
|
||||||
|
hosts.hostid, hosts.host,
|
||||||
|
miniseries.name AS \'series\', miniseries.id AS \'seriesid\',
|
||||||
|
miniseries.description AS \'series_description\',
|
||||||
|
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
|
||||||
|
INNER JOIN episode_maxmin ON eps.id = episode_maxmin.id
|
||||||
|
INNER JOIN episode_previous ON eps.id = episode_previous.id
|
||||||
|
INNER JOIN episode_next ON eps.id = episode_next.id
|
||||||
|
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
|
||||||
|
WHERE eps.id = ?
|
||||||
|
'
|
||||||
|
%-->
|
15
templates/queries-episodes-mysql.tpl.html
Normal file
15
templates/queries-episodes-mysql.tpl.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<!--% query_episodes = '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,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
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'
|
||||||
|
%-->
|
||||||
|
|
2
templates/queries-ids-episode-sqlite.tpl.html
Normal file
2
templates/queries-ids-episode-sqlite.tpl.html
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<!--% query_ids_episode = 'select eps.id from eps order by eps.id' %-->
|
||||||
|
|
58
templates/queries-index-mysql.tpl.html
Normal file
58
templates/queries-index-mysql.tpl.html
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<!--% query_next_available_episode = '
|
||||||
|
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
|
||||||
|
eps_id,
|
||||||
|
COUNT(eps_id) AS eps_tally
|
||||||
|
FROM comments
|
||||||
|
GROUP BY eps_id
|
||||||
|
)
|
||||||
|
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.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid,
|
||||||
|
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
|
||||||
|
LIMIT 10
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
<!--% query_last_5_weeks_episodes = '
|
||||||
|
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,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid
|
||||||
|
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
|
||||||
|
LIMIT 30 OFFSET 10
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
|
15
templates/queries-series-mysql.tpl.html
Normal file
15
templates/queries-series-mysql.tpl.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<!--% query_episodes = 'SELECT miniseries.id, miniseries.name, miniseries.description,
|
||||||
|
miniseries.private, miniseries.image, miniseries.valid,
|
||||||
|
ep.number_of_episodes, ep.latest_show, ep.earliest_show
|
||||||
|
FROM miniseries
|
||||||
|
INNER JOIN
|
||||||
|
(SELECT series,
|
||||||
|
COUNT(eps.id) AS number_of_episodes,
|
||||||
|
MAX(eps.date) AS latest_show,
|
||||||
|
MIN(eps.date) AS earliest_show
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
GROUP BY series) AS ep ON ep.series = miniseries.id
|
||||||
|
ORDER BY name'
|
||||||
|
%-->
|
||||||
|
|
29
templates/queries-series_episodes-mysql.tpl.html
Normal file
29
templates/queries-series_episodes-mysql.tpl.html
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<!--% query_series_sql = 'SELECT miniseries.id, miniseries.name,
|
||||||
|
miniseries.description,
|
||||||
|
miniseries.private, miniseries.image, miniseries.valid,
|
||||||
|
ep.number_of_episodes, ep.latest_show, ep.earliest_show
|
||||||
|
FROM miniseries
|
||||||
|
INNER JOIN
|
||||||
|
(SELECT series,
|
||||||
|
COUNT(eps.id) AS number_of_episodes,
|
||||||
|
MAX(eps.date) AS latest_show,
|
||||||
|
MIN(eps.date) AS earliest_show
|
||||||
|
FROM eps
|
||||||
|
WHERE eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
GROUP BY series) AS ep ON ep.series = miniseries.id
|
||||||
|
WHERE miniseries.id = ?
|
||||||
|
ORDER BY name'
|
||||||
|
%-->
|
||||||
|
<!--% query_shows_sql = 'SELECT
|
||||||
|
id, date, title,
|
||||||
|
duration, summary, notes,
|
||||||
|
explicit, eps.license, tags,
|
||||||
|
hosts.host, hosts.hostid
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts
|
||||||
|
ON eps.hostid = hosts.hostid
|
||||||
|
WHERE series = ? AND eps.date < DATE_ADD(NOW(), INTERVAL 1 DAY)
|
||||||
|
ORDER BY eps.id DESC
|
||||||
|
'
|
||||||
|
%-->
|
||||||
|
|
1
templates/queries-tags-sqlite.tpl.html
Normal file
1
templates/queries-tags-sqlite.tpl.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<!--% query_tags = 'SELECT id, tags FROM eps' %-->
|
@ -3,10 +3,9 @@
|
|||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<!--% USE date %-->
|
<!--% USE date %-->
|
||||||
<!--% USE HTML.Strip emit_spaces = 0 %-->
|
|
||||||
<channel>
|
<channel>
|
||||||
<title>Hacker Public Radio ~ Comment Feed</title>
|
<title>Hacker Public Radio ~ Comment Feed</title>
|
||||||
<link><!--% absolute_url(http_baseurl) %-->about.html</link>
|
<link><!--% baseurl %-->about.html</link>
|
||||||
<description>Comments Feed: 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>
|
<description>Comments Feed: 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>
|
<language>en-us</language>
|
||||||
<copyright>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License</copyright>
|
<copyright>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License</copyright>
|
||||||
@ -16,15 +15,15 @@
|
|||||||
<docs>https://www.rssboard.org/rss-specification</docs>
|
<docs>https://www.rssboard.org/rss-specification</docs>
|
||||||
<ttl>600</ttl>
|
<ttl>600</ttl>
|
||||||
<image>
|
<image>
|
||||||
<url><!--% absolute_url(http_baseurl) %-->images/hpr_feed_small.png</url>
|
<url><!--% baseurl %-->images/hpr_feed_small.png</url>
|
||||||
<title>Hacker Public Radio ~ Comment Feed</title>
|
<title>Hacker Public Radio ~ Comment Feed</title>
|
||||||
<link><!--% absolute_url(http_baseurl) %-->about.html</link>
|
<link><!--% baseurl %-->about.html</link>
|
||||||
<description>The Hacker Public Radio Old Microphone Logo</description>
|
<description>The Hacker Public Radio Old Microphone Logo</description>
|
||||||
<height>164</height>
|
<height>164</height>
|
||||||
<width>144</width>
|
<width>144</width>
|
||||||
</image>
|
</image>
|
||||||
<atom:link href="<!--% absolute_url(http_baseurl) %-->comments.rss" rel="self" type="application/rss+xml" />
|
<atom:link href="<!--% baseurl %-->comments.rss" rel="self" type="application/rss+xml" />
|
||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% FOREACH response IN DBI.query('SELECT max( comment_timestamp) AS latest_update FROM comments') %-->
|
<!--% FOREACH response IN DBI.query('SELECT max( comment_timestamp) AS latest_update FROM comments') %-->
|
||||||
|
|
||||||
<pubDate><!--% format_feed_date(response.latest_update) %--></pubDate>
|
<pubDate><!--% format_feed_date(response.latest_update) %--></pubDate>
|
||||||
@ -50,15 +49,15 @@
|
|||||||
%-->
|
%-->
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
<title><!--% item.comment_author_name | html_strip | xml_entity %--> says: <!--% item.comment_title | html_strip | xml_entity %--></title>
|
<title><!--% item.comment_author_name %--> says: <!--% item.comment_title %--></title>
|
||||||
<author>feedback.nospam@nospam.hackerpublicradio.org (<!--% item.comment_author_name | html_strip | xml_entity %-->)</author>
|
<author>feedback.nospam@nospam.hackerpublicradio.org (<!--% item.comment_author_name %-->)</author>
|
||||||
<link><!--% absolute_url(http_baseurl) %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html#comments</link>
|
<link><!--% baseurl %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html#comments</link>
|
||||||
<description><![CDATA[<strong>
|
<description><![CDATA[<strong>
|
||||||
RE: hpr<!--% zero_pad_left(item.eps_id) %-->::<!--% item.episode_date %--> <em><!--% item.episode_title | html_strip | xml_entity %--></em> by <a href="<!--% absolute_url(http_baseurl) %-->correspondents/<!--% zero_pad_left(item.host_id) %-->.html"><!--% item.host %--></a></strong><!--% rss_show_series(item.series_name, item.series_id) | html_strip | xml_entity %--><br />
|
RE: hpr<!--% zero_pad_left(item.eps_id) %-->::<!--% item.episode_date %--> <em><!--% item.episode_title %--></em> by <a href="<!--% baseurl %-->correspondents/<!--% zero_pad_left(item.host_id) %-->.html"><!--% item.host %--></a></strong><!--% rss_show_series(item.series_name, item.series_id) %--><br />
|
||||||
<!--% display_episode_duration(item.episode_duration) %--><!--% display_listen_in(item.eps_id) %--><br /><!--% item.comment_text FILTER html_line_break %-->
|
<!--% display_episode_duration(item.episode_duration) %--><!--% display_listen_in(item.eps_id) %--><br /><!--% item.comment_text FILTER html_line_break %-->
|
||||||
]]></description>
|
]]></description>
|
||||||
<pubDate><!--% format_feed_date(item.comment_timestamp) %--></pubDate>
|
<pubDate><!--% format_feed_date(item.comment_timestamp) %--></pubDate>
|
||||||
<guid isPermaLink="false"><!--% absolute_url(http_baseurl) %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html#comment_<!--% item.id %--></guid>
|
<guid isPermaLink="false"><!--% baseurl %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html#comment_<!--% item.id %--></guid>
|
||||||
</item>
|
</item>
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
</channel>
|
</channel>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--% PROCESS 'shared-item.tpl.xml' %-->
|
<!--% PROCESS 'shared-item.tpl.xml' %-->
|
||||||
<!--% PROCESS "rss-query-hpr.tpl.xml" %-->
|
<!--% PROCESS "rss-query-hpr-${constants.database}.tpl.xml" %-->
|
||||||
<!--% FOREACH episode IN feed_result %-->
|
<!--% FOREACH episode IN feed_result %-->
|
||||||
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
|
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--% PROCESS 'shared-item.tpl.xml' %-->
|
<!--% PROCESS 'shared-item.tpl.xml' %-->
|
||||||
<!--% PROCESS "rss-query-hpr_total.tpl.xml" %-->
|
<!--% PROCESS "rss-query-hpr_total-${constants.database}.tpl.xml" %-->
|
||||||
<!--% FOREACH episode IN feed_result %-->
|
<!--% FOREACH episode IN feed_result %-->
|
||||||
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
|
<!--% display_item(episode, media_file_extension, audio_mime_type) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
26
templates/rss-query-hpr-mysql.tpl.xml
Normal file
26
templates/rss-query-hpr-mysql.tpl.xml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
|
<!--% query_hpr_feed = DBI.prepare('
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
DATE_FORMAT(eps.date, \'%H:%i:%S %d:%m:%Y\') AS \'date\',
|
||||||
|
eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid,
|
||||||
|
assets.size AS length
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
INNER JOIN assets ON eps.id = assets.episode_id
|
||||||
|
WHERE eps.date <= UTC_DATE()
|
||||||
|
AND assets.extension = ?
|
||||||
|
ORDER BY eps.date DESC
|
||||||
|
LIMIT 10
|
||||||
|
')
|
||||||
|
%-->
|
||||||
|
<!--% feed_result = query_hpr_feed.execute(media_file_extension) %-->
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% query_hpr_feed = DBI.prepare('
|
<!--% query_hpr_feed = DBI.prepare('
|
||||||
SELECT
|
SELECT
|
||||||
eps.id,
|
eps.id,
|
25
templates/rss-query-hpr_total-mysql.tpl.xml
Normal file
25
templates/rss-query-hpr_total-mysql.tpl.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
|
<!--% query_hpr_feed = DBI.prepare('
|
||||||
|
SELECT
|
||||||
|
eps.id,
|
||||||
|
eps.explicit,
|
||||||
|
DATE_FORMAT(eps.date, \'%H:%i:%S %d:%m:%Y\') AS \'date\',
|
||||||
|
eps.license, eps.duration,
|
||||||
|
eps.title, eps.summary, eps.tags,
|
||||||
|
eps.notes,
|
||||||
|
hosts.local_image,
|
||||||
|
hosts.hostid,
|
||||||
|
hosts.host, hosts.email,
|
||||||
|
miniseries.name AS series, miniseries.id AS seriesid,
|
||||||
|
assets.size AS length
|
||||||
|
FROM eps
|
||||||
|
INNER JOIN hosts ON eps.hostid = hosts.hostid
|
||||||
|
INNER JOIN miniseries ON eps.series = miniseries.id
|
||||||
|
INNER JOIN assets ON eps.id = assets.episode_id
|
||||||
|
WHERE eps.date < UTC_DATE()
|
||||||
|
AND assets.extension = ?
|
||||||
|
ORDER BY eps.date DESC
|
||||||
|
')
|
||||||
|
%-->
|
||||||
|
<!--% feed_result = query_hpr_feed.execute(media_file_extension) %-->
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
<!--% USE DBI(constants.driver) %-->
|
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||||
<!--% query_hpr_feed = DBI.prepare('
|
<!--% query_hpr_feed = DBI.prepare('
|
||||||
SELECT
|
SELECT
|
||||||
eps.id,
|
eps.id,
|
@ -1,5 +1,5 @@
|
|||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS "queries-call_for_shows.tpl.html" %-->
|
<!--% PROCESS "queries-call_for_shows-${constants.database}.tpl.html" %-->
|
||||||
<!--% MACRO display_call_for_shows BLOCK %-->
|
<!--% MACRO display_call_for_shows BLOCK %-->
|
||||||
<!--% result_call_for_shows = DBI.prepare(query_call_for_shows) %-->
|
<!--% result_call_for_shows = DBI.prepare(query_call_for_shows) %-->
|
||||||
<!--% results_call_for_shows = result_call_for_shows.execute().get_all() %-->
|
<!--% results_call_for_shows = result_call_for_shows.execute().get_all() %-->
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
|
||||||
|
|
||||||
<!--% MACRO rss_show_series(series, series_id) IF series != "general" %-->
|
<!--% MACRO rss_show_series(series, series_id) IF series != "general" %-->
|
||||||
from the series <em><a href="<!--% baseurl %-->series/<!--% zero_pad_left(series_id) %-->.html"><!--% series %--></em></a>.
|
from the series <em><a href="<!--% baseurl %-->series/<!--% zero_pad_left(series_id) %-->.html"><!--% series %--></em></a>.
|
||||||
@ -25,10 +24,10 @@ from the series <em><a href="<!--% baseurl %-->series/<!--% zero_pad_left(series
|
|||||||
Listen in
|
Listen in
|
||||||
<!--% IF episode_type == 'hpr' %-->
|
<!--% IF episode_type == 'hpr' %-->
|
||||||
<a href="<!--% media_path(eps_id, episode_type, 'ogg', baseurl, media_baseurl) %-->" aria-label="Download <!--% episode_type %--><!--% zero_pad_left(eps_id) %--> as">ogg</a>,
|
<a href="<!--% media_path(eps_id, episode_type, 'ogg', baseurl, media_baseurl) %-->" aria-label="Download <!--% episode_type %--><!--% zero_pad_left(eps_id) %--> as">ogg</a>,
|
||||||
<a href="<!--% media_path(eps_id, episode_type, 'opus', baseurl, media_baseurl) %-->" aria-label="Download <!--% episode_type %--><!--% zero_pad_left(eps_id) %--> as">opus</a>,
|
<a href="<!--% media_path(eps_id, episode_type, 'spx', baseurl, media_baseurl) %-->" aria-label="Download <!--% episode_type %--><!--% zero_pad_left(eps_id) %--> as">spx</a>,
|
||||||
or
|
or
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
<a href="<!--% media_path(eps_id, episode_type, 'mp3', baseurl, media_baseurl) %-->" aria-label="Download <!--% episode_type %--><!--% zero_pad_left(eps_id) %--> as">mp3</a> format.
|
<a href="<!--% media_path(eps_id, episode_type, 'mp3', baseurl, media_baseurl) %-->" aria-label="Download <!--% episode_type %--><!--% zero_pad_left(eps_id) %--> as">mp3</a> format.
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
|
||||||
<!--% MACRO display_comments_tally(eps_id, tally) BLOCK %-->
|
<!--% MACRO display_comments_tally(eps_id, tally) BLOCK %-->
|
||||||
@ -36,7 +35,7 @@ or
|
|||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
|
||||||
<!--% MACRO show_meta(show, hide_tags) BLOCK %-->
|
<!--% MACRO show_meta(show, hide_tags) BLOCK %-->
|
||||||
<span><label>Released:</label> <!--% day_and_date(show.date) %-->.</span>
|
<span><label>Released:</label> <!--% show.date %-->.</span>
|
||||||
<span><label>Duration:</label> <!--% display_episode_duration(show.duration) %-->.</span>
|
<span><label>Duration:</label> <!--% display_episode_duration(show.duration) %-->.</span>
|
||||||
<span><label>Flag:</label> <!--% display_explicit(show.explicit) %-->.</span>
|
<span><label>Flag:</label> <!--% display_explicit(show.explicit) %-->.</span>
|
||||||
<span><!--% show_series(show.series, show.seriesid) %--></span> <br>
|
<span><!--% show_series(show.series, show.seriesid) %--></span> <br>
|
||||||
@ -58,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/twt<!--% zero_pad_left(show.id) %-->/index.html">Today with a Techie Ep.<!--% 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>
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
<!--% PROCESS 'shared-episode-summary.tpl.html' %-->
|
||||||
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
|
||||||
|
|
||||||
<!--% MACRO listen_now(episode, episode_type, baseurl, media_baseurl, hide_duration) BLOCK %-->
|
<!--% MACRO listen_now(episode, episode_type, baseurl, media_baseurl, hide_duration) BLOCK %-->
|
||||||
<p><!--% display_listen_in(episode.id, episode_type) %--> Play now:<br>
|
<p><!--% display_listen_in(episode.id, episode_type) %--> Play now:<br>
|
||||||
@ -8,7 +7,6 @@
|
|||||||
<source src="<!--% media_path(episode.id, episode_type, 'mp3', baseurl, media_baseurl) %-->" type="audio/mpeg" >
|
<source src="<!--% media_path(episode.id, episode_type, 'mp3', baseurl, media_baseurl) %-->" type="audio/mpeg" >
|
||||||
</audio>
|
</audio>
|
||||||
<!--% IF !hide_duration %--><br>
|
<!--% IF !hide_duration %--><br>
|
||||||
Duration: <!--% display_episode_duration(episode.duration) %--><!--% END %-->
|
Duration: <!--% display_episode_duration(episode.duration) %--><!--% END %--></p>
|
||||||
<!--% IF episode_type == "hpr" %--><br><!--% show_transcript(episode, episode_type, baseurl, media_baseurl) %--><!--% END %--></p>
|
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
<!--% MACRO show_transcript(episode, episode_type, baseurl, media_baseurl) BLOCK %-->
|
<!--% MACRO show_transcript(episode, episode_type, baseurl, media_baseurl) BLOCK %-->
|
||||||
Download the <a href="<!--% media_path(episode.id, episode_type, 'txt', baseurl, media_baseurl) %-->" aria-label="Download <!--% episode_type %--><!--% zero_pad_left(episode.id) %-->">transcription</a></li> and
|
<h2>Show Transcript</h2>
|
||||||
<a href="<!--% media_path(episode.id, episode_type, 'srt', baseurl, media_baseurl) %-->" aria-label="Download <!--% episode_type %--><!--% zero_pad_left(episode.id) %-->">subtitles</a>.
|
<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>
|
||||||
|
<li><a href="https://en.wikipedia.org/wiki/SubRip">SubRip</a>: <a href="<!--% media_path(episode.id, episode_type, 'srt', baseurl, media_baseurl) %-->">hpr<!--% zero_pad_left(episode.id) %-->.srt</a></li>
|
||||||
|
</ul>
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
|
||||||
|
@ -49,15 +49,6 @@
|
|||||||
<!--% iso8601_date.format(date_to_format) %-->
|
<!--% iso8601_date.format(date_to_format) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
|
||||||
<!--% MACRO day_from_date(eps_date) BLOCK %-->
|
|
||||||
<!--% USE eps_day = date(format => '%A', locale => 'en_US', gmt => 1) %-->
|
|
||||||
<!--% eps_day.format("$eps_date 0:0:0") %-->
|
|
||||||
<!--% END %-->
|
|
||||||
|
|
||||||
<!--% MACRO day_and_date(eps_date) BLOCK %-->
|
|
||||||
<!--% day_from_date(eps_date) %-->, <!--% eps_date %-->
|
|
||||||
<!--% END %-->
|
|
||||||
|
|
||||||
<!--% MACRO tag_to_id(tag, is_index) BLOCK %-->
|
<!--% MACRO tag_to_id(tag, is_index) BLOCK %-->
|
||||||
<!--% tag = tag.replace('\s+','_') %-->
|
<!--% tag = tag.replace('\s+','_') %-->
|
||||||
<!--% IF is_index %-->
|
<!--% IF is_index %-->
|
||||||
@ -94,7 +85,6 @@
|
|||||||
|
|
||||||
<!--% MACRO media_path(episode_id, episode_type, media_type, baseurl, media_baseurl) BLOCK %-->
|
<!--% MACRO media_path(episode_id, episode_type, media_type, baseurl, media_baseurl) BLOCK %-->
|
||||||
<!--% IF episode_type == "twat" %-->
|
<!--% IF episode_type == "twat" %-->
|
||||||
<!--% episode_type = "twt" %-->
|
|
||||||
<!--% padding = 3 %-->
|
<!--% padding = 3 %-->
|
||||||
<!--% media_folder = "eps/"; padding = 3 %-->
|
<!--% media_folder = "eps/"; padding = 3 %-->
|
||||||
<!--% ELSE %-->
|
<!--% ELSE %-->
|
||||||
@ -108,7 +98,7 @@
|
|||||||
<!--% media_baseurl = "${media_baseurl}hpr\$eps_id/" %-->
|
<!--% media_baseurl = "${media_baseurl}hpr\$eps_id/" %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
<!--% media_folder = "" %-->
|
<!--% media_folder = "" %-->
|
||||||
<!--% media_baseurl = media_baseurl.replace('hpr\$eps_id', episode_type _ zero_pad_left(episode_id, padding)) %-->
|
<!--% media_baseurl = media_baseurl.replace('\$eps_id', zero_pad_left(episode_id)) %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
<!--% media_basepath(baseurl, media_baseurl) %--><!--% media_folder %--><!--% episode_type %--><!--% zero_pad_left(episode_id, padding) %-->.<!--% media_type %-->
|
<!--% media_basepath(baseurl, media_baseurl) %--><!--% media_folder %--><!--% episode_type %--><!--% zero_pad_left(episode_id, padding) %-->.<!--% media_type %-->
|
||||||
<!--% END %-->
|
<!--% END %-->
|
||||||
|
0
utils/lib_utils.sh
Executable file → Normal file
0
utils/lib_utils.sh
Executable file → Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user