feat: restore roast-of-the-day with 14-day prompt history
Separate roast generation from motivation again and pass cached roasts from the last 14 days into the OpenRouter prompt to reduce repetition. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+19
-1
@@ -9,7 +9,7 @@ from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from apscheduler.triggers.cron import CronTrigger
|
||||
from apscheduler.triggers.date import DateTrigger
|
||||
|
||||
from server.ai import generate_daily_motivation
|
||||
from server.ai import generate_daily_motivation, generate_roast_of_the_day
|
||||
from server.config_loader import load_meds_config, slot_to_dict, today_str
|
||||
from server.db import get_db, utc_now_iso
|
||||
from server.messages import pick
|
||||
@@ -54,6 +54,17 @@ async def _generate_daily_motivation() -> None:
|
||||
await db.close()
|
||||
|
||||
|
||||
async def _generate_daily_roast() -> None:
|
||||
config = load_meds_config()
|
||||
db = await get_db()
|
||||
try:
|
||||
await generate_roast_of_the_day(db, config.timezone)
|
||||
except Exception:
|
||||
logger.exception("Daily roast generation failed")
|
||||
finally:
|
||||
await db.close()
|
||||
|
||||
|
||||
async def _evening_check() -> None:
|
||||
logger.info("Evening check triggered")
|
||||
db = await get_db()
|
||||
@@ -147,6 +158,13 @@ def start_scheduler() -> None:
|
||||
replace_existing=True,
|
||||
)
|
||||
|
||||
scheduler.add_job(
|
||||
_generate_daily_roast,
|
||||
trigger=CronTrigger(hour=3, minute=5, timezone=tz),
|
||||
id="daily-roast",
|
||||
replace_existing=True,
|
||||
)
|
||||
|
||||
if not scheduler.running:
|
||||
scheduler.start()
|
||||
logger.info("Scheduler started for timezone %s", tz)
|
||||
|
||||
Reference in New Issue
Block a user