aboutsummaryrefslogtreecommitdiff
path: root/.local/bin/sfeed_fzf
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/sfeed_fzf')
-rwxr-xr-x.local/bin/sfeed_fzf24
1 files changed, 24 insertions, 0 deletions
diff --git a/.local/bin/sfeed_fzf b/.local/bin/sfeed_fzf
new file mode 100755
index 0000000..5c432b8
--- /dev/null
+++ b/.local/bin/sfeed_fzf
@@ -0,0 +1,24 @@
+#!/bin/sh -eu
+
+config=$XDG_CONFIG_HOME/sfeed/sfeedrc
+unread=$XDG_CONFIG_HOME/sfeed/unread
+read=$XDG_CONFIG_HOME/sfeed/read
+feeds=$XDG_CONFIG_HOME/sfeed/feeds
+
+touch "$read"
+
+sfeed_update "$config" || true
+
+sfeed_plain_function() {
+ sfeed_plain "$feeds"/* |
+ sed 's/^[N ]\+//g' |
+ sort --reverse |
+ grep --invert-match --fixed-strings --file "$read" > "$unread"
+}
+
+sfeed_plain_function
+fzf < "$unread" \
+ --multi \
+ --info hidden \
+ --bind "enter:execute(firefox \$(echo {} | awk '{ print \$NF }'))" \
+ --bind "ctrl-d:reload(echo {} >> $read && { sfeed_plain $feeds/* | sed 's/^[N ]\+//g' | sort --reverse | grep --invert-match --fixed-strings --file $read > $unread && cat $unread; })"