@@ -76,10 +76,13 @@ EndFunc ;==>_SetDuringMeetingSettings
7676
7777; Checks current time against meeting schedule and applies appropriate settings
7878; @param $meetingTime - Scheduled meeting time in HH:MM format
79+ ; Checks current time against meeting schedule and applies appropriate settings
80+ ; @param $meetingTime - Scheduled meeting time in HH:MM format
81+ ; @return Integer - Recommended sleep time in milliseconds before next check
7982Func CheckMeetingWindow($meetingTime )
80- If $meetingTime = " " Then Return
83+ If $meetingTime = " " Then Return 60000
8184
82- Local $secondsToWait = 5 ; Default interval between checks
85+ Local $nextCheckDelay = 5000 ; Default interval between checks
8386
8487 ; Parse meeting time
8588 Local $aParts = StringSplit ($meetingTime , " :" )
@@ -101,30 +104,45 @@ Func CheckMeetingWindow($meetingTime)
101104 $g_PrePostSettingsConfigured = True
102105 EndIf
103106 EndIf
107+ $nextCheckDelay = 5000
104108
105109 ElseIf $nowMin = ($meetingMin - $MEETING_START_WARNING_MINUTES ) Then
106110 ; Meeting start window (1 minute before meeting)
107111 If Not $g_DuringMeetingSettingsConfigured Then
108- If Not _GetZoomWindow() Then Return
112+ If Not _GetZoomWindow() Then Return 1000 ; Retry quickly if window not found
109113 _SetDuringMeetingSettings()
110114 $g_DuringMeetingSettingsConfigured = True
111115 EndIf
116+ $nextCheckDelay = 5000
112117
113118 ElseIf $nowMin > = $meetingMin Then
114119 ; Meeting already started
115120 Local $minutesAgo = $nowMin - $meetingMin
116121 If $minutesAgo < = 120 Then
117122 Debug(t(" INFO_MEETING_STARTED_AGO" , $minutesAgo ), " INFO" , $g_InitialNotificationWasShown )
123+ $nextCheckDelay = 30000 ; Check every 30 seconds if meeting already started
118124 Else
119125 Debug(t(" INFO_OUTSIDE_MEETING_WINDOW" ), " INFO" , $g_InitialNotificationWasShown )
126+ $nextCheckDelay = 60000 ; Check every minute
120127 EndIf
121- $secondsToWait = 30 ; Check every 30 seconds if meeting already started
128+
122129 Else
123130 ; Too early - show countdown to meeting
124131 Local $minutesLeft = $meetingMin - $nowMin
125- Debug(t(" INFO_MEETING_STARTING_IN" , $minutesLeft ), " INFO" , $g_InitialNotificationWasShown )
132+
133+ If $minutesLeft > 60 Then
134+ ; If > 1 hour away, check every minute
135+ ; Only log if it's the first run to show we are alive, otherwise silence
136+ If Not $g_InitialNotificationWasShown Then
137+ Debug(t(" INFO_MEETING_STARTING_IN" , $minutesLeft ), " INFO" )
138+ EndIf
139+ $nextCheckDelay = 60000
140+ Else
141+ Debug(t(" INFO_MEETING_STARTING_IN" , $minutesLeft ), " INFO" , $g_InitialNotificationWasShown )
142+ $nextCheckDelay = 5000
143+ EndIf
126144 EndIf
127145
128- Sleep ($secondsToWait * 1000 )
129146 $g_InitialNotificationWasShown = True
147+ Return $nextCheckDelay
130148EndFunc ; ==>CheckMeetingWindow
0 commit comments