mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2026-03-20 01:37:45 +01:00
additionally extract from xml files
Before this, rssadd only accepted a URL as argument. Now, if given an xml file, it will parse it and extract the proper url. This lets it be used in conjunction with firefox for quickly adding RSS feeds (as firefox would give it the file rather than its origin URL). This works on a majority of RSS feeds, but fails on some that miss the proper link tags. The original behaviour is still mantained alongside the new.
This commit is contained in:
parent
09ba3e53f6
commit
738e3ce275
@ -1,10 +1,20 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
! echo "$1" | grep "https*://\S\+\.[A-Za-z]\+\S*" >/dev/null &&
|
if echo "$1" | grep "https*://\S\+\.[A-Za-z]\+\S*" >/dev/null; then
|
||||||
notify-send "That doesn't look like a full URL." && exit
|
url="$1"
|
||||||
|
else
|
||||||
|
url="$(grep 'rel="self"' "$1" |
|
||||||
|
grep xml |
|
||||||
|
sed -E 's_^.*href="(https?://[^"]+)".*$_\1_')"
|
||||||
|
|
||||||
|
! grep "https*://\S\+\.[A-Za-z]\+\S*" <<<"$url" &&
|
||||||
|
notify-send "That doesn't look like a full URL." && exit
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
RSSFILE="${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls"
|
RSSFILE="${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls"
|
||||||
if awk '{print $1}' "$RSSFILE" | grep "^$1$" >/dev/null; then
|
if awk '{print $1}' "$RSSFILE" | grep "^$url$" >/dev/null; then
|
||||||
notify-send "You already have this RSS feed."
|
notify-send "You already have this RSS feed."
|
||||||
else
|
else
|
||||||
echo "$1" >> "$RSSFILE" && notify-send "RSS feed added."
|
echo "$url" >> "$RSSFILE" && notify-send "RSS feed added."
|
||||||
fi
|
fi
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user