-
Notifications
You must be signed in to change notification settings - Fork 20
/
imgur
executable file
·62 lines (54 loc) · 1.54 KB
/
imgur
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh
#
# https://gist.github.com/vivien/9768953
#
# 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