mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-11-24 04:34:05 -05:00
* feat(frontend): 💄 add recipe title * fix(frontend): 🐛 fixes #722 side-bar issue * feat(frontend): ✨ Add page titles to all pages * minor cleanup * refactor(backend): ♻️ rewrite scheduler to be more modulare and work * feat(frontend): ✨ start password reset functionality * refactor(backend): ♻️ refactor application settings to facilitate dependency injection * refactor(backend): 🔥 remove RECIPE_SETTINGS env variables in favor of group settings * formatting * refactor(backend): ♻️ align naming convention * feat(backend): ✨ password reset * test(backend): ✅ password reset * feat(frontend): ✨ self-service password reset * purge password schedule * update user creation for tests Co-authored-by: Hayden <hay-kot@pm.me>
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Callable
|
|
|
|
from mealie.core import root_logger
|
|
|
|
logger = root_logger.get_logger()
|
|
|
|
|
|
class SchedulerRegistry:
|
|
"""
|
|
A container class for registring and removing callbacks for the scheduler.
|
|
"""
|
|
|
|
_daily: list[Callable] = []
|
|
_hourly: list[Callable] = []
|
|
_minutely: list[Callable] = []
|
|
|
|
def _register(name: str, callbacks: list[Callable], callback: Callable):
|
|
for cb in callback:
|
|
logger.info(f"Registering {name} callback: {cb.__name__}")
|
|
callbacks.append(cb)
|
|
|
|
def register_daily(*callbacks: Callable):
|
|
SchedulerRegistry._register("daily", SchedulerRegistry._daily, callbacks)
|
|
|
|
def remove_daily(callback: Callable):
|
|
logger.info(f"Removing daily callback: {callback.__name__}")
|
|
SchedulerRegistry._daily.remove(callback)
|
|
|
|
def register_hourly(*callbacks: Callable):
|
|
SchedulerRegistry._register("daily", SchedulerRegistry._hourly, callbacks)
|
|
|
|
def remove_hourly(callback: Callable):
|
|
logger.info(f"Removing hourly callback: {callback.__name__}")
|
|
SchedulerRegistry._hourly.remove(callback)
|
|
|
|
def register_minutely(*callbacks: Callable):
|
|
SchedulerRegistry._register("minutely", SchedulerRegistry._minutely, callbacks)
|
|
|
|
def remove_minutely(callback: Callable):
|
|
logger.info(f"Removing minutely callback: {callback.__name__}")
|
|
SchedulerRegistry._minutely.remove(callback)
|