Had to split stuff up to make two HTTP-Requests for todo and event

master
gandalf 2022-06-02 17:19:45 +02:00
parent 1897e8f16d
commit ac4dbfa65d
12 changed files with 99 additions and 64 deletions

View File

@ -6,7 +6,7 @@
# Usage output string. $0 is filename.
usage="$0 categories date description [dtstart] [dtend]
where categories is a comma separated list that MUST start with FRIST, WF or TERMIN
where categories is a comma separated list that MUST start with FRIST, WV or TERMIN
and the second item in this list denotes the required alarm set."
# print usage string if improper options, or if requested.
@ -30,16 +30,26 @@ BASEPATH=$(dirname $(realpath $0))
# ics example 8cbf7d9e-6g68-43b9-zb3c-073a8e6b8f46.ics
UUID=$random1-$random2-$random3-$random4-$random5
ics=$UUID.ics
# done here generating an UID, and defining a filename using that UID
# done here generating an UID
NOW=`date +%Y%m%dT%H%M%S`
# find main category and decide for a template
main_cat=$(echo $1 | cut -d, -f1 | tr 'A-Z' 'a-z')
template=$BASEPATH/templates/template_$main_cat.ics
# last preparations of arguments to pass to the function:
inputcat=$1
inputdate=$2
inputdesc=$3
inputstart=$4
inputend=$5
prepare_file() {
local mode=${1,?Mode is required}
template=$BASEPATH/templates/template_${main_cat}_${mode}.ics
ics=$UUID-$mode.ics
if [ -e $template ]; then
# initiate iCal file with template
cp $template $ics
@ -48,17 +58,14 @@ BASEPATH=$(dirname $(realpath $0))
# dtstamp, lastmodified, created:
sed -i "s|20160224T172807|$NOW|g" $ics
# date (this script will only add single day events. Use other calDAV front-ends for more sophisticated usage)
sed -i "s|20160225|$2|g" $ics
sed -i "s|20160225|$inputdate|g" $ics
# categories
sed -i "s|replacemecategory|$1|g" $ics
# replacemealarm[et]
sed -i "s|replacemecategory|$inputcat|g" $ics
# replacemealarm
# We have to do quite a lot of shitty magic here to get the right representations for the different kinds of newlines.
alarmt=$($BASEPATH/add_alarm.sh t $1 $2)
alarmt=${alarmt//$'\n'/\\$'\n'}
alarme=$($BASEPATH/add_alarm.sh e $1 $2)
alarme=${alarme//$'\n'/\\$'\n'}
sed -i "s|replacemealarmt|${alarmt//\\n/\\\\n}|g" $ics
sed -i "s|replacemealarme|${alarme//\\n/\\\\n}|g" $ics
alarm=$($BASEPATH/add_alarm.sh $mode $inputcat $inputdate)
alarm=${alarm//$'\n'/\\$'\n'}
sed -i "s|replacemealarm|${alarm//\\n/\\\\n}|g" $ics
# AktenzeichenXYZ
# take from deckblatt
aktenzeichen=""
@ -69,20 +76,28 @@ BASEPATH=$(dirname $(realpath $0))
fi
sed -i "s|AktenzeichenXYZ|$aktenzeichen|g" $ics
# human-readable date
sed -i "s|replacemedate|$(date -d $2 +%d.%m.%Y), 2300|g" $ics
sed -i "s|replacemedate|$(date -d $inputdate +%d.%m.%Y), 2300|g" $ics
# description:
sed -i "s|replacemedescription|${3//$'\n'/\\\\n}|g" $ics
sed -i "s|replacemedescription|${inputdesc//$'\n'/\\\\n}|g" $ics
# what we might need to replace, but not even that often:
# dtstart, time component optional. We only work with minutes here:
[ -n "$4" ] && echo ${#4}
[ -n "$4" ] && sed -i "s|2300|$4|g" $ics
[ -n "$inputstart" ] && echo ${#inputstart}
[ -n "$inputstart" ] && sed -i "s|2300|$inputstart|g" $ics
# dtend, same as dtstart:
[ -n "$5" ] && sed -i "s|2359|$5|g" $ics
[ -n "$inputend" ] && sed -i "s|2359|$inputend|g" $ics
# UUID:
sed -i "s|99g999gggg|$UUID|g" $ics
domain=${domain/%\//}
user=$username:$secret
url=$domain/$username/$calendar
echo curl -k --user $user -X PUT -H "Content-Type: text/calendar; charset=utf-8" --data-binary @./$ics --url $url/$ics
curl -k --user $user -X PUT -H "Content-Type: text/calendar; charset=utf-8" --data-binary @./$ics --url $url/$ics
fi
}
prepare_file t
prepare_file e
fi

View File

@ -66,4 +66,5 @@ do
done
#letztes Komma aus CATEGORIES streichen
CATEGORIES=${CATEGORIES/%,/}
$BASEPATH/add_date.sh $CATEGORIES $date $1 $tstart $tend;
echo $BASEPATH/add_date.sh $CATEGORIES $date "$1" $tstart $tend
$BASEPATH/add_date.sh $CATEGORIES $date "$1" $tstart $tend

View File

@ -1,5 +1,5 @@
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,VALUE=DATE-TIME:20160224T180000
TRIGGER;VALUE=DATE-TIME:20160224T180000
END:VALARM

View File

@ -3,25 +3,25 @@ ACTION:MAIL
SUMMARY:Fristablauf AktenzeichenXYZ
DESCRIPTION:Es läuft demnächst eine Frist ab:\nreplacemedescription\n\nreplacemedate
ATTENDEE:replacememail
TRIGGER,VALUE=DATE-TIME:20160223T100000
TRIGGER;VALUE=DATE-TIME:20160223T100000
END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,VALUE=DATE-TIME:20160223T100000
TRIGGER;VALUE=DATE-TIME:20160223T100000
END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,RELATED=END:-PT5M
TRIGGER;RELATED=END:-PT5M
END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,RELATED=END:-PT6H
TRIGGER;RELATED=END:-PT6H
END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,VALUE=DATE-TIME:20160224T180000
TRIGGER;VALUE=DATE-TIME:20160224T180000
END:VALARM

View File

@ -1,5 +1,5 @@
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription
TRIGGER,VALUE=DATE-TIME:20160224T180000
TRIGGER;VALUE=DATE-TIME:20160224T180000
END:VALARM

View File

@ -8,5 +8,5 @@ END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Termin\nAktenzeichenXYZ\nreplacemedate
TRIGGER,VALUE=DATE-TIME:20160224T100000
TRIGGER;VALUE=DATE-TIME:20160224T100000
END:VALARM

View File

@ -1,5 +1,5 @@
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Termin\nreplacemedate\nreplacemedescription
TRIGGER,VALUE=DATE-TIME:20160224T180000
TRIGGER;VALUE=DATE-TIME:20160224T180000
END:VALARM

View File

@ -3,7 +3,7 @@
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,VALUE=DATE-TIME:20160224T180000
TRIGGER;VALUE=DATE-TIME:20160224T180000
END:VALARM
# Frist, Jura, todo
@ -13,31 +13,31 @@ ACTION:MAIL
SUMMARY:Fristablauf AktenzeichenXYZ
DESCRIPTION:Es läuft demnächst eine Frist ab:\nreplacemedescription\n\nreplacemedate
ATTENDEE:replacememail
TRIGGER,VALUE=DATE-TIME:20160223T100000
TRIGGER;VALUE=DATE-TIME:20160223T100000
END:VALARM
#Display -2d 1000
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,VALUE=DATE-TIME:20160223T100000
TRIGGER;VALUE=DATE-TIME:20160223T100000
END:VALARM
#display -5m
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,RELATED=END:-PT5M
TRIGGER;RELATED=END:-PT5M
END:VALARM
#display -6h
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,RELATED=END:-PT6H
TRIGGER;RELATED=END:-PT6H
END:VALARM
# Display -1d 1800
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Fristablauf\nAktenzeichenXYZ\nreplacemedate
TRIGGER,VALUE=DATE-TIME:20160224T180000
TRIGGER;VALUE=DATE-TIME:20160224T180000
END:VALARM
@ -54,7 +54,7 @@ END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Termin\nAktenzeichenXYZ\nreplacemedate
TRIGGER,VALUE=DATE-TIME:20160224T100000
TRIGGER;VALUE=DATE-TIME:20160224T100000
END:VALARM
@ -89,13 +89,13 @@ END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription
TRIGGER,VALUE=DATE-TIME:20160224T100000
TRIGGER;VALUE=DATE-TIME:20160224T100000
END:VALARM
#display -1h
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription
TRIGGER,RELATED=END:-PT1H
TRIGGER;RELATED=END:-PT1H
END:VALARM
@ -104,13 +104,13 @@ END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription
TRIGGER,VALUE=DATE-TIME:20160224T100000
TRIGGER;VALUE=DATE-TIME:20160224T100000
END:VALARM
#display -1w
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription
TRIGGER,RELATED=END:-P1W
TRIGGER;RELATED=END:-P1W
END:VALARM
# Termin, pEp, event
@ -118,13 +118,13 @@ END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription
TRIGGER,VALUE=DATE-TIME:20160224T100000
TRIGGER;VALUE=DATE-TIME:20160224T100000
END:VALARM
#display -15m
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Termin\nreplacemedate\nreplacemedescription
TRIGGER,RELATED=END:-PT15M
TRIGGER;RELATED=END:-PT15M
END:VALARM
# Frist, personal, todo
@ -132,7 +132,7 @@ END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Deadline\nreplacemedate\nreplacemedescription
TRIGGER,VALUE=DATE-TIME:20160224T180000
TRIGGER;VALUE=DATE-TIME:20160224T180000
END:VALARM
# Termin, personal, event
@ -140,5 +140,5 @@ END:VALARM
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Termin\nreplacemedate\nreplacemedescription
TRIGGER,VALUE=DATE-TIME:20160224T180000
TRIGGER;VALUE=DATE-TIME:20160224T180000
END:VALARM

View File

@ -31,6 +31,6 @@ TRANS:TRANSPARENT
CLASS:PUBLIC
CATEGORIES:replacemecategory
X-MOZ-GENERATION:1
replacemealarme
replacemealarm
END:VEVENT
END:VCALENDAR

View File

@ -0,0 +1,36 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
BEGIN:VTIMEZONE
TZID:Europe/Paris
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VTODO
CREATED:20160224T172807Z
LAST-MODIFIED:20160224T172807Z
DTSTAMP:20160224T172807Z
UID:99g999gggg-todo
RELATED-TO:99g999gggg-event
SUMMARY:Frist AktenzeichenXYZ
DESCRIPTION:replacemedescription
DUE;TZID=Europe/Paris:20160225T235959
STATUS:NEEDS-ACTION
CLASS:PUBLIC
CATEGORIES:replacemecategory
X-MOZ-GENERATION:1
replacemealarm
END:VTODO
END:VCALENDAR

View File

@ -31,23 +31,6 @@ TRANS:TRANSPARENT
CLASS:PUBLIC
CATEGORIES:replacemecategory
X-MOZ-GENERATION:1
replacemealarme
replacemealarm
END:VEVENT
END:VCALENDAR
BEGIN:VCALENDAR
BEGIN:VTODO
CREATED:20160224T172807Z
LAST-MODIFIED:20160224T172807Z
DTSTAMP:20160224T172807Z
UID:99g999gggg-todo
RELATED-TO:99g999gggg-event
SUMMARY:Frist AktenzeichenXYZ
DESCRIPTION:replacemedescription
DUE;TZID=Europe/Paris:20160225T235959
STATUS:NEEDS-ACTION
CLASS:PUBLIC
CATEGORIES:replacemecategory
X-MOZ-GENERATION:1
replacemealarmt
END:VTODO
END:VCALENDAR

View File

@ -30,6 +30,6 @@ STATUS:NEEDS-ACTION
CLASS:PUBLIC
CATEGORIES:replacemecategory
X-MOZ-GENERATION:1
replacemealarmt
replacemealarm
END:VTODO
END:VCALENDAR