121 lines
5.3 KiB
Python
121 lines
5.3 KiB
Python
from django import forms
|
|
|
|
WIDE = {"class": "input-wide"}
|
|
|
|
class FirstRunSetupForm(forms.Form):
|
|
# Jellyfin (Required)
|
|
jellyfin_server_url = forms.URLField(
|
|
label="Jellyfin Server URL",
|
|
required=True,
|
|
help_text="URL of your Jellyfin server"
|
|
)
|
|
jellyfin_api_key = forms.CharField(
|
|
label="Jellyfin API Key",
|
|
required=True,
|
|
widget=forms.PasswordInput(render_value=True),
|
|
help_text="API key from Jellyfin settings"
|
|
)
|
|
|
|
# Sonarr (Optional)
|
|
sonarr_url = forms.URLField(
|
|
label="Sonarr URL",
|
|
required=False,
|
|
help_text="URL of your Sonarr server"
|
|
)
|
|
sonarr_api_key = forms.CharField(
|
|
label="Sonarr API Key",
|
|
required=False,
|
|
widget=forms.PasswordInput(render_value=True)
|
|
)
|
|
|
|
# Radarr (Optional)
|
|
radarr_url = forms.URLField(
|
|
label="Radarr URL",
|
|
required=False,
|
|
help_text="URL of your Radarr server"
|
|
)
|
|
radarr_api_key = forms.CharField(
|
|
label="Radarr API Key",
|
|
required=False,
|
|
widget=forms.PasswordInput(render_value=True)
|
|
)
|
|
|
|
class JellyfinSettingsForm(forms.Form):
|
|
jellyfin_server_url = forms.URLField(
|
|
label="Jellyfin Server URL",
|
|
required=False,
|
|
widget=forms.URLInput(attrs=WIDE),
|
|
help_text="e.g. http://localhost:8096"
|
|
)
|
|
jellyfin_api_key = forms.CharField(
|
|
label="Jellyfin API Key",
|
|
required=False,
|
|
widget=forms.PasswordInput(render_value=True, attrs=WIDE),
|
|
help_text="Admin API key from Jellyfin settings"
|
|
)
|
|
|
|
class ArrSettingsForm(forms.Form):
|
|
sonarr_url = forms.URLField(label="Sonarr URL", required=False,
|
|
widget=forms.URLInput(attrs=WIDE))
|
|
sonarr_api_key = forms.CharField(label="Sonarr API Key", required=False,
|
|
widget=forms.PasswordInput(render_value=True, attrs=WIDE))
|
|
radarr_url = forms.URLField(label="Radarr URL", required=False,
|
|
widget=forms.URLInput(attrs=WIDE))
|
|
radarr_api_key = forms.CharField(label="Radarr API Key", required=False,
|
|
widget=forms.PasswordInput(render_value=True, attrs=WIDE))
|
|
|
|
class NotificationSettingsForm(forms.Form):
|
|
# ntfy
|
|
ntfy_server_url = forms.URLField(label="ntfy Server URL", required=False, widget=forms.URLInput(attrs=WIDE),
|
|
help_text="e.g., https://ntfy.sh")
|
|
ntfy_topic_default = forms.CharField(label="Default Topic", required=False, widget=forms.TextInput(attrs=WIDE))
|
|
ntfy_user = forms.CharField(label="ntfy Username", required=False)
|
|
ntfy_password = forms.CharField(label="ntfy Password", required=False, widget=forms.PasswordInput(render_value=True))
|
|
ntfy_token = forms.CharField(label="ntfy Bearer Token", required=False, widget=forms.PasswordInput(render_value=True))
|
|
|
|
# Apprise
|
|
apprise_default_url = forms.CharField(
|
|
label="Apprise URL(s)", required=False, widget=forms.Textarea(attrs={"rows": 3, "class": "input-wide"}),
|
|
help_text="One per line. See https://github.com/caronc/apprise/wiki for URL formats."
|
|
)
|
|
|
|
class MailSettingsForm(forms.Form):
|
|
mail_host = forms.CharField(label="Mail Host", required=False)
|
|
mail_port = forms.IntegerField(label="Mail Port", required=False, min_value=1, max_value=65535)
|
|
mail_secure = forms.ChoiceField(
|
|
label="Security", required=False,
|
|
choices=[("", "No TLS/SSL"), ("starttls", "STARTTLS"), ("ssl", "SSL/TLS")]
|
|
)
|
|
mail_user = forms.CharField(label="Mail Username", required=False)
|
|
mail_password = forms.CharField(
|
|
label="Mail Password", required=False,
|
|
widget=forms.PasswordInput(render_value=True)
|
|
)
|
|
mail_from = forms.EmailField(label="Sender (From)", required=False)
|
|
|
|
class AccountForm(forms.Form):
|
|
username = forms.CharField(label="Username", required=False)
|
|
email = forms.EmailField(label="Email", required=False)
|
|
new_password = forms.CharField(label="New password", required=False, widget=forms.PasswordInput)
|
|
repeat_password = forms.CharField(label="Repeat password", required=False, widget=forms.PasswordInput)
|
|
|
|
|
|
class NotificationSettingsForm(forms.Form):
|
|
# ntfy
|
|
ntfy_server_url = forms.URLField(label="ntfy Server URL", required=False,
|
|
widget=forms.URLInput(attrs=WIDE),
|
|
help_text="e.g. https://ntfy.sh or your self-hosted URL")
|
|
ntfy_topic_default = forms.CharField(label="Default topic", required=False,
|
|
widget=forms.TextInput(attrs=WIDE))
|
|
ntfy_user = forms.CharField(label="ntfy Username", required=False,
|
|
widget=forms.TextInput(attrs=WIDE))
|
|
ntfy_password = forms.CharField(label="ntfy Password", required=False,
|
|
widget=forms.PasswordInput(render_value=True, attrs=WIDE))
|
|
ntfy_token = forms.CharField(label="ntfy Bearer token", required=False,
|
|
widget=forms.PasswordInput(render_value=True, attrs=WIDE))
|
|
|
|
# Apprise
|
|
apprise_default_url = forms.CharField(label="Apprise URL(s)", required=False,
|
|
widget=forms.Textarea(attrs={"rows": 3, **WIDE}),
|
|
help_text="One URL per line. Will be used in addition to any user-provided URLs.")
|