gitscope
← marzneshin / v0.7.0 / app/models/settings.py
https://dev.kronoz.win/r/marzneshin.git
app/models/settings.py · Python
Blame Raw
 1from enum import Enum
 2from typing import Pattern
 3
 4from pydantic import BaseModel
 5
 6
 7class ConfigTypes(str, Enum):
 8    links = "links"
 9    base64_links = "base64-links"
10    xray = "xray"
11    sing_box = "sing-box"
12    clash = "clash"
13    clash_meta = "clash-meta"
14    template = "template"
15    block = "block"
16
17
18class SubscriptionRule(BaseModel):
19    pattern: Pattern
20    result: ConfigTypes
21
22
23class SubscriptionSettings(BaseModel):
24    template_on_acceptance: bool
25    profile_title: str
26    support_link: str
27    update_interval: int
28    shuffle_configs: bool = False
29    placeholder_if_disabled: bool = True
30    placeholder_remark: str = "disabled"
31    rules: list[SubscriptionRule]
32
33
34class TelegramSettings(BaseModel):
35    token: str
36    admin_id: list[int]
37    channel_id: int | None
38
39
40class Settings(BaseModel):
41    subscription: SubscriptionSettings
42    telegram: TelegramSettings | None