#!/usr/bin/env bash get_collections() { curl -H "Authorization: Bearer $LINKWARDEN_TOKEN" \ -H "Accept: application/json" \ "$LINKWARDEN_URL/api/v1/collections" 2>/dev/null \ | jq -r '.response | map_values(.name)[]' } collection=$(get_collections | $DMENU -p "Collection: ") url=$QUTE_URL name=$(echo "$QUTE_TITLE" | $DMENU -p "Title: ") if [ -z "$url" ] || [ -z "$name" ] || [ -z "$collection" ] then echo "message-error \"Failed to save link: Missing required fields\"" >> "$QUTE_FIFO" exit 0 fi payload=$(jq -n \ --arg u "$url" \ --arg n "$name" \ --arg c "$collection" \ '{ url: $u, name: $n, collection: {name: $c}, tags: [] }') response=$(curl -sS --fail-with-body \ -H "Authorization: Bearer $LINKWARDEN_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -X POST \ -d "$payload" \ "$LINKWARDEN_URL/api/v1/links" 2>&1) code="$?" if [ "$code" -ne 0 ] then response=$(echo "$response" | sed 's/"/\\"/g' | sed 's/$/ - /g' | tr -d '\n' | sed 's/ - $//g') echo "message-error \"Failed to save link: $response\"" >> "$QUTE_FIFO" fi