Files
talia_bot/app/scheduler.py
Marco Gallegos ce30e5591e ajsutes codex
2025-12-15 18:47:48 -06:00

55 lines
1.6 KiB
Python

# app/scheduler.py
import logging
from datetime import time
from telegram.ext import ContextTypes
import pytz
from config import OWNER_CHAT_ID, TIMEZONE
from modules.agenda import get_agenda
# Enable logging
logger = logging.getLogger(__name__)
async def send_daily_summary(context: ContextTypes.DEFAULT_TYPE) -> None:
"""Sends the daily summary to the owner."""
job = context.job
chat_id = job.chat_id
logger.info(f"Running daily summary job for chat_id: {chat_id}")
try:
agenda_text = get_agenda()
summary_text = f"🔔 *Resumen Diario - Buen día, Marco!*\n\n{agenda_text}"
await context.bot.send_message(
chat_id=chat_id,
text=summary_text,
parse_mode='Markdown'
)
logger.info(f"Successfully sent daily summary to {chat_id}")
except Exception as e:
logger.error(f"Failed to send daily summary to {chat_id}: {e}")
def schedule_daily_summary(application) -> None:
"""Schedules the daily summary job."""
if not OWNER_CHAT_ID:
logger.warning("OWNER_CHAT_ID not set. Daily summary will not be scheduled.")
return
job_queue = application.job_queue
# Use the timezone from config
tz = pytz.timezone(TIMEZONE)
# Schedule the job to run every day at 7:00 AM
scheduled_time = time(hour=7, minute=0, tzinfo=tz)
job_queue.run_daily(
send_daily_summary,
time=scheduled_time,
chat_id=int(OWNER_CHAT_ID),
name="daily_summary"
)
logger.info(f"Scheduled daily summary for {OWNER_CHAT_ID} at {scheduled_time} {TIMEZONE}")