generate thumbnails

master
Ken Barbour 2022-07-13 18:53:39 -04:00
parent 420f49c021
commit c04ab9b0b6
1 changed files with 28 additions and 7 deletions

View File

@ -55,11 +55,30 @@ function find_valid_manifest_files() {
} }
# @param manifest file # @param manifest file
# @output path to image file # @param path (in WXRX_WEB_PUBDIR) to publish files to
# @output relative path to image file from WXRX_WEB_PUBDIR
# @side-effect generates an image file in WXRX_WEB_PUBDIR/{path}
function generate_manifest_thumbnail() { function generate_manifest_thumbnail() {
#TODO: generate an actual thumbnail and move it to the web dir local manifest=${1}
# skip if file exists, unless forced local manifestdir=$(dirname ${manifest})
cat $1 | grep -m1 '\.png' local relpath=${2}
local basename=$(basename "${manifest}" "manifest.txt")
local dest=${relpath}/${basename}thumbnail.png
if [ -f "${WXRX_WEB_PUBDIR}/${dest}" ]; then
logdebug "thumbnail already exists: %s" "${WXRX_WEB_PUBDIR}/${dest}"
echo $dest
return 0
fi
local file=$(grep 'MCIR' ${manifest} | head -n 1)
if [ -z "${file}" ]; then
local file=$(grep 'therm' ${manifest} | head -n 2)
fi
if [ -z "${file}" ]; then
local file=$(grep 'png' ${manifest} | head -n 2)
fi
convert ${manifestdir}/${file} -colors 256 -thumbnail 500x500^ -gravity center -extent 500x500 ${WXRX_WEB_PUBDIR}/${dest}
echo $dest
} }
# Generates a website by inspecting the directory tree at '.' # Generates a website by inspecting the directory tree at '.'
@ -67,7 +86,6 @@ function generate_manifest_thumbnail() {
# @param path to data (manifests will be searched from this tree) # @param path to data (manifests will be searched from this tree)
# @side-effect generates files in WXRX_WEB_PUBDIR # @side-effect generates files in WXRX_WEB_PUBDIR
# @output tab delimited: timestamp, html, thumbnail # @output tab delimited: timestamp, html, thumbnail
# TODO: avoid regenerating pages
function generate_pages() { function generate_pages() {
local data_dir=${1:-.} local data_dir=${1:-.}
for manifest in $(find_valid_manifest_files "${data_dir}") for manifest in $(find_valid_manifest_files "${data_dir}")
@ -80,8 +98,11 @@ function generate_pages() {
html_src=$(echo "${html_src}" | sed 's/^\.\///') html_src=$(echo "${html_src}" | sed 's/^\.\///')
html_path="${WXRX_WEB_PUBDIR}/${html_src}" html_path="${WXRX_WEB_PUBDIR}/${html_src}"
files=$(publish_manifest "${manifest}" "${relpath}") files=$(publish_manifest "${manifest}" "${relpath}")
thumbnail_src="${relpath}/$(echo "$files" | head -n2 | tail -n1)" thumbnail_src=$(generate_manifest_thumbnail ${manifest} "${relpath}")
thumbnail_src=$(echo "${thumbnail_src}" | sed 's/^\.\///') if [ -z "${thumbnail_src}" ]; then
logerr "Error generating thumbnail for %s" "${manifest}"
continue
fi
if file_is_newer "${manifest}" "${html_path}"; then if file_is_newer "${manifest}" "${html_path}"; then
mkdir -p "$(dirname ${html_path})" mkdir -p "$(dirname ${html_path})"
render_page ${files} >"${html_path}" render_page ${files} >"${html_path}"