def default_settings_init(session: Session = None): if session == None: session = create_session() try: webhooks = Webhooks() default_entry = SiteSettings(name="main", webhooks=webhooks) document = db.settings.create(session, default_entry.dict(), webhooks.dict()) except: pass
def auto_backup_job(): for backup in BACKUP_DIR.glob("Auto*.zip"): backup.unlink() templates = [] for template in TEMPLATE_DIR.iterdir(): templates.append(template) session = create_session() backup_all(session=session, tag="Auto", templates=templates) logger.info("Auto Backup Called")
def post_webhooks(): session = create_session() all_settings = db.get(session, "main") all_settings = SiteSettings(**all_settings) if all_settings.webhooks.enabled: todays_meal = Recipe.get_by_slug(MealPlan.today()).dict() urls = all_settings.webhooks.webhookURLs for url in urls: requests.post(url, json.dumps(todays_meal, default=str)) session.close()
def default_theme_init(): default_theme = { "name": "default", "colors": { "primary": "#E58325", "accent": "#00457A", "secondary": "#973542", "success": "#5AB1BB", "info": "#4990BA", "warning": "#FF4081", "error": "#EF5350", }, } session = create_session() try: db.themes.create(session, default_theme) logger.info("Generating default theme...") except: logger.info("Default Theme Exists.. skipping generation")
def update_webhook_schedule(): """ A scheduled background job that runs every 15 minutes to poll the database for changes and reschedule the webhook time """ session = create_session() settings = db.settings.get(session, "main") settings = SiteSettings(**settings) time = cron_parser(settings.webhooks.webhookTime) job = JOB_STORE.get("webhooks") scheduler.reschedule_job( job.scheduled_task.id, trigger="cron", hour=time.hours, minute=time.minutes, ) session.close() logger.info(scheduler.print_jobs())