Remove MySQL specific code from site generation code
- Updated site-generator - Removed [DBI] configuration section - Updated template files to remove un-used field - Deleted MySQL specific template files.
This commit is contained in:
parent
dcd05d0e9b
commit
c5c5dd89b9
@ -169,7 +169,10 @@ sub main {
|
||||
exit 1;
|
||||
}
|
||||
|
||||
my $tt = get_template_html($config{DBI}, $config{app_paths});
|
||||
my $database = 'sqlite';
|
||||
my $DB_driver = 'dbi:SQLite:hpr.db';
|
||||
|
||||
my $tt = get_template_html($database, $DB_driver, $config{app_paths});
|
||||
|
||||
#
|
||||
# Define a TT² vmethod called 'csv_parse', it takes a scalar value and
|
||||
@ -186,7 +189,6 @@ sub main {
|
||||
|
||||
# Remove non page sections of the configuration file
|
||||
# from the generated list of pages.
|
||||
@page_args= grep { $_ ne 'DBI' } @page_args;
|
||||
@page_args= grep { $_ ne 'root_template' } @page_args;
|
||||
@page_args= grep { $_ ne 'app_paths' } @page_args;
|
||||
|
||||
@ -241,18 +243,16 @@ sub get_template_html {
|
||||
# HTML comments to make the template file valid HTML.
|
||||
#
|
||||
return Template->new(
|
||||
{ INCLUDE_PATH => $_[1]{templates_path},
|
||||
OUTPUT_PATH => $_[1]{output_path},
|
||||
{ INCLUDE_PATH => $_[2]{templates_path},
|
||||
OUTPUT_PATH => $_[2]{output_path},
|
||||
EVAL_PERL => 1,
|
||||
START_TAG => '<!--%',
|
||||
END_TAG => '%-->',
|
||||
PRE_CHOMP => 1,
|
||||
POST_CHOMP => 1,
|
||||
CONSTANTS => {
|
||||
database => $_[0]{database},
|
||||
driver => $_[0]{driver},
|
||||
user => $_[0]{user},
|
||||
password => $_[0]{password},
|
||||
database => $_[0],
|
||||
driver => $_[1],
|
||||
}
|
||||
}
|
||||
) || die $Template::ERROR, "\n";
|
||||
|
11
site.cfg
11
site.cfg
@ -3,17 +3,6 @@
|
||||
# dbi:<driver name [SQLite, CSV, ADO, mSQL, etc.]>:<database name>
|
||||
# For more information on Perl Template Toolkit see:
|
||||
# http://template-toolkit.org/docs/manual/index.html
|
||||
[DBI]
|
||||
# Configuration settings for SQLite
|
||||
database: sqlite
|
||||
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
|
||||
[app_paths]
|
||||
|
@ -2,7 +2,8 @@
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||
<!--% PROCESS "queries-episode-${constants.database}.tpl.html" %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
|
||||
<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><a href="<!--% absolute_path(baseurl) %-->comments.rss">Subscribe</a> to the comment feed.</p>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS "queries-correspondent-${constants.database}.tpl.html" %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows)
|
||||
%-->
|
||||
<!--% results_hpr_show_count = DBI.prepare(query_hpr_show_count) %-->
|
||||
|
@ -3,7 +3,7 @@
|
||||
<article>
|
||||
<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 />
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% host_cnt = 0 %-->
|
||||
<table class="hosts">
|
||||
<th >Avatar</th>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-show-transcript.tpl.html' %-->
|
||||
<!--% PROCESS "queries-episode-${constants.database}.tpl.html" %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% query_episodes = DBI.prepare(query_episode_maxmin) %-->
|
||||
<!--% episode_result = query_episodes.execute(id, id, id, id, id) %-->
|
||||
<!--% FOREACH episode IN episode_result %-->
|
||||
|
@ -7,7 +7,7 @@
|
||||
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>
|
||||
</header>
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% FOREACH episodes IN DBI.query(query_episodes)
|
||||
%-->
|
||||
<!--% show_summary(episodes) %-->
|
||||
|
@ -29,7 +29,7 @@
|
||||
<h3>Welcome to HPR, the Community Podcast</h3>
|
||||
</header>
|
||||
<!--% days_till_next_episode = 0 %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% USE date %-->
|
||||
<!--% calc = date.calc %-->
|
||||
<!--% episodes = DBI.query(query_next_available_episode).get_all() %-->
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS "queries-series-${constants.database}.tpl.html" %-->
|
||||
<article>
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<h1 class="title">In-Depth Series</h1>
|
||||
<!--% FOREACH series IN DBI.query(query_episodes) %-->
|
||||
<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-avatar.tpl.html' %-->
|
||||
<!--% PROCESS "queries-series_episodes-${constants.database}.tpl.html" %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% query_series = DBI.prepare(query_series_sql)
|
||||
%-->
|
||||
<!--% series_result = query_series.execute(id) %-->
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS "queries-tags-${constants.database}.tpl.html" %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% PERL %-->
|
||||
$Template::Stash::PRIVATE = undef; # Allow . in tag
|
||||
<!--% END %-->
|
||||
|
@ -2,7 +2,7 @@
|
||||
<!--% PROCESS 'shared-avatar.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-utils.tpl.html' %-->
|
||||
<!--% PROCESS 'shared-listen-now.tpl.html' %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% query_episodes = DBI.prepare('
|
||||
WITH episode_maxmin AS (
|
||||
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% FOREACH host IN DBI.query(
|
||||
'select h.hostid from hosts as h'
|
||||
) %-->
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--% PROCESS "queries-ids-episode-${constants.database}.tpl.html" %-->
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% FOREACH episode IN DBI.query(query_ids_episode) %-->
|
||||
,<!--% episode.id %-->
|
||||
<!--% END %-->
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% FOREACH episode IN DBI.query(
|
||||
'select eps.id from twat_eps AS eps'
|
||||
) %-->
|
||||
|
@ -1,6 +0,0 @@
|
||||
<!--% 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)
|
||||
'
|
||||
%-->
|
@ -1,24 +0,0 @@
|
||||
<!--% 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)
|
||||
'
|
||||
%-->
|
@ -1,51 +0,0 @@
|
||||
<!--% 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 = ?
|
||||
'
|
||||
%-->
|
@ -1,15 +0,0 @@
|
||||
<!--% 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'
|
||||
%-->
|
||||
|
@ -1,2 +0,0 @@
|
||||
<!--% query_ids_episode = 'select eps.id from eps order by eps.id' %-->
|
||||
|
@ -1,58 +0,0 @@
|
||||
<!--% 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
|
||||
'
|
||||
%-->
|
||||
|
@ -1,15 +0,0 @@
|
||||
<!--% 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'
|
||||
%-->
|
||||
|
@ -1,29 +0,0 @@
|
||||
<!--% 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 +0,0 @@
|
||||
<!--% query_tags = 'SELECT id, tags FROM eps' %-->
|
@ -24,7 +24,7 @@
|
||||
<width>144</width>
|
||||
</image>
|
||||
<atom:link href="<!--% absolute_url(http_baseurl) %-->comments.rss" rel="self" type="application/rss+xml" />
|
||||
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% FOREACH response IN DBI.query('SELECT max( comment_timestamp) AS latest_update FROM comments') %-->
|
||||
|
||||
<pubDate><!--% format_feed_date(response.latest_update) %--></pubDate>
|
||||
|
@ -1,26 +0,0 @@
|
||||
<!--% 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, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% query_hpr_feed = DBI.prepare('
|
||||
SELECT
|
||||
eps.id,
|
||||
|
@ -1,25 +0,0 @@
|
||||
<!--% 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, constants.user, constants.password) %-->
|
||||
<!--% USE DBI(constants.driver) %-->
|
||||
<!--% query_hpr_feed = DBI.prepare('
|
||||
SELECT
|
||||
eps.id,
|
||||
|
Loading…
x
Reference in New Issue
Block a user