Both sides previous revisionPrevious revisionNext revision | Previous revision |
apps:xfce4-screenshooter:custom-actions [2025/01/15 22:52] – add imgur link dialog kevinbowen | apps:xfce4-screenshooter:custom-actions [2025/02/15 12:52] (current) – [Hosting on Imgur™] Update about client id andreldm |
---|
* **[[#Extract text with OCR|Extract text with OCR]]** | * **[[#Extract text with OCR|Extract text with OCR]]** |
* **[[#Read QR Code|Read QR Code]]** | * **[[#Read QR Code|Read QR Code]]** |
* **[[#Host on Imgur™|Host on Imgur™]]** | * **[[#Hosting on Imgur™|Hosting on Imgur™]]** |
| |
===== Adding custom actions ===== | ===== Adding custom actions ===== |
---- | ---- |
| |
==== Host on Imgur™ ==== | ==== Hosting on Imgur™ ==== |
| |
Save the following script somewhere and set as command: ''<somewhere>/imgur-upload.sh %f <CLIENT ID>'' | ! This custom action allows you to host your screenshot on this free online hosting service, so that you can share it easily with other people. Imgur automatically generates a tiny, medium, and full-size image of your screenshot, which can be used to create thumbnails pointing to the full size screenshot. |
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. | |
| |
| <note important>Hosting images in a public-facing service must be done with caution, as it is not possible to guarantee the removal of a image after publishing it. Before using this action, please review Imgur's [[https://imgur.com/tos|Terms of service]], if you do not agree with the terms please refrain from using this service.</note> |
| |
| |
| 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. |
| |
<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) |
| |