2026-04-05_14-35-17Z_Sunday workarond script due to broken perl lib
This commit is contained in:
@@ -44,3 +44,4 @@
|
||||
2026-02-01,2026-02-30 15:00:00
|
||||
2026-03-01,2026-03-26 15:00:00
|
||||
2026-04-01,2026-04-30 15:00:00
|
||||
2026-05-01,2026-05-29 15:00:00
|
||||
280
workflow/hpr-cn-generate-notes.bash
Executable file
280
workflow/hpr-cn-generate-notes.bash
Executable file
@@ -0,0 +1,280 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
############################################################################################
|
||||
# Update db
|
||||
|
||||
source settings $1
|
||||
|
||||
git_dir="/home/ken/tmp/hpr/hpr_generator"
|
||||
if [ ! -d "${git_dir}/.git" ]
|
||||
then
|
||||
#git clone gitea@repo.anhonesthost.net:rho_n/hpr_generator.git "${git_dir}"
|
||||
git clone gitea@repo.anhonesthost.net:HPR/hpr_generator.git "${git_dir}"
|
||||
fi
|
||||
|
||||
if [ ! -d "${git_dir}" ]
|
||||
then
|
||||
echo_error "The git dir \"${git_dir}\" is missing"
|
||||
fi
|
||||
|
||||
cd "${git_dir}"
|
||||
|
||||
git pull
|
||||
|
||||
ssh hpr -t "ls -al /docker/users/hpr/userfiles/sql/hpr.sql;md5sum /docker/users/hpr/userfiles/sql/hpr.sql"
|
||||
ssh hpr -t "/docker/users/hpr/userfiles/sql/hpr_db_backup.bash"
|
||||
ssh hpr -t "ls -al /docker/users/hpr/userfiles/sql/hpr.sql;md5sum /docker/users/hpr/userfiles/sql/hpr.sql"
|
||||
|
||||
#/home/ken/tmp/hpr/hpr_generator/utils/update-hpr-db.sh
|
||||
./utils/update-hpr-db.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Terminating...' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
hpr_db="${git_dir}/hpr.db"
|
||||
|
||||
if [[ ! -s "${hpr_db}" || -z "${hpr_db}" ]]
|
||||
then
|
||||
echo_error "The \"hpr_db\" variable/file is missing."
|
||||
fi
|
||||
if [ "$( file --brief --mime-type "${hpr_db}" | grep --count 'application/vnd.sqlite3' )" -ne "1" ]
|
||||
then
|
||||
echo_error "The \"hpr_db\" variable has not a valid \"application/vnd.sqlite3\" mime type."
|
||||
fi
|
||||
|
||||
############################################################################################
|
||||
# Get previous show info
|
||||
|
||||
row=$(sqlite3 hpr.db "
|
||||
SELECT notes
|
||||
FROM eps
|
||||
WHERE duration > 0
|
||||
AND series = 47
|
||||
ORDER BY date DESC
|
||||
LIMIT 1;
|
||||
")
|
||||
|
||||
eval $(
|
||||
echo "$row" |
|
||||
grep -o '<!-- HPRCN:[^>]*-->' |
|
||||
sed -E 's/<!-- HPRCN:(.*) -->/\1/' |
|
||||
tr ',' '\n'
|
||||
)
|
||||
|
||||
echo_debug "The last show month was for ${month}, latest_comment: ${latest_comment}, latest_host: ${latest_host}, and latest_episode: ${latest_episode}"
|
||||
|
||||
############################################################################################
|
||||
# Get next show info
|
||||
|
||||
this_month=$( \date --date="${month}-01 +1 month" +%Y-%m )
|
||||
|
||||
IFS='|' read -r eps_num eps_date <<< "$(sqlite3 hpr.db "
|
||||
SELECT id, date
|
||||
FROM eps
|
||||
WHERE duration = 0
|
||||
AND series = 47
|
||||
ORDER BY date ASC
|
||||
LIMIT 1;
|
||||
")"
|
||||
|
||||
echo_debug "This is going to be hpr${eps_num} for release on ${eps_date}"
|
||||
|
||||
eps_dir="/home/ken/processing/x_${eps_num}_${eps_date}_x"
|
||||
if [ ! -d "${eps_dir}" ]
|
||||
then
|
||||
mkdir -vp "${eps_dir}"
|
||||
fi
|
||||
|
||||
echo_debug "The episode dir is \"${eps_dir}\""
|
||||
|
||||
shownotes_html="${eps_dir}/shownotes.html"
|
||||
|
||||
############################################################################################
|
||||
# Add New hosts to shownotes
|
||||
|
||||
results=$(sqlite3 hpr.db "SELECT hostid, host FROM hosts WHERE hostid > ${latest_host};")
|
||||
|
||||
echo "<h2>New hosts</h2>" | tee "${shownotes_html}"
|
||||
echo "<p>" | tee --append "${shownotes_html}"
|
||||
if [ -z "${results}" ]
|
||||
then
|
||||
echo "There were no new hosts this month." | tee --append "${shownotes_html}"
|
||||
newest_host="${latest_host}"
|
||||
else
|
||||
echo "Welcome to our new hosts: <br>" | tee --append "${shownotes_html}"
|
||||
echo "<ul>" | tee --append "${shownotes_html}"
|
||||
while IFS="|" read -r hostid host
|
||||
do
|
||||
newest_host="${hostid}"
|
||||
printf -v hostid "%04d" "${hostid}"
|
||||
echo "<li><a href=\"https://hackerpublicradio.org/correspondents/${hostid}.html\" target=\"_blank\">${host}</a></li>" | tee --append "${shownotes_html}"
|
||||
done <<< "${results}"
|
||||
echo "</ul>" | tee --append "${shownotes_html}"
|
||||
fi
|
||||
echo "</p>" | tee --append "${shownotes_html}"
|
||||
echo "" | tee --append "${shownotes_html}"
|
||||
|
||||
############################################################################################
|
||||
# Add Last Month's Shows to shownotes
|
||||
|
||||
results=$(sqlite3 hpr.db "
|
||||
SELECT eps.id, hosts.host, eps.title, eps.date, eps.hostid
|
||||
FROM eps, hosts
|
||||
WHERE eps.id > ${latest_episode}
|
||||
AND eps.date LIKE \"${this_month}%\"
|
||||
AND eps.valid = 1
|
||||
AND eps.hostid = hosts.hostid;
|
||||
")
|
||||
|
||||
|
||||
echo "<h2>Last Month's Shows</h2>" | tee --append "${shownotes_html}"
|
||||
echo "" | tee --append "${shownotes_html}"
|
||||
# [%# The id 't01' is in the HPR CSS but might give trouble on the IA -%]
|
||||
echo "<table id=\"t01\">" | tee --append "${shownotes_html}"
|
||||
echo "<tr>" | tee --append "${shownotes_html}"
|
||||
echo "<th>Id</th>" | tee --append "${shownotes_html}"
|
||||
echo "<th>Day</th>" | tee --append "${shownotes_html}"
|
||||
echo "<th>Date</th>" | tee --append "${shownotes_html}"
|
||||
echo "<th>Title</th>" | tee --append "${shownotes_html}"
|
||||
echo "<th>Host</th>" | tee --append "${shownotes_html}"
|
||||
echo "</tr>" | tee --append "${shownotes_html}"
|
||||
if [ -z "${results}" ]
|
||||
then
|
||||
echo_error "There were no shows found for this month."
|
||||
else
|
||||
while IFS="|" read -r eps_id host title eps_date hostid
|
||||
do
|
||||
printf -v hostid "%04d" "${hostid}"
|
||||
printf -v eps_id "%04d" "${eps_id}"
|
||||
echo "<tr>" | tee --append "${shownotes_html}"
|
||||
echo "<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr${eps_id}/index.html\" target=\"_blank\">${eps_id}</a></strong></td>" | tee --append "${shownotes_html}"
|
||||
echo "<td>$( \date --date=${eps_date} +%a )</td>" | tee --append "${shownotes_html}"
|
||||
echo "<td class=\"shrink\">${eps_date}</td>" | tee --append "${shownotes_html}"
|
||||
echo "<td><a href=\"https://hackerpublicradio.org/eps/hpr${eps_id}/index.html\" target=\"_blank\">${title}</a></td>" | tee --append "${shownotes_html}"
|
||||
echo "<td><a href=\"https://hackerpublicradio.org/correspondents/${hostid}.html\" target=\"_blank\">${host}</a></td>" | tee --append "${shownotes_html}"
|
||||
latest_episode=${eps_id}
|
||||
echo "</tr>" | tee --append "${shownotes_html}"
|
||||
done <<< "${results}"
|
||||
fi
|
||||
echo "</table>" | tee --append "${shownotes_html}"
|
||||
echo "" | tee --append "${shownotes_html}"
|
||||
|
||||
############################################################################################
|
||||
# Add Comments to shownotes
|
||||
|
||||
|
||||
function render_comments() {
|
||||
|
||||
results=${1}
|
||||
|
||||
if [ -z "${results}" ]
|
||||
then
|
||||
echo_error "There were no comments found for this month."
|
||||
else
|
||||
this_comment="0"
|
||||
open_line="0"
|
||||
echo "<ul>" | tee --append "${shownotes_html}"
|
||||
while IFS="|" read -r comments_id comments_eps_id eps_date eps_title hosts_host hosts_hostid comments_comment_author_name comments_comment_timestamp comments_comment_title
|
||||
do
|
||||
if [ "${this_comment}" -ne "${comments_eps_id}" ]
|
||||
then
|
||||
if [ "${open_line}" -ne "0" ]
|
||||
then
|
||||
echo "</ul>" | tee --append "${shownotes_html}"
|
||||
fi
|
||||
open_line="1"
|
||||
this_comment="${comments_eps_id}"
|
||||
printf -v hosts_hostid "%04d" "${hosts_hostid}"
|
||||
printf -v comments_eps_id "%04d" "${comments_eps_id}"
|
||||
echo "<li><strong><a href=\"https://hackerpublicradio.org/eps/hpr${comments_eps_id}/index.html#comments\" target=\"_blank\">hpr${comments_eps_id}</a></strong> (${eps_date}) \"<em>${eps_title}</em>\" by <a href=\"https://hackerpublicradio.org/correspondents/${hosts_hostid}.html\" target=\"_blank\">${hosts_host}</a>.<br></li>" | tee --append "${shownotes_html}"
|
||||
echo "<ul>" | tee --append "${shownotes_html}"
|
||||
fi
|
||||
echo "<li style=\"list-style: none; display: inline\"><strong>${comments_comment_author_name}</strong> said: \"<em><a href=\"https://hackerpublicradio.org/eps/hpr${comments_eps_id}/index.html#comment_${comments_id}\" target=\"_blank\">${comments_comment_title}</a></em>\" (${comments_comment_timestamp})<br/></li>" | tee --append "${shownotes_html}"
|
||||
latest_comment="${comments_id}"
|
||||
done <<< "${results}"
|
||||
echo "</ul>" | tee --append "${shownotes_html}"
|
||||
echo "</ul>" | tee --append "${shownotes_html}"
|
||||
fi
|
||||
}
|
||||
|
||||
# -------------------------------------------
|
||||
|
||||
echo "<h2>Comments this month</h2>" | tee --append "${shownotes_html}"
|
||||
echo "" | tee --append "${shownotes_html}"
|
||||
|
||||
echo "<h3>Past shows</h3>" | tee --append "${shownotes_html}"
|
||||
|
||||
latest_comment_last_changed=$(sqlite3 hpr.db "SELECT last_changed FROM comments WHERE comments.id = ${latest_comment};")
|
||||
|
||||
results=$(sqlite3 hpr.db "
|
||||
SELECT
|
||||
comments.id,
|
||||
comments.eps_id,
|
||||
eps.date,
|
||||
eps.title,
|
||||
hosts.host,
|
||||
hosts.hostid,
|
||||
comments.comment_author_name,
|
||||
comments.comment_timestamp,
|
||||
comments.comment_title
|
||||
FROM comments
|
||||
JOIN eps ON comments.eps_id = eps.id
|
||||
JOIN hosts ON eps.hostid = hosts.hostid
|
||||
WHERE comments.last_changed > \"${latest_comment_last_changed}\"
|
||||
AND eps.date <= \"${this_month}-01\"
|
||||
ORDER BY eps.date;
|
||||
")
|
||||
|
||||
render_comments "${results}"
|
||||
|
||||
echo "<h3>This month's shows</h3>" | tee --append "${shownotes_html}"
|
||||
|
||||
results=$(sqlite3 hpr.db "
|
||||
SELECT
|
||||
comments.id,
|
||||
comments.eps_id,
|
||||
eps.date,
|
||||
eps.title,
|
||||
hosts.host,
|
||||
hosts.hostid,
|
||||
comments.comment_author_name,
|
||||
comments.comment_timestamp,
|
||||
comments.comment_title
|
||||
FROM comments
|
||||
JOIN eps ON comments.eps_id = eps.id
|
||||
JOIN hosts ON eps.hostid = hosts.hostid
|
||||
WHERE eps.date LIKE \"${this_month}-%\"
|
||||
ORDER BY eps.date;
|
||||
")
|
||||
|
||||
render_comments "${results}"
|
||||
|
||||
############################################################################################
|
||||
# Add maillist and cal to shownotes
|
||||
|
||||
mailman_link="https://lists.hackerpublicradio.com/pipermail/hpr/$( \date -d"${month}-01 next month" +%Y-%B )/thread.html"
|
||||
echo "<h2>Mailing List discussions</h2>" | tee --append "${shownotes_html}"
|
||||
echo "<p>Policy decisions surrounding HPR are taken by the community as a whole. This
|
||||
discussion takes place on the <a href=\"https://lists.hackerpublicradio.com/mailman/listinfo/hpr\" target=\"_blank\">Mailing List</a>
|
||||
which is open to all HPR listeners and contributors. The discussions are open
|
||||
and available on the HPR server under <a href=\"https://lists.hackerpublicradio.com/pipermail/hpr\">Mailman</a>.
|
||||
</p>
|
||||
<p>The threaded discussions this month can be found here:</p>
|
||||
<a href=\"${mailman_link}\" target=\"_blank\">${mailman_link}</a>
|
||||
|
||||
<h2>Events Calendar</h2>
|
||||
<p>With the kind permission of <strong>LWN.net</strong> we are linking to
|
||||
<a href=\"https://lwn.net/Calendar/\" target=\"_blank\">The LWN.net Community Calendar</a>.</p>
|
||||
<p>Quoting the site:</p>
|
||||
<blockquote>This is the LWN.net community event calendar, where we track
|
||||
events of interest to people using and developing Linux and free software.
|
||||
Clicking on individual events will take you to the appropriate web
|
||||
page.</blockquote>" | tee --append "${shownotes_html}"
|
||||
|
||||
latest_comment=$(sqlite3 hpr.db "SELECT MAX(id) FROM comments;")
|
||||
echo "<!-- HPRCN:month=${this_month},latest_comment=${latest_comment},latest_host=${newest_host},latest_episode=${latest_episode} -->" | tee --append "${shownotes_html}"
|
||||
|
||||
cp -v "${shownotes_html}" "${shownotes_html%.*}"_edited.html
|
||||
ls -al "${eps_dir}"
|
||||
Reference in New Issue
Block a user