From 6e44918e57064405abec3614dadbfb05b72eb77a Mon Sep 17 00:00:00 2001 From: ekardnam Date: Wed, 20 Feb 2019 13:08:28 +0000 Subject: [PATCH] Added content warning and image alternative text --- toot.sh | 79 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 32 deletions(-) diff --git a/toot.sh b/toot.sh index b244c19..6b06a5c 100644 --- a/toot.sh +++ b/toot.sh @@ -1,16 +1,18 @@ -#!/bin/sh +#!/bin/bash # WTFPL! -MASTODON_TOKEN=ENV["MASTODON_TOKEN"] +MASTODON_TOKEN=$MASTODON_TOKEN MASTODON_SERVER="mastodon.bida.im" toot_help(){ echo "toot [args..] your status update" - echo "Argouments: " + echo "Arguments: " echo " -i=, --image= select file image to post" + echo " -a=, --alt= the image description for disabilities" echo " -t=, --token= your API access token" echo " -s=, --server= mastodon server" + echo " -w, --warn the image is marked as sensitive" echo "" echo "Mastodon server can be set in ~/.tootrc otherwise it will be defaulted to $MASTODON_SERVER" echo "The token can be passed as, cli argument, var in ~/.tootrc, env var (in this priority order)" @@ -23,36 +25,41 @@ then fi toot_upload_image(){ - image="$1" - id=$(curl --header "Authorization: Bearer $MASTODON_TOKEN" -sS -X POST https://$MASTODON_SERVER/api/v1/media -F "file=@$image" | jq -r .id) + local image="$1" + local description="$2" + local desc_data="description=$description" + local data="file=@$image" + local id=$(curl --header "Authorization: Bearer $MASTODON_TOKEN" -sS -X POST https://$MASTODON_SERVER/api/v1/media -F "$desc_data" -F "$data" | jq -r .id) if [ $? -eq 0 ] && [ -n "$id" ] then - echo $id - return 0 + echo $id + return 0 fi echo "Image upload: Something went wrong" exit 1 - } toot_post(){ - status="$1" - image="$2" - data="status=$status&media_ids[]=$image" - error=$(curl --header "Authorization: Bearer $MASTODON_TOKEN" -sS -X POST https://$MASTODON_SERVER/api/v1/statuses -d "$data" | jq -r .error) + local status="$1" + local image="$2" + local sensitive="$3" + local data="status=$status&media_ids[]=$image&sensitive=$sensitive" + local error=$(curl --header "Authorization: Bearer $MASTODON_TOKEN" -sS -X POST https://$MASTODON_SERVER/api/v1/statuses -d "$data" | jq -r .error) if [ "$error" = "null" ] then - echo "Yay!" + echo "Yay!" else - echo $error - exit 1 + echo $error + exit 1 fi } image_to_toot="" +image_alt="" +sensitive="false" -if [ -z "$@" ] +if [ $# -eq 0 ] then toot_help exit 1 @@ -61,20 +68,28 @@ fi for arg in "$@" do case $arg in - -i=*|--image=*) - image_to_toot="${arg#*=}" - shift - ;; - -t=*|--token=*) - MASTODON_TOKEN="${arg#*=}" - shift - ;; - -s=*|--server=*) - MASTODON_SERVER="${arg#*=}" - shift - ;; - *) - ;; + -i=*|--image=*) + image_to_toot="${arg#*=}" + shift + ;; + -t=*|--token=*) + MASTODON_TOKEN="${arg#*=}" + shift + ;; + -s=*|--server=*) + MASTODON_SERVER="${arg#*=}" + shift + ;; + -a=*|--alt=*) + image_alt="${arg#*=}" + shift + ;; + -w|--warn) + sensitive="true" + shift + ;; + *) + ;; esac done @@ -86,7 +101,7 @@ fi if [ -n $image_to_toot ] && [ -f $image_to_toot ] then - image_id=$(toot_upload_image $image_to_toot) + image_id=$(toot_upload_image "$image_to_toot" "$image_alt") fi -toot_post "$*" "$image_id" +toot_post "$*" "$image_id" "$sensitive" \ No newline at end of file