summaryrefslogtreecommitdiff
path: root/plugins/rand-quote/rand-quote.plugin.zsh
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2021-12-18 17:46:06 -0600
committerTuowen Zhao <ztuowen@gmail.com>2021-12-18 17:46:06 -0600
commit1bc186dabe12b3d01b2257e82f3a104c48b8b3c7 (patch)
tree54576312318c406b6ce2a35423198fcc92c8bf71 /plugins/rand-quote/rand-quote.plugin.zsh
parent2a977876c6e85847652f097cc128e4ed5bec147a (diff)
parent904f8685f75ff5dd3f544f8c6f2cabb8e5952e9a (diff)
downloadzsh-1bc186dabe12b3d01b2257e82f3a104c48b8b3c7.tar.gz
zsh-1bc186dabe12b3d01b2257e82f3a104c48b8b3c7.tar.bz2
zsh-1bc186dabe12b3d01b2257e82f3a104c48b8b3c7.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'plugins/rand-quote/rand-quote.plugin.zsh')
-rw-r--r--plugins/rand-quote/rand-quote.plugin.zsh23
1 files changed, 16 insertions, 7 deletions
diff --git a/plugins/rand-quote/rand-quote.plugin.zsh b/plugins/rand-quote/rand-quote.plugin.zsh
index 371b997d3..23c21dc8f 100644
--- a/plugins/rand-quote/rand-quote.plugin.zsh
+++ b/plugins/rand-quote/rand-quote.plugin.zsh
@@ -1,14 +1,23 @@
if ! (( $+commands[curl] )); then
- echo "rand-quote plugin needs curl to work" >&2
- return
+ echo "rand-quote plugin needs curl to work" >&2
+ return
fi
function quote {
- emulate -L zsh
- Q=$(curl -s --connect-timeout 2 "http://www.quotationspage.com/random.php" | iconv -c -f ISO-8859-1 -t UTF-8 | grep -m 1 "dt ")
+ setopt localoptions nopromptsubst
- TXT=$(echo "$Q" | sed -e 's/<\/dt>.*//g' -e 's/.*html//g' -e 's/^[^a-zA-Z]*//' -e 's/<\/a..*$//g')
- WHO=$(echo "$Q" | sed -e 's/.*\/quotes\///g' -e 's/<.*//g' -e 's/.*">//g')
+ # Get random quote data
+ local data
+ data="$(command curl -s --connect-timeout 2 "http://www.quotationspage.com/random.php" \
+ | iconv -c -f ISO-8859-1 -t UTF-8 \
+ | command grep -a -m 1 'dt class="quote"')"
- [[ -n "$WHO" && -n "$TXT" ]] && print -P "%F{3}${WHO}%f: “%F{5}${TXT}%f”"
+ # Exit if could not fetch random quote
+ [[ -n "$data" ]] || return 0
+
+ local quote author
+ quote=$(sed -e 's|</dt>.*||g' -e 's|.*html||g' -e 's|^[^a-zA-Z]*||' -e 's|</a..*$||g' <<< "$data")
+ author=$(sed -e 's|.*/quotes/||g' -e 's|<.*||g' -e 's|.*">||g' <<< "$data")
+
+ print -P "%F{3}${author}%f: “%F{5}${quote}%f”"
}