Both sides previous revisionPrevious revisionNext revision | Previous revision |
apps:xfce4-screenshooter:custom-actions [2025/01/15 23:11] – Add summary of custom action and note re:imgur terms of service kevinbowen | apps:xfce4-screenshooter:custom-actions [2025/02/15 12:52] (current) – [Hosting on Imgur™] Update about client id andreldm |
---|
| |
| |
Save the following script somewhere and set as command: ''<somewhere>/imgur-upload.sh %f <CLIENT ID>'' | Save the following script somewhere and set as command: ''<somewhere>/imgur-upload.sh %f <CLIENT ID>'', you need to register at Imgur and obtain your client id. |
For the time being, screenshooter provides its own client id as ''%imgur_client_id'', in future releases that will be removed, you will need to register at Imgur and obtain your client id. | |
| |
<code> | <code> |
#!/bin/sh | #!/usr/bin/env bash |
| |
URL='https://api.imgur.com/3/image' | URL='https://api.imgur.com/3/image' |
if [ -z "$SCREENSHOT_PATH" ] || [ -z "$CLIENT_ID" ]; then | if [ -z "$SCREENSHOT_PATH" ] || [ -z "$CLIENT_ID" ]; then |
zenity --error --text="Arguments are missing" | zenity --error --text="Arguments are missing" |
| exit 1 |
| fi |
| |
| if ! command -v jq >&2; then |
| zenity --error --text="jq: command not found!" |
exit 1 | exit 1 |
fi | fi |
#RESPONSE='{"data":{"id":"q9a8Oh4","title":null,"description":null,"datetime":1690124891,"type":"image\/png","animated":false,"width":217,"height":186,"size":593,"views":0,"bandwidth":0,"vote":null,"favorite":false,"nsfw":null,"section":null,"account_url":null,"account_id":0,"is_ad":false,"in_most_viral":false,"has_sound":false,"tags":[],"ad_type":0,"ad_url":"","edited":"0","in_gallery":false,"deletehash":"b0AjSDJjSU4iyhE","name":"","link":"https:\/\/i.imgur.com\/q9a8Oh4.png"},"success":true,"status":200}' | #RESPONSE='{"data":{"id":"q9a8Oh4","title":null,"description":null,"datetime":1690124891,"type":"image\/png","animated":false,"width":217,"height":186,"size":593,"views":0,"bandwidth":0,"vote":null,"favorite":false,"nsfw":null,"section":null,"account_url":null,"account_id":0,"is_ad":false,"in_most_viral":false,"has_sound":false,"tags":[],"ad_type":0,"ad_url":"","edited":"0","in_gallery":false,"deletehash":"b0AjSDJjSU4iyhE","name":"","link":"https:\/\/i.imgur.com\/q9a8Oh4.png"},"success":true,"status":200}' |
#RESPONSE='{"data":{"error":{"code":1003,"message":"File type invalid (1)","type":"ImgurException","exception":[]},"request":"\/3\/image","method":"POST"},"success":false,"status":400}' | #RESPONSE='{"data":{"error":{"code":1003,"message":"File type invalid (1)","type":"ImgurException","exception":[]},"request":"\/3\/image","method":"POST"},"success":false,"status":400}' |
RESPONSE=$(curl --silent --location "$URL" --header "Authorization: Client-ID $CLIENT_ID" --form "image=@$SCREENSHOT_PATH") | RESPONSE=$(curl --silent --location "$URL" \ |
| --header "Authorization: Client-ID $CLIENT_ID" \ |
| --form "image=@$SCREENSHOT_PATH" | \ |
| tee >(zenity --progress --pulsate --no-cancel --auto-close --text="Uploading screenshot...")) |
STATUS=$(echo "$RESPONSE" | jq -r .status) | STATUS=$(echo "$RESPONSE" | jq -r .status) |
| |