Support narration when generating the CN notes
This commit is contained in:
1 parent
7008ddb2b5
commit
1a754bf2ac
2 files changed
+307
-124
No files matched your search
+304
-123
@@ -1,11 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# https://brycebeattie.com/files/tts/
|
||||
#piper_voice="/opt/bin/piper/piper/piper-voices/en/en_US/lessac/medium/en_US-lessac-medium.onnx"
|
||||
piper_voice="/opt/bin/piper/piper/piper-voices/en/en_US/kristin/medium/en_US-kristin-medium.onnx"
|
||||
|
||||
|
||||
|
||||
############################################################################################
|
||||
# Update db
|
||||
|
||||
source settings $1
|
||||
|
||||
git_dir="/home/ken/tmp/hpr/hpr_generator"
|
||||
git_dir="$HOME/tmp/hpr/hpr_generator"
|
||||
if [ ! -d "${git_dir}/.git" ]
|
||||
then
|
||||
#git clone gitea@repo.anhonesthost.net:rho_n/hpr_generator.git "${git_dir}"
|
||||
@@ -21,17 +27,17 @@ 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
|
||||
# # # # 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/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"
|
||||
|
||||
@@ -56,12 +62,7 @@ ORDER BY date DESC
|
||||
LIMIT 1;
|
||||
")
|
||||
|
||||
printf "\n%s\n" "SELECT notes
|
||||
FROM eps
|
||||
WHERE duration > 0
|
||||
AND series = 47
|
||||
ORDER BY date DESC
|
||||
LIMIT 1;" 1>&2
|
||||
# <!-- HPRCN:month=2026-10,latest_comment=4952,latest_host=464,latest_episode=4760 -->
|
||||
|
||||
eval $(
|
||||
echo "$row" |
|
||||
@@ -70,10 +71,28 @@ eval $(
|
||||
tr ',' '\n'
|
||||
)
|
||||
|
||||
echo_debug "The last show month was for ${month}, previous_cn_latest_comment: ${latest_comment}, latest_host: ${latest_host}, and previous_cn_latest_episode: ${previous_cn_latest_episode}"
|
||||
|
||||
previous_month="${month}"
|
||||
this_month="$( \date --date "${previous_month}-01 + 1 month" "+%Y-%m" )"
|
||||
previous_cn_latest_comment="${latest_comment}"
|
||||
previous_cn_latest_episode="${latest_episode}"
|
||||
previous_latest_host="${latest_host}"
|
||||
end_of_month_episode_date="$( \date --date "${this_month}-01 + 1 month - 1 day" "+%Y-%m-%d" )"
|
||||
|
||||
echo_debug "The last show month was for ${previous_month}, and this month is ${this_month}, previous_cn_latest_comment: ${previous_cn_latest_comment}, latest_host: ${previous_latest_host}, and previous_cn_latest_episode: ${previous_cn_latest_episode}, end_of_month_episode_date: ${end_of_month_episode_date}"
|
||||
|
||||
|
||||
############################################################################################
|
||||
# Get last show info
|
||||
|
||||
IFS='|' read -r end_of_month_episode_number <<< "$(sqlite3 "${hpr_db}" "
|
||||
SELECT MAX(id) AS end_of_month_episode_number
|
||||
FROM eps
|
||||
WHERE date <= \"${end_of_month_episode_date}\"
|
||||
LIMIT 1;
|
||||
")"
|
||||
|
||||
echo_debug "Last episode this month is hpr${end_of_month_episode_number} released on ${end_of_month_episode_date}"
|
||||
|
||||
|
||||
############################################################################################
|
||||
# Get next show info
|
||||
@@ -88,16 +107,10 @@ AND series = 47
|
||||
ORDER BY date ASC
|
||||
LIMIT 1;
|
||||
")"
|
||||
printf "\n%s\n" "SELECT id, date
|
||||
FROM eps
|
||||
WHERE duration = 0
|
||||
AND series = 47
|
||||
ORDER BY date ASC
|
||||
LIMIT 1;" 1>&2
|
||||
|
||||
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"
|
||||
eps_dir="$HOME/processing/x_${eps_num}_${eps_date}_x"
|
||||
if [ ! -d "${eps_dir}" ]
|
||||
then
|
||||
mkdir -vp "${eps_dir}"
|
||||
@@ -106,32 +119,50 @@ fi
|
||||
echo_debug "The episode dir is \"${eps_dir}\""
|
||||
|
||||
shownotes_html="${eps_dir}/shownotes.html"
|
||||
if [ -e "${shownotes_html}" ]
|
||||
then
|
||||
rm -v "${shownotes_html}"
|
||||
fi
|
||||
shownotes_html_edited="${shownotes_html%.*}"_edited.html
|
||||
if [ -e "${shownotes_html_edited}" ]
|
||||
then
|
||||
rm -v "${shownotes_html_edited}"
|
||||
fi
|
||||
shownotes_recordings_dir="${eps_dir}/Recordings"
|
||||
comment_script_md="${eps_dir}/script.md"
|
||||
if [ -e "${comment_script_md}" ]
|
||||
then
|
||||
rm -v "${comment_script_md}"
|
||||
fi
|
||||
|
||||
if [ ! -d "${shownotes_recordings_dir}" ]
|
||||
then
|
||||
mkdir -vp "${shownotes_recordings_dir}"
|
||||
fi
|
||||
|
||||
############################################################################################
|
||||
# Add New hosts to shownotes
|
||||
|
||||
results=$(sqlite3 "${hpr_db}" "SELECT hostid, host FROM hosts WHERE hostid > ${latest_host};")
|
||||
printf "\n%s\n" "SELECT hostid, host FROM hosts WHERE hostid > ${latest_host};" 1>&2
|
||||
|
||||
echo "<h2>New hosts</h2>" > "${shownotes_html}"
|
||||
echo "<p>" >> "${shownotes_html}"
|
||||
echo "<h2>New hosts</h2>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<p>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
if [ -z "${results}" ]
|
||||
then
|
||||
echo "There were no new hosts this month." >> "${shownotes_html}"
|
||||
echo "There were no new hosts this month." | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
newest_host="${latest_host}"
|
||||
else
|
||||
echo "Welcome to our new hosts: <br>" >> "${shownotes_html}"
|
||||
echo "<ul>" >> "${shownotes_html}"
|
||||
echo "Welcome to our new hosts: <br>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<ul>" | tee --append "${shownotes_html_edited}" >> "${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>" >> "${shownotes_html}"
|
||||
echo "<li><a href=\"https://hackerpublicradio.org/correspondents/${hostid}.html\" target=\"_blank\">${host}</a></li>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
done <<< "${results}"
|
||||
echo "</ul>" >> "${shownotes_html}"
|
||||
echo "</ul>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
fi
|
||||
echo "</p>" >> "${shownotes_html}"
|
||||
echo "" >> "${shownotes_html}"
|
||||
echo "</p>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
############################################################################################
|
||||
# Add Last Month's Shows to shownotes
|
||||
@@ -145,49 +176,39 @@ AND eps.valid = 1
|
||||
AND eps.hostid = hosts.hostid;
|
||||
")
|
||||
|
||||
printf "\n%s\n" "SELECT eps.id, hosts.host, eps.title, eps.date, eps.hostid
|
||||
FROM eps, hosts
|
||||
WHERE eps.id > ${previous_cn_latest_episode}
|
||||
AND eps.date LIKE \"${this_month}%\"
|
||||
AND eps.valid = 1
|
||||
AND eps.hostid = hosts.hostid;" 1>&2
|
||||
|
||||
echo "<h2>Last Month's Shows</h2>" >> "${shownotes_html}"
|
||||
echo "" >> "${shownotes_html}"
|
||||
echo "<h2>Last Month's Shows</h2>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
# [%# The id 't01' is in the HPR CSS but might give trouble on the IA -%]
|
||||
echo "<table id=\"t01\">" >> "${shownotes_html}"
|
||||
echo "<tr>" >> "${shownotes_html}"
|
||||
echo "<th>Id</th>" >> "${shownotes_html}"
|
||||
echo "<th>Day</th>" >> "${shownotes_html}"
|
||||
echo "<th>Date</th>" >> "${shownotes_html}"
|
||||
echo "<th>Title</th>" >> "${shownotes_html}"
|
||||
echo "<th>Host</th>" >> "${shownotes_html}"
|
||||
echo "</tr>" >> "${shownotes_html}"
|
||||
echo "<table id=\"t01\">" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<tr>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<th>Id</th>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<th>Day</th>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<th>Date</th>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<th>Title</th>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<th>Host</th>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "</tr>" | tee --append "${shownotes_html_edited}" >> "${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>" >> "${shownotes_html}"
|
||||
echo "<td><strong><a href=\"https://hackerpublicradio.org/eps/hpr${eps_id}/index.html\" target=\"_blank\">${eps_id}</a></strong></td>" >> "${shownotes_html}"
|
||||
echo "<td>$( \date --date=${eps_date} +%a )</td>" >> "${shownotes_html}"
|
||||
echo "<td class=\"shrink\">${eps_date}</td>" >> "${shownotes_html}"
|
||||
echo "<td><a href=\"https://hackerpublicradio.org/eps/hpr${eps_id}/index.html\" target=\"_blank\">${title}</a></td>" >> "${shownotes_html}"
|
||||
echo "<td><a href=\"https://hackerpublicradio.org/correspondents/${hostid}.html\" target=\"_blank\">${host}</a></td>" >> "${shownotes_html}"
|
||||
echo "<tr>" | tee --append "${shownotes_html_edited}" >> "${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_edited}" >> "${shownotes_html}"
|
||||
echo "<td>$( \date --date=${eps_date} +%a )</td>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<td class=\"shrink\">${eps_date}</td>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<td><a href=\"https://hackerpublicradio.org/eps/hpr${eps_id}/index.html\" target=\"_blank\">${title}</a></td>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "<td><a href=\"https://hackerpublicradio.org/correspondents/${hostid}.html\" target=\"_blank\">${host}</a></td>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
latest_episode=${eps_id}
|
||||
echo "</tr>" >> "${shownotes_html}"
|
||||
echo "</tr>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
done <<< "${results}"
|
||||
fi
|
||||
echo "</table>" >> "${shownotes_html}"
|
||||
echo "" >> "${shownotes_html}"
|
||||
echo "</table>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
############################################################################################
|
||||
# Add Comments to shownotes
|
||||
|
||||
|
||||
function render_comments() {
|
||||
|
||||
results=${1}
|
||||
@@ -198,39 +219,100 @@ function render_comments() {
|
||||
else
|
||||
this_comment="0"
|
||||
open_line="0"
|
||||
echo "<ul>" >> "${shownotes_html}"
|
||||
echo "<ul>" | tee --append "${shownotes_html_edited}" >> "${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
|
||||
|
||||
echo "# Comment${comments_id}Vvvvvvvvvvvvvvvvvvvvvvvvvvvv" | tee --append "${comment_script_md}"
|
||||
echo "${eps_title} by ${hosts_host}" | tee --append "${comment_script_md}"
|
||||
echo "- https://hackerpublicradio.org/eps/hpr${comments_eps_id}/index.html#comment_${comments_id} (${eps_date})" | tee --append "${comment_script_md}"
|
||||
echo "- https://hackerpublicradio.org/correspondents/${hosts_hostid}.html" | tee --append "${comment_script_md}"
|
||||
|
||||
comment_script_txt="${shownotes_recordings_dir}/Comment${comments_id}.txt"
|
||||
comment_script_piper="${shownotes_recordings_dir}/Comment${comments_id}_piper.wav"
|
||||
comment_script_espeak="${shownotes_recordings_dir}/Comment${comments_id}_espeak.wav"
|
||||
|
||||
echo "${comments_comment_author_name} said: «${comments_comment_title}»" | tee "${comment_script_txt}"
|
||||
|
||||
sqlite3 "${hpr_db}" "SELECT comments.comment_text AS comment_text FROM comments WHERE comments.id = ${comments_id};" | tee --append "${comment_script_txt}"
|
||||
|
||||
echo "${comments_comment_text}" | tee --append "${comment_script_txt}"
|
||||
|
||||
echo "" | tee --append "${comment_script_txt}"
|
||||
|
||||
cat "${comment_script_txt}" >> "${comment_script_md}"
|
||||
|
||||
if [ ! -e "${comment_script_piper}" ]
|
||||
then
|
||||
echo_debug "Genereating piper \"${comment_script_piper}\""
|
||||
piper --model "${piper_voice}" --input-file "${comment_script_txt}" --output_file "${comment_script_piper}"
|
||||
fi
|
||||
|
||||
if [ ! -e "${comment_script_espeak}" ]
|
||||
then
|
||||
echo_debug "Genereating espeak \"${comment_script_espeak}\""
|
||||
espeak -f "${comment_script_txt}" -w "${comment_script_espeak}"
|
||||
fi
|
||||
|
||||
if [ "${this_comment}" -ne "${comments_eps_id}" ]
|
||||
then
|
||||
if [ "${open_line}" -ne "0" ]
|
||||
then
|
||||
echo "</ul>" >> "${shownotes_html}"
|
||||
echo "</ul>" | tee --append "${shownotes_html_edited}" >> "${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>" >> "${shownotes_html}"
|
||||
echo "<ul>" >> "${shownotes_html}"
|
||||
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_edited}" >> "${shownotes_html}"
|
||||
echo "<ul>" | tee --append "${shownotes_html_edited}" >> "${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>" >> "${shownotes_html}"
|
||||
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_edited}" >> "${shownotes_html}"
|
||||
|
||||
comment_script_txt="${shownotes_recordings_dir}/Comment${comments_id}.txt"
|
||||
comment_script_piper="${shownotes_recordings_dir}/Comment${comments_id}_piper.wav"
|
||||
comment_script_espeak="${shownotes_recordings_dir}/Comment${comments_id}_espeak.wav"
|
||||
comment_script_narration="${shownotes_recordings_dir}/Comment${comments_id}Vvvvvvvvvvvvvvvvvvvvvvvvvvv.wav"
|
||||
|
||||
echo "<ul>" | tee --append "${shownotes_html_edited}"
|
||||
if [ -e "${comment_script_narration}" ]
|
||||
then
|
||||
comment_script_narration_web="./Recordings/$( basename "${comment_script_narration}" )"
|
||||
echo "<li><audio controls=\"\" preload=\"none\" >
|
||||
<source src=\"${comment_script_narration_web}\" type=\"audio/x-wav\">
|
||||
</audio>" | tee --append "${shownotes_html_edited}"
|
||||
fi
|
||||
|
||||
if [ -e "${comment_script_piper}" ]
|
||||
then
|
||||
comment_script_piper_web="./Recordings/$( basename "${comment_script_piper}" )"
|
||||
echo "<audio controls=\"\" preload=\"none\" >
|
||||
<source src=\"${comment_script_piper_web}\" type=\"audio/x-wav\">
|
||||
</audio>" | tee --append "${shownotes_html_edited}"
|
||||
fi
|
||||
|
||||
if [ -e "${comment_script_espeak}" ]
|
||||
then
|
||||
comment_script_espeak_web="./Recordings/$( basename "${comment_script_espeak}" )"
|
||||
echo "<audio controls=\"\" preload=\"none\" >
|
||||
<source src=\"${comment_script_espeak_web}\" type=\"audio/x-wav\">
|
||||
</audio></li>" | tee --append "${shownotes_html_edited}"
|
||||
fi
|
||||
echo "</ul>" | tee --append "${shownotes_html_edited}"
|
||||
|
||||
latest_comment="${comments_id}"
|
||||
done <<< "${results}"
|
||||
echo "</ul>" >> "${shownotes_html}"
|
||||
echo "</ul>" >> "${shownotes_html}"
|
||||
echo "</ul>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "</ul>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
fi
|
||||
}
|
||||
|
||||
# -------------------------------------------
|
||||
|
||||
echo "<h2>Comments this month</h2>" >> "${shownotes_html}"
|
||||
echo "" >> "${shownotes_html}"
|
||||
echo "<h2>Comments this month</h2>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
echo "" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
echo "<h3>Past shows</h3>" >> "${shownotes_html}"
|
||||
echo "<h3>Past shows</h3>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
previous_cn_latest_comment_last_changed=$(sqlite3 "${hpr_db}" "SELECT last_changed FROM comments WHERE comments.id = ${previous_cn_latest_comment};")
|
||||
printf "\n%s\n" "SELECT last_changed FROM comments WHERE comments.id = ${previous_cn_latest_comment};" 1>&2
|
||||
|
||||
results=$(sqlite3 -separator '→' "${hpr_db}" "
|
||||
SELECT
|
||||
@@ -250,28 +332,10 @@ WHERE comments.id > "${previous_cn_latest_comment}"
|
||||
AND eps.id <= "${previous_cn_latest_episode}"
|
||||
ORDER BY eps.date;
|
||||
")
|
||||
printf "\n%s\n" "
|
||||
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.id > "${previous_cn_latest_comment}"
|
||||
AND eps.id <= "${previous_cn_latest_episode}"
|
||||
ORDER BY eps.date;
|
||||
" 1>&2
|
||||
|
||||
render_comments "${results}"
|
||||
|
||||
echo "<h3>This month's shows</h3>" >> "${shownotes_html}"
|
||||
echo "<h3>This month's shows</h3>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
results=$(sqlite3 -separator '→' "${hpr_db}" "
|
||||
SELECT
|
||||
@@ -290,49 +354,166 @@ JOIN hosts ON eps.hostid = hosts.hostid
|
||||
WHERE eps.date LIKE \"${this_month}-%\"
|
||||
ORDER BY eps.date;
|
||||
")
|
||||
printf "\n%s\n" "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;" 1>&2
|
||||
|
||||
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>" >> "${shownotes_html}"
|
||||
mailman_base="https://lists.hackerpublicradio.com/pipermail/hpr/$( \date -d"${this_month}-01" +%Y-%B )"
|
||||
mailman_link="${mailman_base}/thread.html"
|
||||
wget "${mailman_link}" -O thread.html
|
||||
|
||||
|
||||
grep --perl-regexp -- 'A HREF' thread.html | awk -F '"' '{print $2}' | while read this_post
|
||||
do
|
||||
this_post_html="${shownotes_recordings_dir}/Post${this_post%.*}.html"
|
||||
if [ ! -e ${this_post_html} ]
|
||||
then
|
||||
wget ${mailman_base}/${this_post} --output-document=${this_post_html}
|
||||
fi
|
||||
|
||||
this_post_txt="${shownotes_recordings_dir}/Post${this_post%.*}.txt"
|
||||
if [ ! -e ${this_post_txt} ]
|
||||
then
|
||||
echo "# Post${this_post%.*}vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" > "${this_post_txt}"
|
||||
grep ' <B>' "${this_post_html}" | tee --append "${this_post_txt}"
|
||||
sed --quiet --expression='/<!--beginarticle-->/,/<!--endarticle-->/{ /<!--beginarticle-->/d; /<!--endarticle-->/d; p; }' "${this_post_html}" | tee --append "${this_post_txt}"
|
||||
sed -e 's#^ <B>##g' -e 's#</B># says:#g' -e 's#<PRE>##g' -e 's#</PRE>##g' -i "${this_post_txt}"
|
||||
fi
|
||||
done
|
||||
|
||||
for this_post in ${shownotes_recordings_dir}/Post*txt
|
||||
do
|
||||
this_post_name="$( basename "${this_post}" )"
|
||||
if [ "$( find ${shownotes_recordings_dir} -type f -iname "${this_post_name%.*}*.wav" | wc -l )" -eq "0" ]
|
||||
then
|
||||
kate -n "${this_post}" >/dev/null 2>&1 &
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$( ps -ef | grep kate | grep Post | wc -l )" -ne "0" ]
|
||||
then
|
||||
read -p "Were the posts edited ? (N|y) ? " -n 1 -r
|
||||
echo # (optional) move to a new line
|
||||
if [[ ! $REPLY =~ ^[yY]$ ]]
|
||||
then
|
||||
echo_error "The final review was not approved."
|
||||
fi
|
||||
fi
|
||||
|
||||
for this_post in ${shownotes_recordings_dir}/Post*txt
|
||||
do
|
||||
echo " " >> ${comment_script_md}
|
||||
cat ${this_post} >> ${comment_script_md}
|
||||
|
||||
post_id="$( basename "${this_post%.*}" )"
|
||||
post_script_txt="${shownotes_recordings_dir}/${post_id}.txt"
|
||||
post_script_piper="${shownotes_recordings_dir}/${post_id}_piper.wav"
|
||||
post_script_espeak="${shownotes_recordings_dir}/${post_id}_espeak.wav"
|
||||
|
||||
|
||||
if [ ! -e "${post_script_piper}" ]
|
||||
then
|
||||
echo_debug "Genereating piper \"${post_script_piper}\""
|
||||
piper --model "${piper_voice}" --input-file "${post_script_txt}" --output_file "${post_script_piper}"
|
||||
fi
|
||||
|
||||
if [ ! -e "${post_script_espeak}" ]
|
||||
then
|
||||
echo_debug "Genereating espeak \"${post_script_espeak}\""
|
||||
espeak -f "${post_script_txt}" -w "${post_script_espeak}"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
echo "<h2>Mailing List discussions</h2>" | tee --append "${shownotes_html_edited}" >> "${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>
|
||||
<a href=\"${mailman_link}\" target=\"_blank\">${mailman_link}</a>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
<h2>Events Calendar</h2>
|
||||
echo "<UL>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
sed --null-data "s/\n//g" thread.html | \
|
||||
sed --expression='s/<LI>/\n<LI>/g' --expression='s#</LI>#</LI>\n#g' --expression='s#<UL>#\n<UL>\n#g' --expression='s#</UL>#\n</UL>\n#g' --expression='s#<ul>#\n<ul>\n#g' --expression='s#</ul>#\n</ul>\n#g' | \
|
||||
grep --perl-regexp -- '<LI>|</LI>|<UL>|</UL>' | while read this_post_line
|
||||
do
|
||||
if [ "$( echo "${this_post_line}" | grep --count '<LI>' )" ]
|
||||
then
|
||||
echo "${this_post_line}</LI>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
### <LI><A HREF="005073.html">[Hpr] Community News Clone Voices</A><A NAME="5073"> </A><I>candy</I><!--1 01793572759.5072-01793614515.5074- --></LI>
|
||||
|
||||
post_id="$( echo "${this_post_line}" | awk -F '"' '{print "Post"$2}' | sed 's/\.html//g' )"
|
||||
post_script_narration="${shownotes_recordings_dir}/${post_id}Vvvvvvvvvvvvvvvvvvvvvvvvvvvv.wav"
|
||||
post_script_piper="${shownotes_recordings_dir}/${post_id}_piper.wav"
|
||||
post_script_espeak="${shownotes_recordings_dir}/${post_id}_espeak.wav"
|
||||
|
||||
echo "<ul>" | tee --append "${shownotes_html_edited}"
|
||||
if [ -e "${post_script_narration}" ]
|
||||
then
|
||||
post_script_narration_web="./Recordings/$( basename "${post_script_narration}" )"
|
||||
echo "<li><audio controls=\"\" preload=\"none\" >
|
||||
<source src=\"${post_script_narration_web}\" type=\"audio/x-wav\">
|
||||
</audio>" | tee --append "${shownotes_html_edited}"
|
||||
fi
|
||||
|
||||
if [ -e "${post_script_piper}" ]
|
||||
then
|
||||
post_script_piper_web="./Recordings/$( basename "${post_script_piper}" )"
|
||||
echo "<audio controls=\"\" preload=\"none\" >
|
||||
<source src=\"${post_script_piper_web}\" type=\"audio/x-wav\">
|
||||
</audio>" | tee --append "${shownotes_html_edited}"
|
||||
fi
|
||||
|
||||
if [ -e "${post_script_espeak}" ]
|
||||
then
|
||||
post_script_espeak_web="./Recordings/$( basename "${post_script_espeak}" )"
|
||||
echo "<audio controls=\"\" preload=\"none\" >
|
||||
<source src=\"${post_script_espeak_web}\" type=\"audio/x-wav\">
|
||||
</audio></li>" | tee --append "${shownotes_html_edited}"
|
||||
fi
|
||||
echo "</ul>" | tee --append "${shownotes_html_edited}"
|
||||
|
||||
|
||||
|
||||
else
|
||||
echo "${this_post_line}" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "</UL>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
echo "<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>" >> "${shownotes_html}"
|
||||
page.</blockquote>" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
latest_comment=$(sqlite3 "${hpr_db}" "SELECT MAX(id) FROM comments;")
|
||||
printf "\n%s\n" "" 1>&2
|
||||
echo "<!-- HPRCN:month=${this_month},latest_comment=${latest_comment},latest_host=${newest_host},latest_episode=${latest_episode} -->" >> "${shownotes_html}"
|
||||
echo "<!-- HPRCN:month=${this_month},latest_comment=${latest_comment},latest_host=${newest_host},latest_episode=${latest_episode} -->" | tee --append "${shownotes_html_edited}" >> "${shownotes_html}"
|
||||
|
||||
cp -v "${shownotes_html}" "${shownotes_html%.*}"_edited.html
|
||||
ls -al "${eps_dir}"
|
||||
cd "${eps_dir}"
|
||||
|
||||
while [ "$( $HOME/sourcecode/hpr/solocast/solocast/solocast.py status | grep --count 'All Segments Recorded' )" == "0" ]
|
||||
do
|
||||
$HOME/sourcecode/hpr/solocast/solocast/solocast.py record
|
||||
$HOME/sourcecode/hpr/solocast/solocast/solocast.py status
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# # # for audio_wav in "${shownotes_recordings_dir}"/*.wav
|
||||
# # # do
|
||||
# # # if [ ! -e "${audio_wav%.*}.mp3" ]
|
||||
# # # then
|
||||
# # # ffmpeg -i "${audio_wav}" "${audio_wav%.*}.mp3"
|
||||
# # # fi
|
||||
# # # done
|
||||
# # #
|
||||
# # #
|
||||
@@ -18,7 +18,9 @@ outro_flac="${processing_dir}/outro.flac" # The outro edited media
|
||||
outro_srt="${processing_dir}/outro.srt" # The outro subtitle file
|
||||
intro_srt="${processing_dir}/intro.srt" # The intro subtitle template file
|
||||
|
||||
piper_voice="/opt/bin/piper/piper/piper-voices/en/en_US/lessac/medium/en_US-lessac-medium.onnx"
|
||||
# https://brycebeattie.com/files/tts/
|
||||
#piper_voice="/opt/bin/piper/piper/piper-voices/en/en_US/lessac/medium/en_US-lessac-medium.onnx"
|
||||
piper_voice="/opt/bin/piper/piper/piper-voices/en/en_US/kristin/medium/en_US-kristin-medium.onnx"
|
||||
|
||||
working_dir_bypass="false"
|
||||
skip_post_show="false"
|
||||
|
||||
Reference in new issue
Block a user