blob: b70fd6c1eb949a5c211de188cecff5399416b169 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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 <<EOF
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Tilde Computer Club News</title>
<link rel="self" href="http://tilde.club/~keyboardan/tilde-club-news/feed.xml"/>
<link rel="alternate" href="http://tilde.club/~keyboardan/tilde-club-news/feed.xml"/>
<id>http://tilde.club/</id>
<author>
<name>tilde.club's News</name>
</author>
<updated>${update}</updated>
EOF
}
atom_footer()
{
cat <<EOF
</feed>
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 <<EOF
<entry>
<title>${title}</title>
<updated>${date}T00:00:00+00:00</updated>
<id>tag:tilde.club,${date}:${id_title}</id>
<link rel="alternate" href="http://tilde.club/"/>
<content type="text">
$(printf "${element_content_text}" | sed 's/\&/\&/g; s/</\</g; s/>/\>/g; s/\"/\"/g' | sed "s/'/\'/g;")
</content>
</entry>
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}"
|