mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-31 05:59:51 +08:00
feat(auto-tools): 添加指定层级加载功能
- 在配置中新增 the_layer 复选框选项用于控制是否只加载指定层级 - 优化路径查找逻辑,通过预建 levelName 映射提升性能 - 修改过滤条件以支持层级加载功能 - 在两个配置文件中同步添加 the_layer 设置项
This commit is contained in:
@@ -50,6 +50,12 @@
|
||||
"label": "加载路径层级(不可小于1)<配置模式 刷新||加载 生效>",
|
||||
"default": "2"
|
||||
},
|
||||
{
|
||||
"name": "the_layer",
|
||||
"type": "checkbox",
|
||||
"label": "只加载指定层级<配置模式 加载 生效>",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "order_rules",
|
||||
"type": "input-text",
|
||||
|
||||
@@ -518,21 +518,31 @@ async function loadUidSettingsMap(uidSettingsMap) {
|
||||
|
||||
// const key = keys[keys.size - 1]
|
||||
// PATH_JSON_LIST.filter(item => item.level > 0)
|
||||
// 预先建立 levelName 到路径信息的映射
|
||||
const levelNameMap = new Map();
|
||||
PATH_JSON_LIST.forEach(item => {
|
||||
if (item.levelName) {
|
||||
levelNameMap.set(item.levelName, item);
|
||||
}
|
||||
});
|
||||
|
||||
//中间一段路径名称
|
||||
const dir_key = keys.join("\\")
|
||||
filterSettings = filterUidSettings.filter(item => {
|
||||
const settings_level = PATH_JSON_LIST.filter(list_item => list_item.levelName === item.name).find();
|
||||
// const settings_level = PATH_JSON_LIST.filter(list_item => list_item.levelName === item.name).find();
|
||||
const settings_level = levelNameMap.get(item.name);
|
||||
if (settings_level) {
|
||||
//只加载指定目录
|
||||
return (settings_level.path.includes(dir_key))
|
||||
}
|
||||
return false
|
||||
})
|
||||
const theLayer = settings.the_layer || false
|
||||
const levelSettings = filterSettings.filter(item => {
|
||||
const level_all = item.name.replaceAll(levelName, "");
|
||||
// 获取级别
|
||||
const level = level_all.split("_").filter(item => item?.trim() !== "").map(parseInt)[0]
|
||||
if (theLayer && loadingLevel === level + 1) {
|
||||
if (theLayer) {
|
||||
//只加载指定级别的设置
|
||||
return (loadingLevel === level + 1)
|
||||
}
|
||||
|
||||
@@ -50,6 +50,12 @@
|
||||
"label": "加载路径层级(不可小于1)<配置模式 刷新||加载 生效>",
|
||||
"default": "2"
|
||||
},
|
||||
{
|
||||
"name": "the_layer",
|
||||
"type": "checkbox",
|
||||
"label": "只加载指定层级<配置模式 加载 生效>",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "order_rules",
|
||||
"type": "input-text",
|
||||
|
||||
@@ -123,6 +123,7 @@ function parseCron(cron) {
|
||||
* @returns {Promise} 返回一个Promise,解析为下一个Cron时间戳
|
||||
*/
|
||||
async function getNextCronTimestamp(cronExpression, startTimestamp = Date.now(), endTimestamp, url) {
|
||||
log.warn("使用cron CD算法 请开启JS HTTP 权限 如已开启请忽略")
|
||||
const result = await http.request("POST", url, JSON.stringify({
|
||||
cronExpression: `${cronExpression}`,
|
||||
startTimestamp: startTimestamp,
|
||||
|
||||
Reference in New Issue
Block a user