summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/rand-quote
diff options
context:
space:
mode:
authorAditya <bluenerd@protonmail.com>2023-02-27 20:04:56 +0530
committerAditya <bluenerd@protonmail.com>2023-02-27 20:04:56 +0530
commitedc449275b6c04445f58b108ca0937a87c1e8430 (patch)
tree9fd484d58145b616f29a78857cc0b1c8b1c18f05 /oh-my-zsh/plugins/rand-quote
parent6f5424ca96c4221ef433f545642669e9c104d0ed (diff)
add zsh
Diffstat (limited to 'oh-my-zsh/plugins/rand-quote')
-rw-r--r--oh-my-zsh/plugins/rand-quote/README.md15
-rw-r--r--oh-my-zsh/plugins/rand-quote/rand-quote.plugin.zsh23
2 files changed, 38 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/rand-quote/README.md b/oh-my-zsh/plugins/rand-quote/README.md
new file mode 100644
index 0000000..c387aaa
--- /dev/null
+++ b/oh-my-zsh/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.
diff --git a/oh-my-zsh/plugins/rand-quote/rand-quote.plugin.zsh b/oh-my-zsh/plugins/rand-quote/rand-quote.plugin.zsh
new file mode 100644
index 0000000..23c21dc
--- /dev/null
+++ b/oh-my-zsh/plugins/rand-quote/rand-quote.plugin.zsh
@@ -0,0 +1,23 @@
+if ! (( $+commands[curl] )); then
+ echo "rand-quote plugin needs curl to work" >&2
+ return
+fi
+
+function quote {
+ setopt localoptions nopromptsubst
+
+ # 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"')"
+
+ # 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”"
+}