Logging erweitert.

This commit is contained in:
Patrick Asmus
2026-09-20 22:31:59 +02:00
parent 6d07b12015
commit c3f68ace96
2 changed files with 54 additions and 20 deletions
+24 -3
View File
@@ -141,6 +141,21 @@ class StreamScheduler:
now_min = _time_to_minutes(now_time)
start_min = _time_to_minutes(job["schedule_start"])
in_window = now_min >= start_min
elif job.get("schedule_stop"):
start_min = _time_to_minutes(job["schedule_start"])
stop_min = _time_to_minutes(job["schedule_stop"])
if stop_min <= start_min and stop_min > 0:
now_min = _time_to_minutes(now_time)
if now_min < stop_min:
yesterday = now - datetime.timedelta(days=1)
was_yesterday = False
if job["schedule_once"]:
was_yesterday = job["schedule_date"] == yesterday.strftime("%Y-%m-%d")
else:
was_yesterday = _matches_day(yesterday.isoweekday(), job["schedule_days"] or "*")
if was_yesterday:
is_cross_midnight = True
in_window = True
return {
"occ_key": occ_key,
@@ -218,7 +233,7 @@ class StreamScheduler:
finally:
session.close()
def _get_active_scheduled_recording_for_job(self, job_id: int):
def _get_active_scheduled_recording_for_job(self, job_id: int, *, respect_stop: bool = False):
session = get_session()
try:
rec = session.query(Recording).filter(
@@ -226,7 +241,11 @@ class StreamScheduler:
Recording.status.in_(["running", "starting"]),
Recording.is_scheduled == True,
).first()
return rec.id if rec else None
if not rec:
return None
if respect_stop and rec.scheduled_stop and rec.scheduled_stop > datetime.datetime.utcnow():
return None
return rec.id
finally:
session.close()
@@ -309,7 +328,9 @@ class StreamScheduler:
and eff_job["schedule_stop"]
and self._is_job_recording(job["id"])
):
rec_id = self._get_active_scheduled_recording_for_job(job["id"])
rec_id = self._get_active_scheduled_recording_for_job(
job["id"], respect_stop=True,
)
if rec_id:
self.recorder.stop_recording(rec_id)
self._started_keys.discard(occ_key)