nsbin/get_news

50 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
#
# Nico Schottelius <nico@schottelius.(net|org)>
# Date: 25-May-2004
# Last Modified: 27-May-2004
# Get only the latest headlines from different news sites
# Version: 0.3
#
BASE_DIR=~/.get_news
TMP=/tmp/$$-$UID-`date +%s`
if [ $# -ne 1 ]; then
echo "Go away. I want one argument."
exit 666
fi
USERFILE="$BASE_DIR/$1"
case "$1" in
heise)
RDF=http://www.heise.de/newsticker/heise.rdf
BEGIN_NEWS='<title>'
END_NEWS='<\/title>'
NEWS_NAME="heise online news"
;;
pro-linux)
RDF=http://www.pl-forum.de/backend/pro-linux.rdf
BEGIN_NEWS='<title>'
END_NEWS='<\/title>'
NEWS_NAME="Pro-Linux News"
;;
*)
"Go away. I don't know anything about $1."
exit 23
esac
# get
curl -s "$RDF" | grep "$BEGIN_NEWS" | grep -v "$NEWS_NAME" | sed -e "s/$BEGIN_NEWS//g" -e "s/$END_NEWS//g" > "$TMP"
[ -d "$BASE_DIR" ] || mkdir -p "$BASE_DIR"
if [ ! -f "$USERFILE" ]; then
cat "$TMP"
else
diff -u "$USERFILE" "$TMP" | grep ^+ | grep -v ^+++ 2>/dev/null | sed 's/^+//g'
fi
mv -f "$TMP" "$USERFILE" || rm -f "$TMP"