From 787c6899d4db04b3e6cef9a02c6a2ff3d896ece3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 29 Jun 2018 17:50:32 +0200 Subject: [PATCH 1/3] rand-quote: update URL Fixes #6949 --- plugins/rand-quote/rand-quote.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/rand-quote/rand-quote.plugin.zsh b/plugins/rand-quote/rand-quote.plugin.zsh index 8f345d9aa..a64e9b4ed 100644 --- a/plugins/rand-quote/rand-quote.plugin.zsh +++ b/plugins/rand-quote/rand-quote.plugin.zsh @@ -1,4 +1,4 @@ -# Get a random quote fron the site http://www.quotationspage.com/random.php3 +# Get a random quote fron the site http://www.quotationspage.com/random.php # Created by Eduardo San Martin Morote aka Posva # http://posva.github.io # Sun Jun 09 10:59:36 CEST 2013 @@ -13,7 +13,7 @@ END_COLOR="\e[m" if [[ -x `which curl` ]]; then function quote() { - Q=$(curl -s --connect-timeout 2 "http://www.quotationspage.com/random.php3" | iconv -c -f ISO-8859-1 -t UTF-8 | grep -m 1 "dt ") + 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 ") TXT=$(echo "$Q" | sed -e 's/<\/dt>.*//g' -e 's/.*html//g' -e 's/^[^a-zA-Z]*//' -e 's/<\/a..*$//g') W=$(echo "$Q" | sed -e 's/.*\/quotes\///g' -e 's/<.*//g' -e 's/.*">//g') if [ "$W" -a "$TXT" ]; then From 1e255a1a8d19f713482c7f2caa639733e8f86b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 29 Jun 2018 17:55:55 +0200 Subject: [PATCH 2/3] rand-quote: add README --- plugins/rand-quote/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 plugins/rand-quote/README.md diff --git a/plugins/rand-quote/README.md b/plugins/rand-quote/README.md new file mode 100644 index 000000000..c387aaa22 --- /dev/null +++ b/plugins/rand-quote/README.md @@ -0,0 +1,15 @@ +# rand-quote plugin + +Displays a random quote taken from [quotationspage.com](http://www.quotationspage.com/random.php) + +Created by [Eduardo San Martin Morote, aka Posva](https://posva.github.io) + +## Usage + +Add the plugin to the plugins array in your zshrc file and restart zsh: + +```zsh +plugins=(... rand-quote) +``` + +Then, run `quote` to get a new random quote. From 76bfa7dd2a5422569c48ceb5429fb31adf1f23c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 29 Jun 2018 18:16:10 +0200 Subject: [PATCH 3/3] rand-quote: refactor rand-quote function - Make function variables local - Use prompt color sequences - Use guard clause to check for curl - Improved syntax --- plugins/rand-quote/rand-quote.plugin.zsh | 36 ++++++++---------------- 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/plugins/rand-quote/rand-quote.plugin.zsh b/plugins/rand-quote/rand-quote.plugin.zsh index a64e9b4ed..371b997d3 100644 --- a/plugins/rand-quote/rand-quote.plugin.zsh +++ b/plugins/rand-quote/rand-quote.plugin.zsh @@ -1,26 +1,14 @@ -# Get a random quote fron the site http://www.quotationspage.com/random.php -# Created by Eduardo San Martin Morote aka Posva -# http://posva.github.io -# Sun Jun 09 10:59:36 CEST 2013 -# Don't remove this header, thank you -# Usage: quote - -WHO_COLOR="\e[0;33m" -TEXT_COLOR="\e[0;35m" -COLON_COLOR="\e[0;35m" -END_COLOR="\e[m" - -if [[ -x `which curl` ]]; then - function quote() - { - 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 ") - TXT=$(echo "$Q" | sed -e 's/<\/dt>.*//g' -e 's/.*html//g' -e 's/^[^a-zA-Z]*//' -e 's/<\/a..*$//g') - W=$(echo "$Q" | sed -e 's/.*\/quotes\///g' -e 's/<.*//g' -e 's/.*">//g') - if [ "$W" -a "$TXT" ]; then - echo "${WHO_COLOR}${W}${COLON_COLOR}: ${TEXT_COLOR}“${TXT}”${END_COLOR}" - fi - } - #quote -else +if ! (( $+commands[curl] )); then 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 ") + + 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') + + [[ -n "$WHO" && -n "$TXT" ]] && print -P "%F{3}${WHO}%f: “%F{5}${TXT}%f”" +}