You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
3.8 KiB
128 lines
3.8 KiB
#!/usr/bin/env sh |
|
|
|
# Support iOS Bark Notification |
|
|
|
# Every parameter explained: https://github.com/Finb/bark-server/blob/master/docs/API_V2.md#push |
|
|
|
# BARK_API_URL="https://api.day.app/xxxx" (required) |
|
# BARK_GROUP="ACME" (optional) |
|
# BARK_SOUND="alarm" (optional) |
|
# BARK_LEVEL="active" (optional) |
|
# BARK_BADGE=0 (optional) |
|
# BARK_AUTOMATICALLYCOPY="1" (optional) |
|
# BARK_COPY="My clipboard Content" (optional) |
|
# BARK_ICON="https://example.com/icon.png" (optional) |
|
# BARK_ISARCHIVE="1" (optional) |
|
# BARK_URL="https://example.com" (optional) |
|
|
|
# subject content statusCode |
|
bark_send() { |
|
_subject="$1" |
|
_content="$2" |
|
_statusCode="$3" # 0: success, 1: error, 2: skipped |
|
_debug "_subject" "$_subject" |
|
_debug "_content" "$_content" |
|
_debug "_statusCode" "$_statusCode" |
|
|
|
_content=$(echo "$_content" | _url_encode) |
|
_subject=$(echo "$_subject" | _url_encode) |
|
|
|
BARK_API_URL="${BARK_API_URL:-$(_readaccountconf_mutable BARK_API_URL)}" |
|
if [ -z "$BARK_API_URL" ]; then |
|
_err "You didn't specify a Bark API URL BARK_API_URL yet." |
|
_err "You can download Bark from App Store and get yours." |
|
return 1 |
|
fi |
|
_saveaccountconf_mutable BARK_API_URL "$BARK_API_URL" |
|
|
|
BARK_GROUP="${BARK_GROUP:-$(_readaccountconf_mutable BARK_GROUP)}" |
|
if [ -z "$BARK_GROUP" ]; then |
|
BARK_GROUP="ACME" |
|
_info "The BARK_GROUP is not set, so use the default ACME as group name." |
|
else |
|
_saveaccountconf_mutable BARK_GROUP "$BARK_GROUP" |
|
fi |
|
|
|
BARK_SOUND="${BARK_SOUND:-$(_readaccountconf_mutable BARK_SOUND)}" |
|
if [ -n "$BARK_SOUND" ]; then |
|
_saveaccountconf_mutable BARK_SOUND "$BARK_SOUND" |
|
fi |
|
|
|
BARK_LEVEL="${BARK_LEVEL:-$(_readaccountconf_mutable BARK_LEVEL)}" |
|
if [ -n "$BARK_LEVEL" ]; then |
|
_saveaccountconf_mutable BARK_LEVEL "$BARK_LEVEL" |
|
fi |
|
|
|
BARK_BADGE="${BARK_BADGE:-$(_readaccountconf_mutable BARK_BADGE)}" |
|
if [ -n "$BARK_BADGE" ]; then |
|
_saveaccountconf_mutable BARK_BADGE "$BARK_BADGE" |
|
fi |
|
|
|
BARK_AUTOMATICALLYCOPY="${BARK_AUTOMATICALLYCOPY:-$(_readaccountconf_mutable BARK_AUTOMATICALLYCOPY)}" |
|
if [ -n "$BARK_AUTOMATICALLYCOPY" ]; then |
|
_saveaccountconf_mutable BARK_AUTOMATICALLYCOPY "$BARK_AUTOMATICALLYCOPY" |
|
fi |
|
|
|
BARK_COPY="${BARK_COPY:-$(_readaccountconf_mutable BARK_COPY)}" |
|
if [ -n "$BARK_COPY" ]; then |
|
_saveaccountconf_mutable BARK_COPY "$BARK_COPY" |
|
fi |
|
|
|
BARK_ICON="${BARK_ICON:-$(_readaccountconf_mutable BARK_ICON)}" |
|
if [ -n "$BARK_ICON" ]; then |
|
_saveaccountconf_mutable BARK_ICON "$BARK_ICON" |
|
fi |
|
|
|
BARK_ISARCHIVE="${BARK_ISARCHIVE:-$(_readaccountconf_mutable BARK_ISARCHIVE)}" |
|
if [ -n "$BARK_ISARCHIVE" ]; then |
|
_saveaccountconf_mutable BARK_ISARCHIVE "$BARK_ISARCHIVE" |
|
fi |
|
|
|
BARK_URL="${BARK_URL:-$(_readaccountconf_mutable BARK_URL)}" |
|
if [ -n "$BARK_URL" ]; then |
|
_saveaccountconf_mutable BARK_URL "$BARK_URL" |
|
fi |
|
|
|
_params="" |
|
|
|
if [ -n "$BARK_SOUND" ]; then |
|
_params="$_params&sound=$BARK_SOUND" |
|
fi |
|
if [ -n "$BARK_GROUP" ]; then |
|
_params="$_params&group=$BARK_GROUP" |
|
fi |
|
if [ -n "$BARK_LEVEL" ]; then |
|
_params="$_params&level=$BARK_LEVEL" |
|
fi |
|
if [ -n "$BARK_BADGE" ]; then |
|
_params="$_params&badge=$BARK_BADGE" |
|
fi |
|
if [ -n "$BARK_AUTOMATICALLYCOPY" ]; then |
|
_params="$_params&automaticallyCopy=$BARK_AUTOMATICALLYCOPY" |
|
fi |
|
if [ -n "$BARK_COPY" ]; then |
|
_params="$_params©=$BARK_COPY" |
|
fi |
|
if [ -n "$BARK_ICON" ]; then |
|
_params="$_params&icon=$BARK_ICON" |
|
fi |
|
if [ -n "$BARK_ISARCHIVE" ]; then |
|
_params="$_params&isArchive=$BARK_ISARCHIVE" |
|
fi |
|
if [ -n "$BARK_URL" ]; then |
|
_params="$_params&url=$BARK_URL" |
|
fi |
|
|
|
_params=$(echo "$_params" | sed 's/^&//') # remove leading '&' if exists |
|
|
|
response="$(_get "$BARK_API_URL/$_subject/$_content?$_params")" |
|
|
|
if [ "$?" = "0" ] && _contains "$response" "success"; then |
|
_info "Bark API fired success." |
|
return 0 |
|
fi |
|
|
|
_err "Bark API fired error." |
|
_err "$response" |
|
return 1 |
|
}
|
|
|