Blame


1 b35d34ae 2022-12-28 op #!/bin/sh
2 b35d34ae 2022-12-28 op # news - less(1) around mshow for my rss feeds
3 b35d34ae 2022-12-28 op
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
7 b35d34ae 2022-12-28 op
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
11 b35d34ae 2022-12-28 op exit $?
12 b35d34ae 2022-12-28 op fi
13 b35d34ae 2022-12-28 op
14 b35d34ae 2022-12-28 op mseq -C "$2"
15 b35d34ae 2022-12-28 op
16 b35d34ae 2022-12-28 op total=$(mscan -n -- -1)
17 b35d34ae 2022-12-28 op case $2 in
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
25 b35d34ae 2022-12-28 op echo
26 b35d34ae 2022-12-28 op
27 b35d34ae 2022-12-28 op if ! [ -f "$(mseq -r "$2")" ]; then
28 b35d34ae 2022-12-28 op mseq "$2"
29 b35d34ae 2022-12-28 op exit
30 b35d34ae 2022-12-28 op fi
31 b35d34ae 2022-12-28 op
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"
35 b35d34ae 2022-12-28 op else
36 b35d34ae 2022-12-28 op mshow "$2"
37 b35d34ae 2022-12-28 op fi | mcolor
38 b35d34ae 2022-12-28 op else
39 b35d34ae 2022-12-28 op mseq -r "$2"
40 b35d34ae 2022-12-28 op echo
41 b35d34ae 2022-12-28 op cat "$(mseq -r "$2")"
42 b35d34ae 2022-12-28 op fi
43 b35d34ae 2022-12-28 op exit $?
44 b35d34ae 2022-12-28 op fi
45 b35d34ae 2022-12-28 op
46 b35d34ae 2022-12-28 op if [ "$#" -eq 0 ] && ! [ -t 0 ]; then
47 b35d34ae 2022-12-28 op mseq -S >/dev/null
48 b35d34ae 2022-12-28 op set -- :
49 b35d34ae 2022-12-28 op fi
50 b35d34ae 2022-12-28 op
51 b35d34ae 2022-12-28 op if ! [ -t 1 ]; then
52 b35d34ae 2022-12-28 op exec mseq :
53 b35d34ae 2022-12-28 op fi
54 b35d34ae 2022-12-28 op
55 b35d34ae 2022-12-28 op [ "$#" -eq 1 ] && set -- ${1:-.}
56 b35d34ae 2022-12-28 op
57 b35d34ae 2022-12-28 op if [ "$#" -ge 1 ]; then
58 b35d34ae 2022-12-28 op mseq -C "$1"
59 b35d34ae 2022-12-28 op fi
60 b35d34ae 2022-12-28 op
61 b35d34ae 2022-12-28 op nl="
62 b35d34ae 2022-12-28 op "
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"
77 b35d34ae 2022-12-28 op fi
78 b35d34ae 2022-12-28 op
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
81 b35d34ae 2022-12-28 op
82 b35d34ae 2022-12-28 op while :; do
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 :)
86 b35d34ae 2022-12-28 op case "$?" in
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
90 b35d34ae 2022-12-28 op ;;
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"
93 b35d34ae 2022-12-28 op ;;
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"
98 b35d34ae 2022-12-28 op fi
99 b35d34ae 2022-12-28 op ;;
100 b35d34ae 2022-12-28 op 107) # k next thread
101 b35d34ae 2022-12-28 op mseq -C "$(mseq .+1: | sed -n '/^[^ <]/{p;q;}')"
102 b35d34ae 2022-12-28 op ;;
103 b35d34ae 2022-12-28 op 100) # d mark read
104 b35d34ae 2022-12-28 op mflag -S .
105 b35d34ae 2022-12-28 op mseq -f : | mseq -S
106 b35d34ae 2022-12-28 op mseq -C +
107 b35d34ae 2022-12-28 op ;;
108 b35d34ae 2022-12-28 op 82) # R toggle raw mode
109 b35d34ae 2022-12-28 op MLESS_RAW=$((1-$MLESS_RAW))
110 b35d34ae 2022-12-28 op ;;
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 -
114 b35d34ae 2022-12-28 op ;;
115 b35d34ae 2022-12-28 op 94) # ^ goto parent
116 b35d34ae 2022-12-28 op mseq -C '.^' 2>/dev/null
117 b35d34ae 2022-12-28 op ;;
118 b35d34ae 2022-12-28 op esac
119 b35d34ae 2022-12-28 op done