https://dev.kronoz.win/r/marzneshin.git
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