mirror of
https://github.com/wizarrrr/wizarr.git
synced 2026-08-02 08:17:23 -04:00
56 lines
2.2 KiB
Python
56 lines
2.2 KiB
Python
# app/forms/settings.py
|
|
from flask_babel import lazy_gettext as _l
|
|
from flask_wtf import FlaskForm
|
|
from wtforms import BooleanField, SelectField, StringField
|
|
from wtforms.validators import URL, DataRequired, Optional
|
|
|
|
|
|
class SettingsForm(FlaskForm):
|
|
server_type = SelectField(
|
|
str(_l("Server Type")),
|
|
choices=[
|
|
("plex", "Plex"),
|
|
("jellyfin", "Jellyfin"),
|
|
("emby", "Emby"),
|
|
("audiobookshelf", "Audiobookshelf"),
|
|
("romm", "Romm"),
|
|
("komga", "Komga"),
|
|
("kavita", "Kavita"),
|
|
],
|
|
validators=[DataRequired()],
|
|
)
|
|
server_name = StringField(str(_l("Server Name")), validators=[DataRequired()])
|
|
server_url = StringField(str(_l("Server URL")), validators=[DataRequired()])
|
|
api_key = StringField(str(_l("API Key")), validators=[Optional()])
|
|
server_username = StringField(str(_l("RomM Username")), validators=[Optional()])
|
|
server_password = StringField(str(_l("RomM Password")), validators=[Optional()])
|
|
libraries = StringField(str(_l("Libraries")), validators=[Optional()])
|
|
allow_downloads = BooleanField(
|
|
str(_l("Allow Downloads")), default=False, validators=[Optional()]
|
|
)
|
|
allow_live_tv = BooleanField(
|
|
str(_l("Allow Live TV")), default=False, validators=[Optional()]
|
|
)
|
|
overseerr_url = StringField(
|
|
str(_l("Overseerr/Ombi URL")), validators=[Optional(), URL()]
|
|
)
|
|
ombi_api_key = StringField(str(_l("Ombi API Key")), validators=[Optional()])
|
|
discord_id = StringField(str(_l("Discord ID")), validators=[Optional()])
|
|
external_url = StringField(str(_l("External URL")), validators=[Optional()])
|
|
|
|
# Universal download and live TV options (no longer server-specific)
|
|
|
|
# Audiobookshelf specific
|
|
allow_downloads_audiobookshelf = BooleanField(
|
|
str(_l("Allow Downloads")), default=True, validators=[Optional()]
|
|
)
|
|
|
|
def __init__(self, install_mode: bool = False, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
|
|
if install_mode:
|
|
# During install wizard, libraries must be supplied
|
|
self.libraries.validators = [DataRequired()]
|
|
# api_key is mandatory for Plex/Jellyfin
|
|
self.api_key.validators = [DataRequired()]
|