Files
2026-05-28 10:49:24 -05:00

36 lines
1.1 KiB
Python

import time
from datetime import datetime, timezone, timedelta
from app.shared.config import get_settings
from app.shared.database import get_db, init_schema
from app.cron.daily_summary import generate_daily_summary
from app.cron.cluster_unknowns import cluster_unknown_speakers
from app.cron.purge_clips import purge_old_clips
def run_nightly(settings, db):
yesterday = (datetime.now(timezone.utc) - timedelta(days=1)).strftime("%Y-%m-%d")
today = datetime.now(timezone.utc).strftime("%Y-%m-%d")
generate_daily_summary(yesterday, settings, db)
cluster_unknown_speakers(settings, db)
purge_old_clips(today, settings, db)
def main():
settings = get_settings()
init_schema(settings)
db = get_db(settings)
while True:
now = datetime.now(timezone.utc)
next_midnight = now.replace(hour=0, minute=0, second=0, microsecond=0)
if next_midnight <= now:
next_midnight += timedelta(days=1)
sleep_secs = (next_midnight - now).total_seconds()
time.sleep(sleep_secs)
run_nightly(settings, db)
if __name__ == "__main__":
main()