ref: 36c2bc3e210fc11e1b7aa15db04f84db7ddc7016
author: sirjofri <sirjofri@sirjofri.de>
date: Tue Feb 9 03:51:35 EST 2021
adds generator
--- /dev/null
+++ b/mkfile
@@ -1,0 +1,8 @@
+all:VQ:
+ echo usage: mk install
+
+install:VQ: /rc/bin/news2atom
+
+/rc/bin/news2atom: news2atom
+ cp news2atom $target
+ chmod +x $target
--- /dev/null
+++ b/news2atom
@@ -1,0 +1,64 @@
+#!/bin/rc
+#
+# news2atom converter
+#
+# place files named: yyyy-mm-dd-name
+# the owner of the file is the author of the article,
+# the last modified date the <updated> value.
+#
+# sample entry:
+#
+# First Line: Title Of Post
+#
+# First paragraph contains the summary of
+# the whole entry.
+#
+# The rest of the file is full text.
+#
+#
+# usage: news2atom -d domain -u selfurl -t title [ -n newspath ]
+
+rfork e
+
+flagfmt='d:domain domain, u:self selfurl, n:newspath newspath, t:title title'
+if(! ifs=() eval `{aux/getflags $*} || ~ $#* 0){
+ echo 'usage: news2atom -d domain -u selfurl -t title [ -n newspath ]' >[1=2]
+ exit usage
+}
+
+~ $#title 0 && { echo missing arg: title; exit usage }
+~ $#self 0 && { echo missing arg: selfurl; exit usage }
+~ $#newspath 0 && newspath=/lib/news
+
+mdate=`{date -ut}
+nl='
+'
+
+echo '<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+<title>'$title'</title>
+<updated>'$mdate'</updated>'
+echo '<id>http://'$"domain'/</id>'
+echo '<link rel="self" href="'$"self'"/>'
+
+for(f in `{ls -t $newspath}){
+ fname=`{basename $f}
+ author=`{ls -l $f}
+ author=$author(4)
+ mt=`{mtime $f}
+ pdate=`{echo $fname | sed 's/^([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9])-.*$/\1/'}
+ mdate=`{date -ut $mt(1)}
+ summary=`{sed -n '3,/^$/p' $f}
+ fulltext=`' '{sed '1,2d;3,/^$/d' $f | sed 's/^$/<\/p><p>/g'}
+ taguri=`{echo 'tag:'$domain','$pdate':'$fname}
+ title=`{sed 1q $f}
+ echo '<entry>
+ <title>'$"title'</title>
+ <author><name>'$"author'</name></author>
+ <updated>'$"mdate'</updated>
+ <summary>'$"summary'</summary>
+ <id>'$"taguri'</id>
+ <content type="html"><![CDATA[<p><b>'$"summary'</b></p><p>'$"fulltext'</p>]]></content>
+</entry>'
+}
+echo '</feed>'