109 lines
3.4 KiB
TypeScript
109 lines
3.4 KiB
TypeScript
export interface AdminConfig {
|
||
ConfigSubscribtion: {
|
||
URL: string;
|
||
AutoUpdate: boolean;
|
||
LastCheck: string;
|
||
};
|
||
ConfigFile: string;
|
||
SiteConfig: {
|
||
SiteName: string;
|
||
Announcement: string;
|
||
SearchDownstreamMaxPage: number;
|
||
SiteInterfaceCacheTime: number;
|
||
DoubanProxyType: string;
|
||
DoubanProxy: string;
|
||
DoubanImageProxyType: string;
|
||
DoubanImageProxy: string;
|
||
DisableYellowFilter: boolean;
|
||
FluidSearch: boolean;
|
||
// 弹幕配置
|
||
DanmakuApiBase: string;
|
||
DanmakuApiToken: string;
|
||
// TMDB配置
|
||
TMDBApiKey?: string;
|
||
TMDBProxy?: string;
|
||
// 评论功能开关
|
||
EnableComments: boolean;
|
||
// 自定义去广告代码
|
||
CustomAdFilterCode?: string;
|
||
CustomAdFilterVersion?: number; // 代码版本号(时间戳)
|
||
// 注册相关配置
|
||
EnableRegistration?: boolean; // 开启注册
|
||
RegistrationRequireTurnstile?: boolean; // 注册启用Cloudflare Turnstile
|
||
LoginRequireTurnstile?: boolean; // 登录启用Cloudflare Turnstile
|
||
TurnstileSiteKey?: string; // Cloudflare Turnstile Site Key
|
||
TurnstileSecretKey?: string; // Cloudflare Turnstile Secret Key
|
||
DefaultUserTags?: string[]; // 新注册用户的默认用户组
|
||
// OIDC配置
|
||
EnableOIDCLogin?: boolean; // 启用OIDC登录
|
||
EnableOIDCRegistration?: boolean; // 启用OIDC注册
|
||
OIDCIssuer?: string; // OIDC Issuer URL (用于自动发现)
|
||
OIDCAuthorizationEndpoint?: string; // 授权端点
|
||
OIDCTokenEndpoint?: string; // Token端点
|
||
OIDCUserInfoEndpoint?: string; // 用户信息端点
|
||
OIDCClientId?: string; // OIDC Client ID
|
||
OIDCClientSecret?: string; // OIDC Client Secret
|
||
OIDCButtonText?: string; // OIDC登录按钮文字
|
||
};
|
||
UserConfig: {
|
||
Users: {
|
||
username: string;
|
||
role: 'user' | 'admin' | 'owner';
|
||
banned?: boolean;
|
||
enabledApis?: string[]; // 优先级高于tags限制
|
||
tags?: string[]; // 多 tags 取并集限制
|
||
}[];
|
||
Tags?: {
|
||
name: string;
|
||
enabledApis: string[];
|
||
}[];
|
||
};
|
||
SourceConfig: {
|
||
key: string;
|
||
name: string;
|
||
api: string;
|
||
detail?: string;
|
||
from: 'config' | 'custom';
|
||
disabled?: boolean;
|
||
}[];
|
||
CustomCategories: {
|
||
name?: string;
|
||
type: 'movie' | 'tv';
|
||
query: string;
|
||
from: 'config' | 'custom';
|
||
disabled?: boolean;
|
||
}[];
|
||
LiveConfig?: {
|
||
key: string;
|
||
name: string;
|
||
url: string; // m3u 地址
|
||
ua?: string;
|
||
epg?: string; // 节目单
|
||
from: 'config' | 'custom';
|
||
channelNumber?: number;
|
||
disabled?: boolean;
|
||
}[];
|
||
ThemeConfig?: {
|
||
enableBuiltInTheme: boolean; // 是否启用内置主题
|
||
builtInTheme: string; // 内置主题名称
|
||
customCSS: string; // 自定义CSS
|
||
enableCache: boolean; // 是否启用浏览器缓存
|
||
cacheMinutes: number; // 缓存时间(分钟)
|
||
cacheVersion: number; // CSS版本号(用于缓存控制)
|
||
};
|
||
OpenListConfig?: {
|
||
URL: string; // OpenList 服务器地址
|
||
Username: string; // 账号(用于登录获取Token)
|
||
Password: string; // 密码(用于登录获取Token)
|
||
RootPath: string; // 根目录路径,默认 "/"
|
||
LastRefreshTime?: number; // 上次刷新时间戳
|
||
ResourceCount?: number; // 资源数量
|
||
ScanInterval?: number; // 定时扫描间隔(分钟),0表示关闭,最低60分钟
|
||
};
|
||
}
|
||
|
||
export interface AdminConfigResult {
|
||
Role: 'owner' | 'admin';
|
||
Config: AdminConfig;
|
||
}
|