# API reference: https://code.google.com/apis/urlshortener/
function zurl() {
emulate -L zsh
+ setopt extended_glob
+
if [[ -z $1 ]]; then
print "USAGE: zurl <URL>"
return 1
fi
- local PN url prog api json data
+ local PN url prog api json contenttype item
+ local -a data
PN=$0
url=$1
api='https://www.googleapis.com/urlshortener/v1/url'
contenttype="Content-Type: application/json"
json="{\"longUrl\": \"${url}\"}"
- data=$($prog --silent -H ${contenttype} -d ${json} $api)
- # Match against a regex and print it
- if [[ $data =~ '"id": "(http://goo.gl/[[:alnum:]]+)"' ]]; then
- print $match;
- fi
+ data=(${(f)"$($prog --silent -H ${contenttype} -d ${json} $api)"})
+ # Parse the response
+ for item in "${data[@]}"; do
+ case "$item" in
+ ' '#'"id":'*)
+ item=${item#*: \"}
+ item=${item%\",*}
+ printf '%s\n' "$item"
+ return 0
+ ;;
+ esac
+ done
+ return 1
}
#f2# Find history events by search pattern and list them by date.