Initial commit
This commit is contained in:
103
urlshortener
Executable file
103
urlshortener
Executable file
@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Von Tim Peters, https://z3h.de/url-shortener
|
||||
##############################################
|
||||
|
||||
HOST=
|
||||
API_KEY=
|
||||
APP_NAME="URL Shortener"
|
||||
FILE_CONFIG=~/.urlshortener
|
||||
|
||||
addUrl() {
|
||||
|
||||
local data=
|
||||
local result=
|
||||
local link=
|
||||
local error=
|
||||
|
||||
[ -n "$1" ] && data="${data}\"target\": \"$1\""
|
||||
[ -n "$2" ] && data="${data},\"customurl\": \"$2\""
|
||||
[ -n "$3" ] && data="${data},\"reuse\": $3"
|
||||
[ -n "$4" ] && data="${data},\"expire_in\": \"$4\""
|
||||
[ -n "$5" ] && data="${data},\"password\": \"$5\""
|
||||
[ -n "$6" ] && data="${data},\"description\": \"$6\""
|
||||
|
||||
result="$( \
|
||||
curl \
|
||||
-s -H "X-API-KEY: $API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
--data "{$data}" \
|
||||
"$HOST/api/v2/links"
|
||||
)"
|
||||
|
||||
link="$( echo "$result" | jq .link | tr -d \" )"
|
||||
error="$( echo "$result" | jq .error | tr -d \" )"
|
||||
|
||||
if [ "$link" != "null" ]; then
|
||||
echo -n "$link" | xclip -selection c
|
||||
notify-send -t 5000 "$link wurde in die Zwischenablage kopiert"
|
||||
elif [ "$error" != "null" ]; then
|
||||
notify-send -t 10000 "$error"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
addConfig() {
|
||||
|
||||
yad \
|
||||
--form \
|
||||
--title="URL Shortener" \
|
||||
--text="Ersteinrichtung" \
|
||||
--field="URL" \
|
||||
--field="API-KEY" > "$FILE_CONFIG" || exit
|
||||
|
||||
}
|
||||
|
||||
getConfig() {
|
||||
|
||||
while true; do
|
||||
[ -r "$FILE_CONFIG" ] || addConfig
|
||||
HOST="$( cut -d\| -f1 < "$FILE_CONFIG" )"
|
||||
API_KEY="$( cut -d\| -f2 < "$FILE_CONFIG" )"
|
||||
if [ -z "$HOST" ] && [ -z "$API_KEY" ]; then
|
||||
addConfig
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
getUrlFromClipboard() {
|
||||
|
||||
xclip -o | grep -E "^https*://"
|
||||
|
||||
}
|
||||
|
||||
getConfig
|
||||
FORM="$( \
|
||||
yad \
|
||||
--form \
|
||||
--title="$APP_NAME" \
|
||||
--text="URL und Einstellmöglichkeiten" \
|
||||
--field="URL" \
|
||||
--field="Kurzlink" \
|
||||
--field="Wiederverwendung:CB" \
|
||||
--field="Verfallszeit:CBE" \
|
||||
--field="Passwort:H" \
|
||||
--field="Beschreibung" \
|
||||
"$( getUrlFromClipboard )" \
|
||||
"" \
|
||||
"true\!false" \
|
||||
"\!7d\!30d\!180d\!365d" \
|
||||
"" \
|
||||
"" \
|
||||
)"
|
||||
|
||||
[ -n "$FORM" ] && \
|
||||
addUrl \
|
||||
"$( echo "$FORM" | cut -d\| -f1 )" \
|
||||
"$( echo "$FORM" | cut -d\| -f2 )" \
|
||||
"$( echo "$FORM" | cut -d\| -f3 )" \
|
||||
"$( echo "$FORM" | cut -d\| -f4 )" \
|
||||
"$( echo "$FORM" | cut -d\| -f5 )" \
|
||||
"$( echo "$FORM" | cut -d\| -f6 )"
|
Reference in New Issue
Block a user