diff options
author | Philip Wittamore <philip@wittamore.com> | 2025-09-26 09:21:44 +0200 |
---|---|---|
committer | Philip Wittamore <philip@wittamore.com> | 2025-09-26 09:21:44 +0200 |
commit | 1eb8c4e7d504b37cd93708074430441beb60852f (patch) | |
tree | 453ac64438feffd90252df55975c6af10368b54d | |
parent | efb7f14986de782f5bb6d6391589e1bfeaf9f46c (diff) | |
download | scripts-1eb8c4e7d504b37cd93708074430441beb60852f.tar.gz scripts-1eb8c4e7d504b37cd93708074430441beb60852f.tar.bz2 scripts-1eb8c4e7d504b37cd93708074430441beb60852f.zip |
update
-rwxr-xr-x | phlogrss | 75 | ||||
-rwxr-xr-x | phlogthis | 13 |
2 files changed, 45 insertions, 43 deletions
@@ -5,36 +5,36 @@ phloglink="gopher://spike.nagatha.fr/0/phlog" description="Phil's Phlog" rsslink=gopher://spike.nagatha.fr/phlog/rss.xml -feedname=$HOME/src/gopher/phlog/rss.xml -postDir=$HOME/src/gopher/phlog -updated=$(date --iso-8601=ns) +filename=$HOME/src/gopher/phlog/rss.xml +postdir=$HOME/src/gopher/phlog +builddate=$(date --iso-8601=ns) +buildyear=$(date +%Y) # Build RSS header & footer -header () { +build_header () { echo "<?xml version='1.0' encoding='UTF-8' ?> -<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'>" > ~/feedtop -echo " -<channel> +<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'>" > ~/header +echo "<channel> <title>Phil's Phlog</title> -<link>gopher://spike.nagatha.fr</link> -<description>A Gopher phlog from Brittany, France</description> -<lastBuildDate>$updated</lastBuildDate> +<link>gopher://spike.nagatha.fr/1/phlog</link> <atom:link href='$rsslink' rel='self' type='application/rss+xml' /> -" >> ~/feedtop +<language>en-us</language> +<copyright>© $buildyear Philip A. Wittamore - All Rights Reserved</copyright> +<lastBuildDate>$builddate</lastBuildDate> +<description>A Gopher phlog from Brittany, France</description> +" >> ~/header } -footer () { +build_footer () { echo " </channel> </rss> -" >> ~/feedbottom +" >> ~/footer } -# Function: Build Item add to feed - -item () { +build_item () { echo "<item> - <title>$fullTitle</title> + <title>$title</title> <pubDate>$postdate</pubDate> <link>$linkadd</link> <guid>$linkadd</guid> @@ -42,34 +42,37 @@ item () { </item>" >> ~/feed } -# Function: Concatenate everything - -combine () { - header - footer - cat ~/feedtop ~/feed > ~/feedtb - cat ~/feedtb ~/feedbottom > $feedname - rm ~/feedtop ~/feed ~/feedtb ~/feedbottom +build_xml_file () { + build_header + build_footer + cat ~/header ~/feed > ~/rss_tmp + cat ~/rss_tmp ~/footer > "$filename" + rm ~/header ~/feed ~/rss_tmp ~/footer } -# Run through files and create rss.xml +# list files and create rss.xml -if [[ -f $feedname ]]; then - rm $feedname +if [[ -f $filename ]]; then + rm "$filename" fi -touch $feedname -mapfile -t postArray < <(ls -t "$postDir"/*.txt) + +touch "$filename" +mapfile -t post_array < <(ls -t "$postdir"/*.txt) postNum=0 -for posts in "${postArray[@]}"; do + +for posts in "${post_array[@]}"; do ((postNum+=1)) post=$posts - fullTitle=$(head -n1 "$post" | sed 's/title://g') - postdate=$(cat $post | sed -n '2p' | sed 's/date://g') + title=$(head -n1 "$post" | sed 's/title://g') + postdate=$(cat "$post" | sed -n '2p' | sed 's/date://g') postname=${post##*/} linkadd="$phloglink/$postname" - description="$(cat $post | sed -n "/^$/,/^$/p" | head --lines 3) …" - item "$post" + description="$(cat "$post" | sed -n "/^$/,/^$/p" | head --lines 3) …" + build_item "$post" done - combine + + # put it all together + build_xml_file + exit @@ -1,8 +1,7 @@ #!/bin/bash # create phlog entry, rebuild gophermap -# requires par for text formatting - +# requires the text formating utility 'par' root=$HOME/src/gopher/phlog @@ -22,17 +21,18 @@ dest="$root/$article" micro +4:1 "$editfile" -# article -cat "$editfile" | par -jw67 >> "$article" +# Justify article. This may fail if a +# non-empty line doesn't contain spaces +cat "$editfile" | par -jw67 > $article -header="title:$title\ndate:$articledate\n\n" +header="title:$title\ndate:$articledate\n$(printf '%*s' 66 | tr ' ' '-')\n\n" sed -i "1s/^/$header/" $article mv "$article" "$dest" rm $editfile echo "Article saved as $dest" -# create gophermap +# build gophermap cd $root @@ -43,7 +43,6 @@ echo "" >> gophermap echo "0[Rss feed] /phlog/rss.xml spike.nagatha.fr 70" >> gophermap echo "" >> gophermap - files=($(ls -1r *.txt)) for file in "${files[@]}"; do echo -e "0$(head -n 1 $file | sed s/title://g)\t/phlog/$file\tspike.nagatha.fr\t70" >> gophermap |