import os import re from loguru import logger from wtforms.widgets.core import TimeInput from flask_babel import lazy_gettext as _l, gettext from changedetectionio.blueprint.rss import RSS_FORMAT_TYPES, RSS_TEMPLATE_TYPE_OPTIONS, RSS_TEMPLATE_HTML_DEFAULT from changedetectionio.conditions.form import ConditionFormRow from changedetectionio.notification_service import NotificationContextData from changedetectionio.processors.image_ssim_diff import SCREENSHOT_COMPARISON_THRESHOLD_OPTIONS, \ SCREENSHOT_COMPARISON_THRESHOLD_OPTIONS_DEFAULT from changedetectionio.strtobool import strtobool from changedetectionio import processors from wtforms import ( BooleanField, Form, Field, FloatField, IntegerField, RadioField, SelectField, StringField, SubmitField, TextAreaField, fields, validators, widgets ) from flask_wtf.file import FileField, FileAllowed from wtforms.fields import FieldList from wtforms.utils import unset_value from wtforms.validators import ValidationError from changedetectionio.widgets import TernaryNoneBooleanField # default # each select