aboutsummaryrefslogtreecommitdiff
path: root/blogrss
blob: 59f8f3f920c80eb44124fb2faa029011769c6bb9 (plain) (blame)
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
#!/bin/bash

title=Bloggings
link=https://wittamore.com/articles/2025
description='Ramblings from Brittany, France'
rsslink=https://wittamore.com/rss.xml
feedname=/home/philip/web/rss.xml
postDir=/home/philip/web/articles/2025
updated=$(date --iso-8601=ns)

# correct file date to match blog post date
#cd $postDir
#postArray=( $(ls *.html) )
#for posts in "${postArray[@]}"; do
#  post=$posts
#  postdate=$(grep -o '>.*</h5>' $post | sed 's/\(>\|<\/h5>\)//g')
#  #[[CC]YY]MMDDhhmm[.ss]
#  postdate="${postdate//-}0000"
#  echo Date=$postdate  
#  echo Item=$post
#  touch -a -m -t $postdate $post
#done

# Build RSS header & footer
header () {
echo """<?xml version='1.0' encoding='UTF-8' ?>
<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'>
""" > ~/feedtop
echo """
<channel>
<title>Bloggings - wittamore.com</title>
<link>https://wittamore.com</link>
<description>Ramblings from Brittany, France</description>
<lastBuildDate>$updated</lastBuildDate>
<atom:link href='$rsslink' rel='self' type='application/rss+xml' />
""" >> ~/feedtop
}

footer () {
echo """
</channel>

</rss>
""" >> ~/feedbottom
}

# Function: Build Item add to feed

item () {
        echo """<item>
        <title>$fullTitle</title>
        <pubDate>$postdate</pubDate>
        <link>$linkadd</link>
        <guid>$linkadd</guid>
        <category> </category>
        <description>$description</description>
        <enclosure> </enclosure>
        </item>
        """ >> ~/feed
}

# Function: Concatenate everything

combine () {
        header
        footer
        cat ~/feedtop ~/feed > ~/feedtb
        cat ~/feedtb ~/feedbottom > $feedname
        rm ~/feedtop ~/feed ~/feedtb ~/feedbottom
}

# Run through files and create rss.xml

if [[ -f $feedname ]]; then
  rm $feedname
fi
touch $feedname
postArray=( $(ls -t "$postDir"/*.html) )
numPosts=$(ls "$postDir"/*.html | wc -l)
postNum=0
for posts in "${postArray[@]}"; do
  let postNum+=1
  post=$posts
  fullTitle=$(grep -o '>.*</h2>' $post | sed 's/\(>\|<\/h2>\)//g')
  postdate=$(grep -o '>.*</h5>' $post | sed 's/\(>\|<\/h5>\)//g')
  postname=${post##*/}
  linkadd="$link"/"$postname"
  guid=$postNum
  description=$(sed -n '/<h4>.*/,/*.<\/h4>/{p;q;}' $post | sed -e 's/<[^>]\+>/ /g' -e 's|<h4>||g' -e 's|</h4>||g' -e 's|"||g')
  item $post
done
  combine
exit