Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[自动无缝翻页] 希望添加 自定义翻页规则继承 功能 #308

Closed
snowman opened this issue Dec 28, 2022 · 1 comment
Closed
Labels
功能建议 新功能 或 建议

Comments

@snowman
Copy link

snowman commented Dec 28, 2022

功能需求

比如说当前自动无缝翻页脚本内置有翻页规则, 而我只想在原有的规则基础上添加一些自定义函数:

{
  "Example Site": {
    ... // copy original rules here
    "function": {
      "bF": "pageE.map(e => e.querySelector('img[src]')).forEach(img => img.src = img.src.replace('ps.jpg', 'pl.jpg')); return pageE"
    }
  }
}

当前需要复制整个某网站规则, 然后添加function属性.
但是又不想覆盖整个规则, 因为即使原有规则有更新也不会生效, 就需要自己再复制粘贴改一下.

预期目标

希望在自定义规则上添加一个 inherits key,
inherits 不存在 或者 false 时, 直接覆盖原有规则 (compatibility)
inheritstrue 时, 合并规则

const obj1 = { a: 0, b: 1 };
const obj2 = { a: 2, c: 3 };

const mergedObject = Object.assign({}, obj1, obj2);

console.log(mergedObject); // {a: 2, b: 1, c: 3}

这样我就可以只 patch 部分规则 就可以了.

{
  "Example Site": {
    "inherits": true,
    "function": {
      "bF": "pageE.map(e => e.querySelector('img[src]')).forEach(img => img.src = img.src.replace('ps.jpg', 'pl.jpg')); return pageE"
    }
  }
}
@snowman snowman added the 功能建议 新功能 或 建议 label Dec 28, 2022
@XIU2
Copy link
Owner

XIU2 commented Dec 29, 2022

已更新脚本添加支持了,你去试试吧。

我也在 #176 加上该继承标识 inherits 的使用说明了~

## 继承标识 inherits 使用说明(v6.4.6 及之后版本)


假设外置翻页规则中,有个 aaa 规则,你想要修改它的 host 域名,在以前你需要将其完全复制出来,修改后放到自定义翻页规则中,这样脚本合并规则时,会将其完全覆盖外置规则(即使用你修改后的自定义规则)。

// 某个外置规则
{
    "aaa": {
        "host": "a.com",
        "url": "/^\\/a/",
        "xxxx": "xxxx"
    }
}

但在脚本 v6.4.6 版本后,新加入了 inherits 继承标识,你可以省略不需要修改的那些规则,只写有变化的规则,例如下面这样,因为只需要修改 host 规则,所以只需要这一个规则(当然还需要加上 inherits 来提示脚本),其余的 url 等规则都省略了。

// 你加的自定义规则
{
    "aaa": {
        "host": ["a.com","b.com"],
        "inherits": true
    }
}

脚本发现同名后,会判断是否有 inherits 标识,如果有,就会这两个同名规则合并(也可以说是自定义规则继承了外置规则),最后得到的规则就是这样:

// 最后合并后的规则(在 自定义翻页规则 界面,展开所有规则就可以看到这个)
{
    "aaa": {
        "host": ["a.com","b.com"],
        "url": "/^\\/a/",
        "xxxx": "xxxx",
        "inherits": true
    }
}

@XIU2 XIU2 closed this as completed Dec 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
功能建议 新功能 或 建议
Projects
None yet
Development

No branches or pull requests

2 participants