Refine meal suggestions and planner entry controls
This commit is contained in:
+9
-8
@@ -13,9 +13,9 @@ from .push import send_push_message
|
||||
|
||||
|
||||
MEAL_PUSH_RULES = [
|
||||
{"slug": "breakfast", "setting": "push_missing_breakfast", "hour": 8, "minute": 0, "label": "Frühstück"},
|
||||
{"slug": "lunch", "setting": "push_missing_lunch", "hour": 12, "minute": 0, "label": "Mittagessen"},
|
||||
{"slug": "dinner", "setting": "push_missing_dinner", "hour": 18, "minute": 0, "label": "Abendessen"},
|
||||
{"slug": "breakfast", "setting": "push_missing_breakfast", "hour": 8, "minute": 0, "end_hour": 12, "label": "Frühstück"},
|
||||
{"slug": "lunch", "setting": "push_missing_lunch", "hour": 12, "minute": 0, "end_hour": 18, "label": "Mittagessen"},
|
||||
{"slug": "dinner", "setting": "push_missing_dinner", "hour": 18, "minute": 0, "end_hour": 24, "label": "Abendessen"},
|
||||
]
|
||||
|
||||
|
||||
@@ -92,10 +92,11 @@ def mark_reminder_event(user_id: int, event_key: str) -> None:
|
||||
get_db().commit()
|
||||
|
||||
|
||||
def due_for_rule(now: datetime, *, hour: int, minute: int) -> bool:
|
||||
target = now.replace(hour=hour, minute=minute, second=0, microsecond=0)
|
||||
delta = (now - target).total_seconds()
|
||||
return 0 <= delta < 180
|
||||
def due_for_rule(now: datetime, *, hour: int, minute: int, end_hour: int) -> bool:
|
||||
current_minutes = (now.hour * 60) + now.minute
|
||||
target_minutes = (hour * 60) + minute
|
||||
end_minutes = end_hour * 60
|
||||
return target_minutes <= current_minutes < end_minutes
|
||||
|
||||
|
||||
def build_push_target_url(*, planned_date: date, daypart_id: int, suggestion: dict | None) -> str:
|
||||
@@ -155,7 +156,7 @@ def send_due_meal_pushes(now: datetime | None = None) -> int:
|
||||
for rule in MEAL_PUSH_RULES:
|
||||
if not settings.get(rule["setting"]):
|
||||
continue
|
||||
if not due_for_rule(now, hour=rule["hour"], minute=rule["minute"]):
|
||||
if not due_for_rule(now, hour=rule["hour"], minute=rule["minute"], end_hour=rule["end_hour"]):
|
||||
continue
|
||||
|
||||
daypart = dayparts.get(rule["slug"])
|
||||
|
||||
Reference in New Issue
Block a user