2 b35d34ae 2022-12-28 op # news - less(1) around mshow for my rss feeds
4 b35d34ae 2022-12-28 op # use a custom mblaze env
5 b35d34ae 2022-12-28 op mkdir -p ~/.mblaze/news
6 b35d34ae 2022-12-28 op export MBLAZE=~/.mblaze/news
8 b35d34ae 2022-12-28 op if [ "$1" = --filter ]; then
9 b35d34ae 2022-12-28 op if [ "$2" = //scan ]; then
10 b35d34ae 2022-12-28 op mscan : 2>/dev/null
16 b35d34ae 2022-12-28 op total=$(mscan -n -- -1)
18 b35d34ae 2022-12-28 op 1) mscan .-0:.+5 ;;
19 b35d34ae 2022-12-28 op 2) mscan .-1:.+4 ;;
20 b35d34ae 2022-12-28 op $((total - 2))) mscan .-3:.+2 ;;
21 b35d34ae 2022-12-28 op $((total - 1))) mscan .-4:.+1 ;;
22 b35d34ae 2022-12-28 op $total) mscan .-5:.+0 ;;
23 b35d34ae 2022-12-28 op *) mscan .-2:.+3 ;;
24 b35d34ae 2022-12-28 op esac 2>/dev/null
27 b35d34ae 2022-12-28 op if ! [ -f "$(mseq -r "$2")" ]; then
32 b35d34ae 2022-12-28 op if [ $MLESS_RAW -eq 0 ]; then
33 b35d34ae 2022-12-28 op if [ $MLESS_HTML -eq 1 ]; then
34 b35d34ae 2022-12-28 op mshow -A text/html "$2"
41 b35d34ae 2022-12-28 op cat "$(mseq -r "$2")"
46 b35d34ae 2022-12-28 op if [ "$#" -eq 0 ] && ! [ -t 0 ]; then
47 b35d34ae 2022-12-28 op mseq -S >/dev/null
51 b35d34ae 2022-12-28 op if ! [ -t 1 ]; then
55 b35d34ae 2022-12-28 op [ "$#" -eq 1 ] && set -- ${1:-.}
57 b35d34ae 2022-12-28 op if [ "$#" -ge 1 ]; then
63 b35d34ae 2022-12-28 op export MLESS_RAW=0
64 b35d34ae 2022-12-28 op export MLESS_HTML=0
65 b35d34ae 2022-12-28 op if [ -f "$MBLAZE/mlesskey" ]; then
66 b35d34ae 2022-12-28 op export LESSKEYIN="$MBLAZE/mlesskey"
67 b35d34ae 2022-12-28 op elif [ -f "$HOME/.mblaze/mlesskey" ]; then
68 b35d34ae 2022-12-28 op export LESSKEYIN="$HOME/.mblaze/mlesskey"
69 b35d34ae 2022-12-28 op elif [ -f "$HOME/.mlesskey" ]; then
70 b35d34ae 2022-12-28 op export LESSKEYIN="$HOME/.mlesskey"
71 b35d34ae 2022-12-28 op elif [ -f "$MBLAZE/mless" ]; then
72 b35d34ae 2022-12-28 op export LESSKEY="$MBLAZE/mless"
73 b35d34ae 2022-12-28 op elif [ -f "$HOME/.mblaze/mless" ]; then
74 b35d34ae 2022-12-28 op export LESSKEY="$HOME/.mblaze/mless"
75 b35d34ae 2022-12-28 op elif [ -f "$HOME/.mless" ]; then
76 b35d34ae 2022-12-28 op export LESSKEY="$HOME/.mless"
79 b35d34ae 2022-12-28 op MAILFEEDS_DIR="${MAILFEEDS_DIR:-$HOME/Maildir/op/rss}"
80 b35d34ae 2022-12-28 op mlist -st "$MAILFEEDS_DIR" | mthread -r | mseq -S
83 b35d34ae 2022-12-28 op LESSOPEN="|$0 --filter %s" \
84 b35d34ae 2022-12-28 op less -Ps"mless %f?m (message %i of %m).." -R \
85 b35d34ae 2022-12-28 op "+:e $(mscan -n .)$nl" //scan $(mscan -n :)
87 b35d34ae 2022-12-28 op 0|1) exit $?;;
88 b35d34ae 2022-12-28 op 36) # $ goto end
89 b35d34ae 2022-12-28 op mseq -C '$' 2>/dev/null
91 b35d34ae 2022-12-28 op 78) # N go to next unseen message
92 b35d34ae 2022-12-28 op nu=$(magrep -v -m1 :S .:) && mseq -C "$nu"
94 b35d34ae 2022-12-28 op 79) # O open the news
95 b35d34ae 2022-12-28 op url="$(mhdr -h X-Rssgo-Email)"
96 b35d34ae 2022-12-28 op if [ $? -eq 0 -a -n "$url" ]; then
97 b35d34ae 2022-12-28 op xdg-open "$url"
100 b35d34ae 2022-12-28 op 107) # k next thread
101 b35d34ae 2022-12-28 op mseq -C "$(mseq .+1: | sed -n '/^[^ <]/{p;q;}')"
103 b35d34ae 2022-12-28 op 100) # d mark read
105 b35d34ae 2022-12-28 op mseq -f : | mseq -S
108 b35d34ae 2022-12-28 op 82) # R toggle raw mode
109 b35d34ae 2022-12-28 op MLESS_RAW=$((1-$MLESS_RAW))
111 b35d34ae 2022-12-28 op 72) # H read with w3m
112 b35d34ae 2022-12-28 op #MLESS_HTML=$((1-$MLESS_HTML))
113 b35d34ae 2022-12-28 op mshow -Nh '' | w3m -T text/html -
115 b35d34ae 2022-12-28 op 94) # ^ goto parent
116 b35d34ae 2022-12-28 op mseq -C '.^' 2>/dev/null