add rssread
This commit is contained in:
parent
6e9bf63a19
commit
aed7a3d52a
24
Makefile
Normal file
24
Makefile
Normal file
|
@ -0,0 +1,24 @@
|
|||
SHELL = /bin/sh
|
||||
NAME = rssread
|
||||
VER = 0.1
|
||||
|
||||
include options.mk
|
||||
|
||||
help:
|
||||
@echo "make install Install ${NAME}."
|
||||
@echo "make uninstall Uninstall ${NAME}."
|
||||
|
||||
install:
|
||||
cp ${NAME} ${PREFIX}${DESTDIR}/bin
|
||||
chmod +x ${PREFIX}${DESTDIR}/bin/${NAME}
|
||||
|
||||
uninstall:
|
||||
rm -rf ~/.config/${NAME}
|
||||
rm -f ${PREFIX}${DESTDIR}/bin/${NAME}
|
||||
|
||||
dist:
|
||||
mkdir -p ${NAME}-${VER}
|
||||
cp ${NAME} LICENSE Makefile ${NAME}-${VER}
|
||||
tar -cf ${NAME}-${VER}.tar ${NAME}-${VER}
|
||||
gzip ${NAME}-${VER}.tar
|
||||
rm -rf ${NAME}-${VER}.tar ${NAME}-${VER}
|
2
options.mk
Normal file
2
options.mk
Normal file
|
@ -0,0 +1,2 @@
|
|||
VER = 1.2
|
||||
DESTDIR = "/usr"
|
66
rssread
Executable file
66
rssread
Executable file
|
@ -0,0 +1,66 @@
|
|||
#!/bin/sh
|
||||
# sfeed manager in less than 70 lines
|
||||
# license: gplv3
|
||||
# https://codeberg.org/speedie/rssread
|
||||
mkdir -p "$HOME/.sfeed/feeds"
|
||||
[ -z "$AUTOREFRESH" ] && export AUTOREFRESH=false
|
||||
[ -z "$QUIET" ] && export QUIET=false
|
||||
[ ! -e "$HOME/.sfeed/sfeedrc" ] || [ ! "$(grep "http" "$HOME/.sfeed/sfeedrc" | wc -l)" -gt 0 ] && cat << EOF > "$HOME/.sfeed/sfeedrc"
|
||||
feeds() {
|
||||
# feed <name> <feedurl> [basesiteurl] [encoding]
|
||||
feed 'speedie is the best' 'https://speedie.gq/rss.xml'
|
||||
}
|
||||
EOF
|
||||
|
||||
updatefeeds() {
|
||||
rm -rf "$HOME/.sfeed/feeds"; sfeed_update > /dev/null; return
|
||||
}
|
||||
|
||||
clearfeeds() {
|
||||
[ $FILE = feeds ] && rm -rf "$HOME/.sfeed/feeds" || rm -rf "$HOME/.sfeed/sfeedrc"
|
||||
[ "$QUIET" = "true" ] || [ "$FILE" = "feeds" ] && printf "Successfully cleared feeds.\n" || printf "Successfully cleared sfeedrc.\n"
|
||||
}
|
||||
|
||||
listfeeds() {
|
||||
[ -z "$2" ] && grep "http" "$HOME/.sfeed/sfeedrc" || grep -E "http|$2" "$HOME/.sfeed/sfeedrc"
|
||||
}
|
||||
|
||||
addfeed() {
|
||||
[ -n "$4" ] && printf "Too many arguments specified.\n" && exit 1 || [ -z "$2" ] && printf "You must specify a name.\n" && exit || [ -z "$3" ] && printf "You must specify a URL.\n" && exit 1
|
||||
cp "$HOME/.sfeed/sfeedrc" "$HOME/.sfeed/sfeedrc.orig" && OFILE="$(head -n -1 "$HOME/.sfeed/sfeedrc")" && printf "%s\n" "$OFILE" > "$HOME/.sfeed/sfeedrc" # we have to do it like this because of the way head works
|
||||
printf "\n feed '%s' '%s'" "$2" "$3" | grep "http" >> "$HOME/.sfeed/sfeedrc" && printf "}\n" >> "$HOME/.sfeed/sfeedrc" # URL is $3, feed name is $2
|
||||
[ "$QUIET" = "true" ] || printf "Feed named '%s' (%s) added to list of feeds.\n" "$2" "$3"
|
||||
}
|
||||
|
||||
removefeed() {
|
||||
[ -n "$3" ] && printf "Too many arguments specified.\n" && exit 1
|
||||
cp "$HOME/.sfeed/sfeedrc" "$HOME/.sfeed/sfeedrc.orig"
|
||||
grep -v "$2" "$HOME/.sfeed/sfeedrc" > "$HOME/.sfeed/sfeedrc.mod" && mv "$HOME/.sfeed/sfeedrc.mod" "$HOME/.sfeed/sfeedrc" && rm -f "$HOME/.sfeed/feeds/*$3*"
|
||||
}
|
||||
|
||||
help() {
|
||||
echo "rssread - simple script for sfeed." && echo
|
||||
echo "--add <name> <url> Add <url> to your list of feeds."
|
||||
echo "--remove <keyword> Remove <keyword> from your list of feeds."
|
||||
echo "--list List all feeds. Optionally add <keyword> to list matching feeds."
|
||||
echo "--import-newsboat Import newsboat urls."
|
||||
echo "--update Sync feeds."
|
||||
echo "--clear Clear feeds."
|
||||
echo "--clear-sfeedrc Clear sfeedrc."
|
||||
echo "--help View this help." && echo
|
||||
echo "You can export variable AUTOREFRESH=true to automatically sync feeds, QUIET=true to silence all status messages and READER to choose a reader." && exit 0 || exit 1
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"--add") addfeed "$@" ; exit 0 ;;
|
||||
"--remove") removefeed "$@" ; exit 0 ;;
|
||||
"--list") listfeeds "$@" ; exit 0 ;;
|
||||
"--import-newsboat") newsboat -e | sfeed_opml_import > "$HOME/.sfeed/sfeedrc" ; exit 0 ;;
|
||||
"--update") updatefeeds ; exit 0 ;;
|
||||
"--clear") FILE=feeds && clearfeeds ; exit 0 ;;
|
||||
"--clear-sfeedrc") FILE=rc && clearfeeds ; exit 0 ;;
|
||||
"--help") help ; exit 0 ;; esac
|
||||
|
||||
[ -n "$1" ] && printf "Unknown argument, '%s'. Run --help for a list of valid arguments.\n" "$1" && exit 1
|
||||
[ "$AUTOREFRESH" != "false" ] || [ "$(basename "$(find "$HOME/.sfeed/feeds" | wc -l)")" -lt "1" ] && updatefeeds
|
||||
export SFEED_PIPER="$([ -z "$READER" ] && echo "sfeed_content" || echo "$READER")" && command -v sfeed_curses > /dev/null && sfeed_curses ~/.sfeed/feeds/* && exit 1
|
Loading…
Reference in a new issue