-
-
Save oglops/52a872ff5aba05fe2935822ecde9becc to your computer and use it in GitHub Desktop.
Shell script to upload image(s) to imgur.com
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# Upload image(s) to imgur.com | |
# Copyright (C) 2014 Vivien Didelot <[email protected]> | |
# 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 [email protected], 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