mrss.sh: add fzf option

This commit is contained in:
dogeystamp 2023-03-05 11:09:28 -05:00
parent 46463cea95
commit 59c6f89662
Signed by: dogeystamp
GPG Key ID: 7225FE3592EFFA38

View File

@ -5,9 +5,6 @@ set -e
scriptname=$0 scriptname=$0
subcmd=$1 subcmd=$1
blue=$(tput setaf 4)
normal=$(tput sgr0)
if [ -z "$MRSS_DIR" ]; then if [ -z "$MRSS_DIR" ]; then
MRSS_DIR="$HOME/rss" MRSS_DIR="$HOME/rss"
fi fi
@ -30,6 +27,7 @@ sub_help() {
echo " select show each new article and prompt for an action;" echo " select show each new article and prompt for an action;"
echo " you can run 'select new/feed' for a specific feed" echo " you can run 'select new/feed' for a specific feed"
echo " or 'select watch-later'." echo " or 'select watch-later'."
echo " fzf select articles to read using fzf"
echo " link print the article link from a .json file" echo " link print the article link from a .json file"
echo " purge purge new/ directory" echo " purge purge new/ directory"
echo echo
@ -106,6 +104,22 @@ sub_read() {
done | list_read done | list_read
} }
sub_preview() {
blue=$(tput setaf 4)
normal=$(tput sgr0)
ARTICLE="$1"
DIRNAME="$(basename $(dirname "$ARTICLE"))"
TITLE="$(cat "$ARTICLE" | jq -r '.title')"
DESC_TRUNC="$(cat "$ARTICLE" | jq -r '.description // ""' | w3m -dump -T text/html | head -n 20)"
printf "\nFeed '%s'\n" "$DIRNAME"
printf "\n%s%s%s\n" "$blue" "$TITLE" "$normal"
printf "\n%s\n" "$DESC_TRUNC"
}
sub_select() { sub_select() {
if [ -z "$1" ]; then if [ -z "$1" ]; then
DIR="$MRSS_NEWDIR" DIR="$MRSS_NEWDIR"
@ -124,16 +138,8 @@ sub_select() {
INDEX=$((INDEX+1)) INDEX=$((INDEX+1))
clear clear
DIRNAME="$(basename $(dirname "$ARTICLE"))"
TITLE="$(cat "$ARTICLE" | jq -r '.title')"
DESC_TRUNC="$(cat "$ARTICLE" | jq -r '.description // ""' | w3m -dump -T text/html | head -n 20)"
printf "\nItem %s/%s\n" "$INDEX" "$TOTAL_COUNT" printf "\nItem %s/%s\n" "$INDEX" "$TOTAL_COUNT"
printf "\nFeed '%s'\n" "$DIRNAME" sub_preview "$ARTICLE"
printf "\n%s%s%s\n" "$blue" "$TITLE" "$normal"
printf "\n%s\n" "$DESC_TRUNC"
printf "\n\n-----------------\n" printf "\n\n-----------------\n"
printf "\nq quit, r read, e queue article, f full summary, d mark read,\n" printf "\nq quit, r read, e queue article, f full summary, d mark read,\n"
@ -177,6 +183,19 @@ sub_select() {
) )
} }
sub_fzf() {
if [ -z "$1" ]; then
DIR="$MRSS_NEWDIR"
else
DIR="$MRSS_DIR/$1"
fi
cd "$DIR"
NEWARTS="$(find . -type l)"
export -f sub_preview
printf "%s" "$NEWARTS" | fzf --disabled --marker='*' --multi --cycle --preview 'bash -c "sub_preview {}"' | \
list_read
}
case $subcmd in case $subcmd in
"" | "--help" | "-h") "" | "--help" | "-h")
sub_help sub_help