49 lines
1.1 KiB
Bash
Executable file
49 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"
|