mirror of
https://github.com/AIsouler/GKD_subscription.git
synced 2025-12-20 16:54:43 +08:00
chore: 增加订阅规则属性说明
This commit is contained in:
64
src/types.ts
64
src/types.ts
@@ -12,9 +12,21 @@ type StringFilter = {
|
||||
enum?: string[];
|
||||
};
|
||||
|
||||
/**
|
||||
* null/undefined 则使用上级属性, 例如 rule.cd 是 null, 则 rule.cd 使用 group.cd
|
||||
*/
|
||||
type CommonProps = {
|
||||
/**
|
||||
* 如果 设备界面Id startWith activityIds 的任意一项, 则匹配
|
||||
*/
|
||||
activityIds?: IArray<string>;
|
||||
/**
|
||||
* 如果 设备界面Id startWith excludeActivityIds 的任意一项, 则排除匹配, 这个优先级更高
|
||||
*/
|
||||
excludeActivityIds?: IArray<string>;
|
||||
/**
|
||||
* 当前规则的冷却时间
|
||||
*/
|
||||
cd?: number;
|
||||
appFilter?: {
|
||||
name?: StringFilter;
|
||||
@@ -33,6 +45,9 @@ type CommonProps = {
|
||||
|
||||
export type AppConfig = {
|
||||
id: string;
|
||||
/**
|
||||
* 如果设备没有安装这个 APP, 则使用这个 name 显示
|
||||
*/
|
||||
name: string;
|
||||
groups?: GroupConfig[];
|
||||
} & CommonProps;
|
||||
@@ -42,20 +57,56 @@ export type AppConfigMudule = {
|
||||
};
|
||||
|
||||
type GroupConfig = {
|
||||
/**
|
||||
* 当前规则组在列表中的唯一标识
|
||||
*/
|
||||
key: number;
|
||||
name: string;
|
||||
desc?: string;
|
||||
/**
|
||||
* 控制规则默认情况下是启用还是禁用, 默认启用
|
||||
*/
|
||||
enable?: boolean;
|
||||
rules?: IArray<RuleConfig | string>;
|
||||
/**
|
||||
* 当前 规则/规则组 的快照链接, 最好填上, 增强订阅可维护性
|
||||
*/
|
||||
snapshotUrls?: IArray<string>;
|
||||
/**
|
||||
* 当前 规则/规则组 的规则在手机上的运行示例, gif/mp4 都行
|
||||
*
|
||||
* 如果规则是多个规则组合起来的, 可以更好看懂规则到底在干啥, 比如 点击关闭按钮-选择关闭原因-确认关闭 这种广告用 gif 看着更清楚在干啥
|
||||
*/
|
||||
exampleUrls?: IArray<string>;
|
||||
} & CommonProps;
|
||||
|
||||
type RuleConfig = {
|
||||
/**
|
||||
* 当前规则在列表中的唯一标识
|
||||
*/
|
||||
key?: number;
|
||||
name?: string;
|
||||
desc?: string;
|
||||
/**
|
||||
* 一个或者多个合法的 GKD 选择器, 如果每个选择器都能匹配上节点, 那么点击最后一个选择器的目标节点
|
||||
*/
|
||||
matches?: IArray<string>;
|
||||
/**
|
||||
* 一个或者多个合法的 GKD 选择器, 如果存在一个选择器匹配上节点, 则停止匹配此规则
|
||||
*/
|
||||
excludeMatches?: IArray<string>;
|
||||
/**
|
||||
* 要求当前列表里某个 key 刚刚执行
|
||||
*
|
||||
* 比如点击关闭按钮-选择关闭原因-确认关闭, key 分别是 1,2,3, preKeys 分别是 [],[2],[3]
|
||||
*
|
||||
* 那么 选择关闭原因 必须要求 比如点击关闭按钮 刚刚点击过才能执行, 确认关闭 也要求 选择关闭原因 刚刚点击过才执行
|
||||
*
|
||||
* 否则后面的规则不会触发, 也就是要求规则按顺序执行, 这是为了防止规则匹配范围太过广泛而误触
|
||||
*
|
||||
* 多数情况下 不需要设置
|
||||
*
|
||||
*/
|
||||
preKeys?: IArray<number>;
|
||||
snapshotUrls?: IArray<string>;
|
||||
exampleUrls?: IArray<string>;
|
||||
@@ -64,16 +115,23 @@ type RuleConfig = {
|
||||
export type SubscriptionConfig = {
|
||||
/**
|
||||
* 当前订阅文件的标识, 如果新旧订阅文件id不一致则更新失败\
|
||||
* 范围: `[-Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER]`\
|
||||
* 范围: `[0, Number.MAX_SAFE_INTEGER]`\
|
||||
* 建议值: `new Date().getTime()`
|
||||
*
|
||||
* 官方默认订阅是 0, 负数 id APP 自己内部使用, APP 不允许用户添加负数 id 的订阅
|
||||
*/
|
||||
id: number;
|
||||
/**
|
||||
* 规则的名称
|
||||
*/
|
||||
name: string;
|
||||
/**
|
||||
* 必填, 此处有 ? 是因为本项目的 version 由 ts 校验自动生成
|
||||
*/
|
||||
version?: number;
|
||||
author: string;
|
||||
/**
|
||||
* https url
|
||||
* android file path
|
||||
* APP 会定时或者用户手动请求这个链接, 如果返回的订阅的 version 大于 APP 订阅当前的 version , 则更新
|
||||
*/
|
||||
updateUrl?: string;
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user