X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=macros%2Fevent;h=1f77cfb46bff13492b2a586929388b06bbe9b90f;hb=e9bb2b8721a5a47baa5b41ddead1238ea2a23221;hp=2e44100aab0256e22385333a39984a6a2163cc2b;hpb=43dc754288741e1b960d7fe267757fa80ed2fa10;p=shellwiki diff --git a/macros/event b/macros/event index 2e44100..1f77cfb 100755 --- a/macros/event +++ b/macros/event @@ -95,7 +95,7 @@ if [ ! "$end_date" -a "$end_time" -a "$start_time" ]; then if [ "$((${end_time%:*} * 60 + ${end_time#*:}))" -gt "$((${start_time%:*} * 60 + ${start_time#*:}))" ]; then end_date="$start_date" else - end_date="$(date -d "@$(($(date -d "$start_date" +%s) + 86400))" +%F)" + end_date="$(date -ud "@$(($(date -ud "$start_date" +%s) + 86400))" +%F)" fi fi @@ -123,92 +123,19 @@ case $rec_int in rec_int="year";; esac -[ "$rec_end" ] && rec_end="$(date -d "$rec_end" +%s)" \ +[ "$rec_end" ] && rec_end="$(date -ud "$rec_end" +%s)" \ if LOCK './#events'; then sed -i "/^${_DATE} /!d" './#events' evid="$(wc -l <'./#events' || printf 0)" printf '%i %i %i %i %s %i %s %s\n' \ - "$_DATE" "$(date -d "$start_date $start_time" +%s)" "$(date -d "$end_date $end_time" +%s)" \ + "$_DATE" "$(date -ud "$start_date $start_time" +%s)" "$(date -ud "$end_date $end_time" +%s)" \ "${rec_freq:-0}" "${rec_int:-\\}" "${rec_end:--1}" "$(STRING "${title}")" "$(STRING "${PATH_INFO}#event${evid}")" \ >>'./#events' RELEASE './#events' fi -start="$(date -d "$start_date $start_time" +%s)" - end="$(date -d "$end_date $end_time" +%s)" - -if [ $_DATE -le $end ]; then - nstart="$start" nend="$end" -fi - -[ $_DATE -gt $end ] && case $rec_int in - day) - nend=$(( rec_freq * 86400 - (_DATE - end) % (rec_freq * 86400) + _DATE )) - nstart=$(( start - end + nend)) - ;; - week) - nend=$(( rec_freq * 604800 - (_DATE - end) % (rec_freq * 604800) + _DATE )) - nstart=$(( start - end + nend)) - ;; - month) - { read _y _m _d; read y m d; } <<-EOF - $(date -d @$_DATE +"%Y %_m %_d" - date -d @$start +"%Y %_m %_d" - ) - EOF - _m=$((_y * 12 + _m)) m=$((y * 12 + m)) - while :; do - # mod=$(( (_m - m) % rec_freq )); [ $mod -eq 0 ] && mod="$rec_freq"; - m=$(( rec_freq - ((_m - m - 1) % rec_freq + 1) + _m )) - # y=$(((m - 1) / 12)) m=$(((m - 1) % 12 + 1)); # [ $m -eq 0 ] && y=$((y - 1)) m=12; - nstart="$(printf '%04i-%02i-%02i' "$(( (m - 1) / 12 ))" "$(( (m - 1) % 12 + 1 ))" "$d")" - if isdate "$nstart" && [ "$(date -d "$nstart" +%s)" -ge "$_DATE" ]; then - break - fi >/dev/null - # m=$((y * 12 + m)) - _m="$((_m + rec_freq))" - done - nstart="$(date -d "$nstart $start_time" +%s)" - nend="$((end - start + nstart))" - ;; - year) - { read _y _m _d; read y m d; } <<-EOF - $(date -d @$_DATE +"%Y %_m %_d" - date -d @$start +"%Y %_m %_d" - ) - EOF - while :; do - # mod=$(( ( _y - y ) % rec_freq )); [ $mod -eq 0 ] && mod="$rec_freq" - y=$(( rec_freq - ((_y - y - 1) % rec_freq + 1) + _y )) - nstart="$(printf '%04i-%02i-%02i' "$y" "$m" "$d")" - if isdate "$nstart" && [ $(date -d "$nstart" +%s) -ge $_DATE ]; then - break - fi >/dev/null - _y="$((_y + rec_freq))" - done - nstart="$(date -d "$nstart $start_time" +%s)" - nend="$((end - start + nstart))" - ;; - '') - nstart="$start" nend="$end" - ;; -esac - -if [ "$nstart" -gt "$rec_end" ] 2>/dev/null; then - nstart="$start" nend="$end" -fi - -"$_EXEC/cgilite/html-sh.sed" <<-EOF - [div .macro .event #event${evid} - [label . $(HTML "$title")] - [dl - [dt $(_ Start:)][dd $(date -d @$nstart +"%F %T")] - [dt $(_ End:)][dd $(date -d @$nend +"%F %T")] - [dt $(_ Until:)][dd $(date -d @$rec_end +"%F %T")] - ] - ] -EOF +printf '
' "${evid}" # uid="$(timeid)" # tzid="$(cat /etc/timezone || printf 'UTC')" @@ -219,10 +146,10 @@ EOF # PRODID:ShellWiki Event Macro # BEGIN:VEVENT # UID:$uid@$(HEADER Host) -# DTSTAMP:TZID=${tzid}:$(date +%Y%m%dT%H%M%S) -# DTSTART:TZID=${tzid}:$(date +%Y%m%dT%H%M%S -d "$start_date $start_time") +# DTSTAMP:TZID=${tzid}:$(date -u +%Y%m%dT%H%M%S) +# DTSTART:TZID=${tzid}:$(date -u +%Y%m%dT%H%M%S -d "$start_date $start_time") # DURATION: -# RRULE:FREQ=$ec_freq;INTERVAL=$rec_int;UNTIL=$(date +%Y%m%dT000000Z -d "$rec_end") +# RRULE:FREQ=$ec_freq;INTERVAL=$rec_int;UNTIL=$(date -u +%Y%m%dT000000Z -d "$rec_end") # SUMMARY: # COMMENT: # END:VEVENT