浏览代码

rand-quote: refactor rand-quote function

- Make function variables local
- Use prompt color sequences
- Use guard clause to check for curl
- Improved syntax
Marc Cornellà 5 年之前
父节点
当前提交
76bfa7dd2a
共有 1 个文件被更改,包括 12 次插入24 次删除
  1. 12 24
      plugins/rand-quote/rand-quote.plugin.zsh

+ 12 - 24
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”"
+}