.dotfiles/.config/qutebrowser/userscripts/qutebrowser-linkwarden

40 lines
963 B
Bash
Executable file

#!/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: ")
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