From c5bcb1c11a6ea9f091cc42b0eaa2fd319c6a374a Mon Sep 17 00:00:00 2001 From: keyboardan Date: Wed, 2 Jul 2025 19:38:35 +0100 Subject: init --- tilde-news-feed.sh | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100755 tilde-news-feed.sh diff --git a/tilde-news-feed.sh b/tilde-news-feed.sh new file mode 100755 index 0000000..b70fd6c --- /dev/null +++ b/tilde-news-feed.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +# variables +NEWS=/usr/share/nginx/html/news.json +#NEWS=./news.json +update=$(date -u '+%FT%H:%M:%S%:z') + +# functions +is-it() { + name="${1}" + [ "${name}" != "null" -a ! -z "${name}" ] +} + +get-it() { + value="$(printf "${item}" | jq -r ".${1}")" + is-it "${value}" && eval ${1}=\"${value}\" +} + +atom_header() +{ + cat < + + Tilde Computer Club News + + + http://tilde.club/ + + tilde.club's News + + ${update} +EOF +} + +atom_footer() +{ + cat < +EOF +} + +make_feed() +{ + atom_header + + jq -c '.[]' "${NEWS}" | while read item; do + + get-it "date" + get-it "title" + get-it "heading" + get-it "content" + get-it "note" + get-it "additional_content" + + # required + + element_content_text="# ${title}\n" + is-it "${heading}" && element_content_text+="## ${heading}\n" + element_content_text+="\n${content}" + + # optional + + details="$(printf "${item}" | jq -r ".details")" + #echo "!!!!!${details}!!!!" + if is-it "${details}" + then + element_content_text+="\n\n## Details:" + element_content_text+="\n$(printf "${details}" | jq -r '.[]' | sed 's/^/ \* /g')" + fi + is-it "${note}" && element_content_text+="\n\n${note}" + is-it "${additional_content}" && element_content_text+="\n\n## In addition:\n${additional_content}" + + element_content_text+="\n" + + id_title=${title// /_} + id_title=${id_title//:/} + + + cat < + ${title} + ${date}T00:00:00+00:00 + tag:tilde.club,${date}:${id_title} + + +$(printf "${element_content_text}" | sed 's/\&/\&/g; s//\>/g; s/\"/\"/g' | sed "s/'/\'/g;") + + +EOF + + unset date title heading content details note additional_content element_content_text + + done + + atom_footer +} + +make_feed + +# # https://taguri.org/ +# tag_uri="tag:${domain},${date}:${uniq_string}" -- cgit