mirror of
https://github.com/AIsouler/GKD_subscription.git
synced 2025-12-20 00:35:17 +08:00
feat: category check group name
This commit is contained in:
@@ -42,6 +42,11 @@ const categories: RawCategory[] = [
|
||||
// 如微信朋友圈广告/酷安帖子广告/贴吧帖子广告
|
||||
// 需要分阶段多步操作才能关闭, 会造成屏幕略微闪烁, 稍微影响用户体验
|
||||
},
|
||||
{
|
||||
key: 9,
|
||||
name: '功能类',
|
||||
// 非广告, 点击某些功能按钮
|
||||
},
|
||||
];
|
||||
|
||||
export default categories;
|
||||
|
||||
30
src/file.ts
30
src/file.ts
@@ -58,13 +58,12 @@ const pkg: typeof PkgT = JSON.parse(
|
||||
);
|
||||
const pkgKeys = Object.keys(pkg);
|
||||
|
||||
export const writeConfig = async (config: RawSubscription) => {
|
||||
const gkdFp = process.cwd() + '/dist/gkd.json5';
|
||||
const versionFp = process.cwd() + '/dist/gkd.version.json';
|
||||
const oldConfig: RawSubscription = JSON5.parse(
|
||||
const gkdFp = process.cwd() + '/dist/gkd.json5';
|
||||
const versionFp = process.cwd() + '/dist/gkd.version.json';
|
||||
const oldConfig: RawSubscription = JSON5.parse(
|
||||
await fs.readFile(gkdFp, 'utf-8').catch(() => '{}'),
|
||||
);
|
||||
|
||||
);
|
||||
export const writeConfig = async (config: RawSubscription) => {
|
||||
const newConfig: RawSubscription = {
|
||||
...config,
|
||||
version: oldConfig.version || 0,
|
||||
@@ -186,7 +185,26 @@ export const checkConfig = (newConfig: RawSubscription) => {
|
||||
apps.forEach((app) => {
|
||||
const deprecatedKeys = app.deprecatedKeys || [];
|
||||
const keys = new Set<number>();
|
||||
const oldGroups = oldConfig.apps?.find((a) => a.id == app.id)?.groups || [];
|
||||
app.groups?.forEach((g) => {
|
||||
const oldGroup = oldGroups.find((og) => og.key == g.key);
|
||||
if (!oldGroup || !_.isEqual(oldGroup, g)) {
|
||||
// 检查新增/变动的规则组是否能被分类捕获
|
||||
if (!categories.some((c) => g.name.startsWith(c.name))) {
|
||||
console.error({
|
||||
configName: newConfig.name,
|
||||
appId: app.id,
|
||||
appName: app.name,
|
||||
groupName: g.name,
|
||||
groupKey: g.key,
|
||||
categories: categories.map((c) => c.name),
|
||||
});
|
||||
throw new Error(
|
||||
'invalid group name, it must startsWith any category',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (deprecatedKeys.includes(g.key)) {
|
||||
console.error({
|
||||
configName: newConfig.name,
|
||||
|
||||
Reference in New Issue
Block a user