Special handling of school schedule
[tpope-extra.git] / bin / away-detect
index d6245c660648365452c2688017b028b80329a40f..1d7575b0c612fc5553e0bd68c5806134a094ba29 100755 (executable)
@@ -69,16 +69,11 @@ set_active() {
 
 now="$(expr 60 \* $(date +%H) + $(date +%M))"
 
-today|sed -e s/^..........//|grep '[0-9][0-9]:[0-9][0-9]-[0-9][0-9]:[0-9][0-9]'| \
+today --category='!school' | sed -e s/^..........//|grep '[0-9][0-9]:[0-9][0-9]-[0-9][0-9]:[0-9][0-9]'| \
 while read times event; do
     begin="$(expr 60 \* $(echo $times|sed -e 's/-.*//' -e 's/:/ + /g'))"
     end="$(expr 60 \* $(echo $times|sed -e 's/.*-//' -e 's/:/ + /g'))"
     max_end="$end"
-    case "$event" in
-       *[Cc]lass*) begin="`expr $begin - 10`"
-           end="`expr $begin / 2 + $end / 2`"
-       ;;
-    esac
     if [ "$begin" -le "$now" -a "$now" -lt "$end" ]; then
        echo "scheduled=\"$event\"" > "$HOME/.away-smart"
        break
@@ -87,6 +82,21 @@ while read times event; do
     fi
 done
 
+today --category='school' | sed -e s/^..........//|grep '[0-9][0-9]:[0-9][0-9]-[0-9][0-9]:[0-9][0-9]'| \
+while read times event; do
+    begin="$(expr 60 \* $(echo $times|sed -e 's/-.*//' -e 's/:/ + /g'))"
+    end="$(expr 60 \* $(echo $times|sed -e 's/.*-//' -e 's/:/ + /g'))"
+    max_end="$end"
+    begin="`expr $begin - 15`"
+    end="`expr $begin / 2 + $end / 2`"
+    if [ "$begin" -le "$now" -a "$now" -lt "$end" ]; then
+       echo "scheduled=\"Class ($event)\"" > "$HOME/.away-smart"
+       break
+    elif [ "$old_away" = "$event" -a "$now" -gt "$max_end" ]; then
+       echo "old_smart=\"$old_away\"" > "$HOME/.away-smart"
+    fi
+done
+
 [ -f "$HOME/.away-smart" ] && . "$HOME/.away-smart"
 old_sched="$scheduled"