Skip to content

Instantly share code, notes, and snippets.

@amitaibu
Forked from vivien/imgur
Last active August 29, 2015 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amitaibu/e6b39fc608b69a353532 to your computer and use it in GitHub Desktop.
Save amitaibu/e6b39fc608b69a353532 to your computer and use it in GitHub Desktop.
#!/bin/sh
#
# Upload image(s) to imgur.com
# Copyright (C) 2014 Vivien Didelot <vivien@didelot.org>
# Licensed under GPL version 3, see http://www.gnu.org/licenses/gpl.txt
#
# Requires "jshon":
# http://kmkeen.com/jshon/
#
# Alternatives, which suck:
# http://imgur.com/tools/imgurbash.sh
# https://raw.githubusercontent.com/JonApps/imgur-screenshot/master/imgur-screenshot.sh
#
# Usage:
# imgur <file>...
# Specify <file> as '-' for standard input.
#
# Examples:
#
# * Upload several images:
# imgur foo.png bar.png
#
# * Take a screenshot and upload it:
# import png:- | imgur -
#
# * Copy the url to clipboard:
# imgur <file> | xclip
#
# * Open the result in a web browser:
# imgur <file> | xargs firefox
#
# * Quick use (no installation):
# curl -s https://gist.githubusercontent.com/vivien/9768953/raw/imgur | sh -s <file>
# API key from Alan@imgur.com, see imgurbash.sh
KEY=b3625162d3418ac51a9ee805b1840452
die () {
echo "$1" >&2
exit 1
}
# Syntax check
[ $# -lt 1 ] && die "usage: imgur <file>... (use - for stdin)"
# Upload every file given as argument
for IMG in "$@"
do
# A more verbose version of `curl -s [...] | jshon -Q -e rsp -e image -e original_image -u`
RESP="`curl -sS -F key=$KEY -H 'Expect: ' -F "image=@$IMG" http://imgur.com/api/upload.json 2>&1`"
[ $? -ne 0 ] && die "$IMG: $RESP"
URL=`echo "$RESP" | jshon -Q -e rsp -e image -e original_image -u`
[ -z "$URL" ] && die "$IMG: `echo "$RESP" | jshon -e rsp -e image -e error_msg -u`"
echo $URL
done
# vim: et ts=2 sw=2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment