/eso_source

亦搜规则,初次使用请导入合并规则

Primary LanguagePython

请看wiki

亦搜规则

update mainfest on push

用于APP内的网络导入,可以是单个规则,也可以是合并后的规则。欢迎成为协作者或者提交pr参与规则编写。

merge.py是自动合并脚本,合并分类中的文件时会忽略其中的文件夹(含失效文件夹)、*.md文件和sub.json文件,修复失效源后,将其移除失效文件夹才会被合并

mainfest 是所有源合并后的规则,链接:

https://raw.githubusercontent.com/mabDc/eso_source/master/manifest

网络问题可以使用jsdelivr cdn,即mainfest from jsdelivr,链接:

https://cdn.jsdelivr.net/gh/mabDc/eso_source/manifest

所有图片源合并后的规则链接:

https://raw.githubusercontent.com/mabDc/eso_source/master/图片/sub.json

所有文字源合并后的规则链接:

https://raw.githubusercontent.com/mabDc/eso_source/master/文字/sub.json

所有视频源合并后的规则链接:

https://raw.githubusercontent.com/mabDc/eso_source/master/视频/sub.json

所有音频源合并后的规则链接:

https://raw.githubusercontent.com/mabDc/eso_source/master/音频/sub.json

下面是规则编写说明。主要是三类:地址规则、取元素规则、取字符串规则。

响应解析目前仅支持静态,不支持动态,同多多猫,多多猫插件开发指南 解释的很清楚

2.5.2 插件的调试
...
注意: Ctrl+u和F12开发者工具Elements面板中显示源代码的的区别是前者显示的是不加载js的html源代码,后者显示的是加载内部外部js后的html代码。sited引擎读取前者代码,所以有时候在浏览器开发者工具(Console面板)能找出数据,在app里却报错,就是因为Ctrl+u源代码中没有相应数据。

地址规则

请用源编辑界面地址模版

@js:
(() => {
  var url = `/xx${keyword}xx${page}`;
  var method = "get"; // or "post"
  var body = {};
  var headers = {};
  // var encoding = "gbk";
  return {url, method, body, headers};
})();

需要对搜索关键词进行中文编码则为

@js:
(() => {
  var url = `/xx${keyword}xx${page}`;
  var method = "get"; // or "post"
  var body = {};
  var headers = {};
  var encoding = "gbk";
  return {url, method, body, encoding, headers};
})();

响应解码由app内部自动处理,无需了解。

取元素规则

使用jsonpathxpathcss或者js编写,其中前三种可以网页右键复制路径,app自动识别。

$..item.*或者//li或者li等,若用js,最后应输出Array对象

取字符串规则

形如 rule##replaceRegex##replacement##replaceFirst

其中 rule 可以是 jscssxpathjsonpath , 形式如下:

@js:js code

@json:$.name$.name(省略@json:

@css:.name@text.name@text(省略@css:

@xpath://*[class=name]/text()//*[class=name]/text()(省略@xpath:

:regex

建议省略@json:@css:@xpath:,由app自动识别。

如果需要拼接则用aaa{{rulexxx}}bbb{{ruleyyy}}ccc

其他规则

  1. 所有规则含host,除搜索和发现地址都含有result,除地址都含有baseUrl

  2. 结果规则会成为下一条地址规则result,成为下一条除地址规则的lastResult。地址规则的响应会成为其他规则的result

  3. 地址规则不用js时,使用$加变量名来动态替换实际内容,包含$keyword$page,$result,$host等。地址规则使用js时请写变量名,不需要带$

  4. 可以用http.get(url)来获取请求。

  5. 规则搜索部分共用一个js上下文,目录部分也共用一个js上下文。同一个上下文的规则的全局变量可以直接相互获取。(如用于目录列表设置id,章节结果获取所设置的id)