script (requires Yad) name it imgur and put it in PATH /usr/bin/ or /root/my-applications/bin/
Code: Select all
#!/bin/bash
###GUI for imgur script by Bart Nagel <bart@tremby.net>###
###upload local image to www.imgur.com image hosting service###
##Stu90###
#
### root password for user fido ###
[ "`whoami`" != "root" ] && exec sudo -A ${0} ${@}
TEXT=" Select an image to upload to www.imgur.com "
NAME="Imgur upload"
VER="0.1"
GUI1=$(yad --title="$NAME $VER" --text="$TEXT" --form --field="Image:FL" --button="gtk-quit:1" --button="gtk-ok:0")
BUTTON=$?
if [ "$GUI1" = "" ]; then
echo "Exiting" && exit
fi
case $BUTTON in
0)
GETIMG="`echo $GUI1 | cut -d '|' -f 1`"
echo "$GETIMG"
# API Key provided by Alan@imgur.com
apikey="b3625162d3418ac51a9ee805b1840452"
# upload the image
response=$(curl -F "key=$apikey" -H "Expect: " -F "image=@$GETIMG" \
http://imgur.com/api/upload.xml 2>/dev/null)
# the "Expect: " header is to get around a problem when using this through the
# Squid proxy. Not sure if it's a Squid bug or what.
if [ $? -ne 0 ]; then
echo "Upload failed" >&2
exit 2
elif [ $(echo $response | grep -c "<error_msg>") -gt 0 ]; then
echo "Error message from imgur:" >&2
echo $response | sed -r 's/.*<error_msg>(.*)<\/error_msg>.*/\1/' >&2
exit 3
fi
# parse the response and output our stuff
url=$(echo $response | sed -r 's/.*<original_image>(.*)<\/original_image>.*/\1/')
deleteurl=$(echo $response | sed -r 's/.*<delete_page>(.*)<\/delete_page>.*/\1/')
echo $url
echo "Delete page: $deleteurl" >&2
##thumb nail image##
url1="` echo $url | cut -d "." -f -3 `"
format="` echo $url | cut -d "." -f 4- `"
urlthumb="$url1"l."$format"
##imge links gui##
GUI2=$(yad --title="$NAME $VER" --text=" Cut and paste one of the image options from the boxes below " --form \
--field="Forum Thumb" "[IMG]$urlthumb[/IMG]" \
--field="Forum Full" "[IMG]$url[/IMG]" \
--field="Direct URL" "$url" \
--field="Delete page" "$deleteurl" \
--button="gtk-quit")
if [ "$GUI2" = "" ]; then
echo "Exiting" && exit
fi
;;
1)
echo "Quit selected - Exiting" && exit
;;
esac