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/josm_launch $(DESTDIR)$(PREFIX)/bin
|
||||||
cp -f sh/start $(DESTDIR)$(PREFIX)/bin
|
cp -f sh/start $(DESTDIR)$(PREFIX)/bin
|
||||||
cp -f sh/proxtest $(DESTDIR)$(PREFIX)/bin
|
cp -f sh/proxtest $(DESTDIR)$(PREFIX)/bin
|
||||||
|
cp -f sh/pco $(DESTDIR)$(PREFIX)/bin
|
||||||
|
|
||||||
mkc:
|
mkc:
|
||||||
cc c/scream.c -o c/scream
|
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