89 lines
2.2 KiB
Plaintext
89 lines
2.2 KiB
Plaintext
|
#!/bin/sh
|
||
|
# script for interfacing with planning center online
|
||
|
|
||
|
appid=$(cat "$HOME/.local/share/pco/appid")
|
||
|
token=$(cat "$HOME/.local/share/pco/token")
|
||
|
userid=$(cat "$HOME/.local/share/pco/userid")
|
||
|
|
||
|
get_blockouts_online () {
|
||
|
curl -su "$appid:$token" "https://api.planningcenteronline.com/services/v2/people/$userid/blockouts" | \
|
||
|
jq .data[].attributes.ends_at | \
|
||
|
awk -F'"|-|T' '
|
||
|
function y(x) {
|
||
|
if (x == 1) return "Jan"
|
||
|
if (x == 2) return "Feb"
|
||
|
if (x == 3) return "Mar"
|
||
|
if (x == 4) return "Apr"
|
||
|
if (x == 5) return "May"
|
||
|
if (x == 6) return "Jun"
|
||
|
if (x == 7) return "Jul"
|
||
|
if (x == 8) return "Aug"
|
||
|
if (x == 9) return "Sep"
|
||
|
if (x == 10) return "Oct"
|
||
|
if (x == 11) return "Nov"
|
||
|
if (x == 12) return "Dec"
|
||
|
return "Unk"
|
||
|
}
|
||
|
|
||
|
{print y($3) " " $4 " " $2}' | \
|
||
|
tr '\n' '|' | \
|
||
|
sed 's/.\{1\}$//'
|
||
|
}
|
||
|
|
||
|
get_blockouts_local () {
|
||
|
grep "MSG Blockout date" "$DOTREMINDERS" | \
|
||
|
awk -F' ' '{print $2 " " $3 " " $4}'
|
||
|
}
|
||
|
|
||
|
get_blockouts () {
|
||
|
all_dates=$(get_blockouts_online)
|
||
|
OLDIFS="$IFS"
|
||
|
IFS="|"
|
||
|
for i in $all_dates; do
|
||
|
results=$(grep -c "^REM $i MSG Blockout date" "$DOTREMINDERS")
|
||
|
[ "$results" -eq 0 ] && \
|
||
|
printf "REM %s MSG Blockout date\n" "$i" >> "$DOTREMINDERS" && \
|
||
|
printf "added %s to calendar\n" "$i" || \
|
||
|
printf "omitted %s from the calendar, it's already there\n" "$i"
|
||
|
done
|
||
|
IFS="$OLDIFS"
|
||
|
}
|
||
|
|
||
|
push_blockouts () {
|
||
|
file=$(mktemp)
|
||
|
get_blockouts_online | tr '|' '\n' >> "$file"
|
||
|
local=$(get_blockouts_local)
|
||
|
|
||
|
# don't mess with the spacing
|
||
|
OLDIFS=$IFS
|
||
|
IFS="
|
||
|
"
|
||
|
printf "temp file: %s\n" "$file"
|
||
|
|
||
|
for i in $local; do
|
||
|
count=$(grep -c "^$i$" "$file")
|
||
|
if [ "$count" -eq 0 ]; then
|
||
|
printf "push: %s\n" "$i"
|
||
|
stddate=$(date --date="$i" "+%Y-%m-%dT06:00:00Z")
|
||
|
curl -X POST -H "Content-Type: application/json" -d "
|
||
|
{
|
||
|
\"data\": {
|
||
|
\"attributes\": {
|
||
|
\"reason\": \"n/a\",
|
||
|
\"repeat_frequency\": \"no_repeat\",
|
||
|
\"starts_at\": \"$stddate\",
|
||
|
\"ends_at\": \"$stddate\"
|
||
|
}
|
||
|
}
|
||
|
}" -su "$appid:$token" "https://api.planningcenteronline.com/services/v2/people/$userid/blockouts"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
IFS=$OLDIFS
|
||
|
|
||
|
rm "$file"
|
||
|
}
|
||
|
|
||
|
get_blockouts
|
||
|
push_blockouts
|