Skip to content

Commit 6e990ee

Browse files
committed
fix: only one check at 1:40 AM
1 parent 1cb7e5f commit 6e990ee

1 file changed

Lines changed: 34 additions & 2 deletions

File tree

src/main.py

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,10 @@ def main():
203203
check_notes()
204204
print()
205205

206+
# Un seul check dans la fenêtre 01:20-01:40 (par jour)
207+
window_date = None
208+
window_done = False
209+
206210
while True:
207211
now = datetime.datetime.now()
208212
# Mode DEBUG : exécution toutes les 30 secondes, sans contrainte d'heure
@@ -217,12 +221,40 @@ def main():
217221
time.sleep(sleep_seconds)
218222
continue
219223
interval = CHECK_INTERVAL
220-
# Si on est entre 1h20 et 1h40, on attend 2 minutes
221224
now_tz = get_tz_time()
225+
current_date = now_tz.date()
226+
if window_date != current_date:
227+
window_date = current_date
228+
window_done = False
229+
230+
# Entre 01:20 et 01:40 : on attend 01:40
222231
if now_tz.hour == 1 and 20 <= now_tz.minute < 40:
223-
interval = 120
232+
next_140 = now_tz.replace(minute=40, second=0, microsecond=0)
233+
sleep_seconds = max(0, (next_140 - now_tz).total_seconds())
234+
print("Fenêtre 01:20-01:40 : attente jusqu'à 01:40 pour un unique check")
235+
time.sleep(sleep_seconds)
236+
continue
237+
238+
# Entre 01:40 et 01:59 : un seul check, puis dodo jusqu'au lendemain
239+
if now_tz.hour == 1 and now_tz.minute >= 40:
240+
if window_done:
241+
next_midnight = (now_tz + datetime.timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0)
242+
sleep_seconds = max(0, (next_midnight - now_tz).total_seconds())
243+
print("Check déjà fait à 01:40, dodo jusqu'au lendemain")
244+
time.sleep(sleep_seconds)
245+
continue
246+
interval = CHECK_INTERVAL
224247

225248
check_notes()
249+
if LOG_LEVEL != "DEBUG":
250+
now_tz = get_tz_time()
251+
if now_tz.hour == 1 and now_tz.minute >= 40:
252+
window_done = True
253+
next_midnight = (now_tz + datetime.timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0)
254+
sleep_seconds = max(0, (next_midnight - now_tz).total_seconds())
255+
print("Check effectué à 01:40, dodo jusqu'au lendemain")
256+
time.sleep(sleep_seconds)
257+
continue
226258

227259
next_time = get_tz_time() + datetime.timedelta(seconds=interval)
228260
print("Prochain check à", next_time.strftime("%Y-%m-%d %H:%M:%S"))

0 commit comments

Comments
 (0)