add program for planning center online
This commit is contained in:
parent
f21c709e4a
commit
df43732aa8
1
Makefile
1
Makefile
|
@ -24,6 +24,7 @@ sh:
|
|||
cp -f sh/josm_launch $(DESTDIR)$(PREFIX)/bin
|
||||
cp -f sh/start $(DESTDIR)$(PREFIX)/bin
|
||||
cp -f sh/proxtest $(DESTDIR)$(PREFIX)/bin
|
||||
cp -f sh/pco $(DESTDIR)$(PREFIX)/bin
|
||||
|
||||
mkc:
|
||||
cc c/scream.c -o c/scream
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
#!/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
|
Loading…
Reference in New Issue