#!/bin/bash # Uploads via Curl will not be configured with a correct mimetype unles the server's `UPLOADER_ASSUME_MIMETYPES` env var is set to true. # Set the $FILE variable to act on. Varies with file manager, but Dolphin's servicemenus and CLI both use $1 if ! [ -z $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS ]; then echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" > ~/.nautilus_script_selected_file_paths if (( $(grep -c . <<<"$(cat ~/.nautilus_script_selected_file_paths)") > 1 )); then notify-send -u critical "Script error" "Selecting more than 1 file is not supported."; exit 1; fi rm ~/.nautilus_script_selected_file_paths INPUT_FILE="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" elif ! [ -z "$1" ]; then INPUT_FILE="$1" else echo "No file selected." exit 1 fi # Break up the input file's parts so we know the: # - absolute path (e.g. /home/user/Videos/MyVideo.mkv) # - file name (without extension) (e.g. MyVideo) INPUT_FILE=$(realpath "$INPUT_FILE") FILE_NAME=$(basename "$INPUT_FILE") FILE_NAME="${FILE_NAME%.*}" ZIPLINE_HOST_ROOT=https://zipline.jafner.net TOKEN=$(cat ~/.zipline-auth.token) LINK=$(curl \ --header "authorization: $TOKEN" \ $ZIPLINE_HOST_ROOT/api/upload -F "file=@$INPUT_FILE" \ --header "Content-Type: multipart/form-data" \ --header "Format: name" \ --header "Embed: true" \ --header "Original-Name: true") LINK=$(echo "$LINK" | jq -r .'files[0]') echo "[$FILE_NAME]($LINK)" | wl-copy notify-send -t 4000 "Zipline - Upload complete." "Link copied to clipboard: $LINK"